CircleCI

CircleCIのアクセス権周りでハマったら

CircleCIで自動デプロイを設定しているとこの辺よくハマると思うので備忘録として残します。
想定は以下の感じ
- GithubのBranch更新をトリガーにデプロイ
- CircleCI起動してGCPにSSHでシェルを叩いてGit pullでデプロイする

まずはデプロイ先のインスタンスのGit設定を確認

~/.ssh にconfigというファイルを作成してあるかの確認。
ssh.png

存在していたら中見を確認。以下のように認証に使う鍵ファイルを指定
ssh-config.png

そもそも鍵ファイルが存在するかの確認

ssh-keygen -t rsa で作成可能。ファイル名はデフォルトではなく個別に指定が吉かも。
ファイル名はフルパスで指定する。
なお、パスワードもナシにすること。

sshkeygen.png

CircleCIからSSHアクセスするのであればauthorized_keysに鍵登録

鍵自体は自分のPCもしくはサーバ内で作成してauthorized_keysには公開鍵を登録
authkey.png

CircleCIのSSH Permissionには秘密鍵を登録。
Project settings   flic360 Flic360Make_service   CircleCI (2).png

CircleCIのCheckout using deploy keyでエラーになる場合

Checkout SSH Keysの欄からDeployKeyを設定する。
Project settings   flic360 Flic360Make_service   CircleCI (1).png

CircleCIのGCP連携にはサービスキーが必要

GCPをCircleCIから操作することができない場合はこれの登録が出来てないことが原因かと思われる。
サービスアカウントキーの作成方法とCircieCIへの登録に関しては以下のドキュメントも参照のこと。
https://qiita.com/hardreggaecafe/items/2630eee4e04678913d73
Project settings   flic360 Flic360Make_service   CircleCI.png