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

セッションハイジャック

今回はセッションハイジャックについて。WEB系では必須といえるでしょう。 Contents1 セッションハイジャックとは?2 被害3 対策4 Cookieについて4.1 Domain4.2 Path4 …

no image

AWSセキュリティグループについて

AWSのセキュリティグループに関して。 AWSには標準でセキュリティグループという概念があり、それぞれのインスタンスに対して、アクセスするパケットをポート番号で制御でき、この定義をセキュリティグループ …

no image

scpコマンドを使ったサーバー間のファイルのやり取り

あるサーバーのファイルを別サーバーにコピーするとき、大昔はFTPを使っていましたが、現在FTPサーバー自体を立てることがあまりないため、SSHを使ったSCPコマンドでのファイル点を使いました。 Con …

no image

herokuネタ(頻出コマンドなど)

10月末ぐらいから使っているPaasのherokuについてよく使うコマンドについて Contents1 アカウント開設&スタート2 基本的な使い方 アカウント開設&スタート http://skill- …

no image

OSキャッシュの仕組み

大規模サービス技術入門のつづきです。 主にOSのキャッシュメモリについてです。 メモリとディスクの速度差は10万倍~100万倍 いかにディスクへのアクセスを減らすかがポイント OSは各プロセスにメモリ …

アーカイブ