skillup

技術ブログ

サーバー・ネットワーク

CIツールを使ったオートデプロイに関して

投稿日:

gitlabをあるプロジェクトで使っていますが、自動デプロイについて色々調べなんとかできたのでメモしておきます。

結論から書きますと下記のような手順でいけます。

1.まずデプロイしたいサーバーに鍵認証でログインできる環境を作ります。

2.秘密鍵(クライアント側)の情報を吐き出し、Setting→CI/CD→variablesでkey=SSH_PRIVATE_KEY、value=吐き出した秘密鍵の文字列を登録します。

3. .gitlab-ci.yamlというyamlファイルに以下のように記述してプッシュすればOKです。

以下、簡単なコマンド解説です。

ssh-agent

eval `ssh-agent`

などを使うことによって後続の秘密鍵の登録処理などを自動的に行うことができるようです。

ssh-add

秘密鍵の登録です。通常だとクライアント側でssh-keygenを登録した時に実行されますが、同一の鍵を登録する時にこのコマンドを入力します。

ssh-keycan

一般的にSSHでサーバーにログインするときは以前に接続した情報との照合が行われ、初めての場合には確認画面が入ります。この情報が ~/.ssh/known_hosts に登録されるのですが、ssh-keyscanコマンドにより、 ~/.ssh/known_hosts に即座に追加することがでます。

echo -e “Host *\n\tStrictHostKeyChecking no\n\n” > ~/.ssh/config

ssh/configに「StrictHostKeyChecking no」の入力をしておくことどで権限のメッセージを出さないようにすることができます。

参考リンク

GitLab CI/CDパイプラインで生成されたファイルをGitLabのリポジトリーにコミット(Push)し直す方法

GitLab Runnerで任意のSSH接続を行いたい

A gitlab-ci config to deploy to your server via ssh

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

負荷調査のセオリー

以前にも下記リンクで負荷調査について記事を書いたんですが、もう少し掘り下げてみようかと。 サーバーの過負荷の発見 理論編 サーバーの過負荷の発見 メモリ使用率の調査&抽出、置換(awk,sed)コマン …

no image

Linux環境下でのdockerのインストールについて

CI/CDがらみのプロセスでdockerを使っていたのですが、Linux環境下でのdockerのインストールについてメモ。 Contents1 yum -y install docker2 docke …

no image

PHPのコマンドライン+隠しファイルも含めたcpコマンド

超小ネタを2つほど phpにrオプションを入れるとPHPコードを実行できます。

cp コマンドですが、隠しファイルも含めてコピーしたい …

no image

vagrantで仮想環境を別PCにコピー

vagrantで自分の作った環境を他人にコピーしたい機会があり、なんとか成功したのでメモします。いや~便利ですね・・・ 環境は vagrant 1.7.4 win8 です。 Contents1 準備2 …

no image

MacでのVirtualHost設定

MacでのVirtualHostについて。 Contents1 設定方法2 注意点2.1 httpd -S2.2 httpd: Could not reliably determine the ser …

アーカイブ