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

サーバーの過負荷の発見 理論編

会社のテストサーバー(このブログが入っているサーバー)なんかが重くなってくると、再起動したりしているわけなんですが、CPUやメモリの使用率をみたり、といったシステマティックな運用はしてないです。 本来 …

no image

PHPMailerに関して(PHPのメール送信)

PHPのMailライブラリに関して。 今までmb_send_mailとかで誤魔化してましたが、以下のようにライブラリで送るケースのサンプル。 https://github.com/umanari145 …

no image

ドメイン取得とメール送信

現在ではメール配信サービスなどが充実しており、メールサーバーを立てる機会なんぞは少ないかとしれません。 そもそも一般的なレンタルサーバー会社の場合、レジストラとセットになっていることが多いですよね。そ …

no image

ロードアベレージ監視シェルスクリプト

ロードアベレージの監視シェルスクリプトについて Contents1 使用コマンド1.1 uptime1.2 /proc/cpuinfo1.3 bc2 ソース3 他参考リンク 使用コマンド uptime …

no image

nginx基本

データベースについて勉強していましたが、実務でnginxを触る機会があったので、これを機に勉強。 Contents1 参考文献2 nginx基礎3 コアモジュール4 httpモジュール5 設定ファイル …