CircleCIで自動デプロイを設定しているとこの辺よくハマると思うので備忘録として残します。
想定は以下の感じ
- GithubのBranch更新をトリガーにデプロイ
- CircleCI起動してGCPにSSHでシェルを叩いてGit pullでデプロイする
まずはデプロイ先のインスタンスのGit設定を確認
~/.ssh にconfigというファイルを作成してあるかの確認。
存在していたら中見を確認。以下のように認証に使う鍵ファイルを指定
そもそも鍵ファイルが存在するかの確認
ssh-keygen -t rsa で作成可能。ファイル名はデフォルトではなく個別に指定が吉かも。
ファイル名はフルパスで指定する。
なお、パスワードもナシにすること。
CircleCIからSSHアクセスするのであればauthorized_keysに鍵登録
鍵自体は自分のPCもしくはサーバ内で作成してauthorized_keysには公開鍵を登録
CircleCIのSSH Permissionには秘密鍵を登録。
CircleCIのCheckout using deploy keyでエラーになる場合
Checkout SSH Keysの欄からDeployKeyを設定する。
CircleCIのGCP連携にはサービスキーが必要
GCPをCircleCIから操作することができない場合はこれの登録が出来てないことが原因かと思われる。
サービスアカウントキーの作成方法とCircieCIへの登録に関しては以下のドキュメントも参照のこと。
https://qiita.com/hardreggaecafe/items/2630eee4e04678913d73