SSH 経由でのデプロイ

1+ year ago1 min read
Last updated • Read time
クラウド
This document is applicable to CircleCI クラウド
Server v4.x
This document is applicable to CircleCI Server v4.x
Server v3.x
This document is applicable to CircleCI Server v3.x

このノウハウガイドでは、SSH経由でアプリケーションをデプロイするためのCircleCIの設定方法について説明します。

1. ターゲットのSSHキーを追加

まずは、デプロイ先のSSHキーを追加します(この手順は、クラウド、Server v3.x、Server v4.x の場合です)。

  1. ターミナルで、ssh-keygen -t ed25519 -C "your_email@example.com" でキーを生成します。 詳しくは、 Secure Shell ドキュメントを参照してください。

  2. CircleCI アプリケーションで、 [Project Settings (プロジェクトの設定)] ボタン (作業対象のプロジェクトの パイプラインのページの右上) をクリックして、プロジェクトの設定に移動します。

  3. [Project Settings (プロジェクトの設定)] で、 [SSH Keys (SSH キー)] をクリックします (画面左側のメニュー)。

  4. スクロールし、 [Additional SSH Keys (追加 SSH キー)] のセクションに移動します。

  5. Add SSH Key ボタンをクリックします

  6. [Hostname (ホスト名)] フィールドにキーに関連付けるホスト名を入力します (例: git.heroku.com)。 ホスト名を指定しない場合は、どのホストに対しても同じキーが使われます。

  7. [Private Key (プライベート キー)] フィールドに登録する SSH キーを貼り付けます。

  8. Add SSH Key ボタンをクリックします

詳しくは、 CircleCI に SSH キーを登録 ガイドをご覧ください。

2. SSHのユーザー名とホスト名を追加

ビルド VM の SSH ユーザー名と SSH ホスト名を環境変数として追加します。 手順については、 プロジェクトでの環境変数の設定をご確認ください。 以下の例では、これらの変数はそれぞれ SSH_USER および SSH_HOST として定義されています。

3. デプロイジョブの作成

.circleci/config.ymldeploy ジョブを作成し、main ブランチをデプロイするためのコマンドを追加します。

version: 2.1

jobs:
    build:
    #...
    deploy:
    machine:
        enabled: true
    steps:
        - run:
            name: Deploy Over SSH
            command: |
            ssh $SSH_USER@$SSH_HOST "<remote deploy command>"

workflows:
    build-and-deploy:
    jobs:
        - build
        - deploy:
            requires:
            - build # only deploy once build job has completed
            filters:
            branches:
                only: main # only deploy on the main branch