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

apacheでのバーチャルホストの設定

このブログを旧サイトから移管し、同一ホストで別々のドメインを運用することになったので、バーチャルホストの設定を行いました。 Contents1 設定方法1.1 http.conf1.2 実際のバーチャ …

no image

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

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

no image

カレントディレクトリ以下のすべてのCR+LFをLFに

windows環境からファイルをアップしていると文字コードがバラバラだったりすることが多々あります。 まあ何がめんどくさいかというと差分がチェックできない。これが最悪です。 gitのdiffコマンドの …

no image

journald

CentOS7では従来のsyslogデーモンと並行してjournaldというログ管理サービスがあります。 Contents1 コマンド一覧2 参考図書・リンク コマンド一覧 [crayon-62820 …

no image

CentOS7の基本に関して

以前も学習しようとしましたが、CentOSの基礎について。 Contents1 デーモン2 ポートの割り当て3 systemdの役割 デーモン Linux上で動くサービスを提供をするプログラムのこと。 …

アーカイブ