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

SSHのfinger printに関して

今まで何気なくやっていることをあまり実は理解していない・・なんてことが多いもんで、最近は復習の必要性を感じています。 今回のお題はSSHのfinger printです。 初めてSSH先に接続するときに …

no image

AWSのVPCの設定に関して

AWSでEC2を立ち上げたことはありましたが、VPC(Virtual Private Cloud)は使ったことがなかったので、これを機に調査してみました。 Contents1 VPCとは?2 構成3 …

no image

ansible複数アイテム登録&ファイル分割&ログ

引き続きansibleに関して。 Contents1 設定ファイルの書き換え1.1 ini_file1.2 lineinfile2 複数の値の置換3 ファイル分割3.1 ログ修正 設定ファイルの書き換 …

no image

任意のログファイルのログローテションについて

本日は自作のログファイルをうまくローテーションさせる方法について。 自作でログを作っておりますと、日がたつにずれどんどんと容量が膨らんでいきます。 放置するととんでもない量になっていることが多いですね …

no image

vagrantでサーバーの状態を保存(snapshot)

上司がAnsible(構成管理ツール)のサンプルをくれたのですが、試そうにもまっさらなサーバーを用意しないといけません。 サーバー環境を新規に契約するのは面倒なのでvagrantで当然考えています。 …