実現したいこと
circleciを使って、RailsアプリケーションをEC2上に自動デプロイしたい。
しかしながら、ssh接続しEC2内に入った後に、githubとの連携がうまくいかない。
エラー内容
circleci
1#!/bin/bash -eo pipefail 2ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' 3Warning: Permanently added '***********' (ECDSA) to the list of known hosts. 4Permission denied (publickey). 5fatal: Could not read from remote repository. 6 7Please make sure you have the correct access rights 8and the repository exists. 9 10Exited with code exit status 1 11CircleCI received exit code 1
ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' でエラーが出ます(teckbooksはアプリ名)。
ssh ${USER_NAME}@${HOST_NAME}単体で実行するとssh接続自体はできていることが確認できました。
自分で調べたことや試したこと
最初に考えたことは、EC2とgithub間での、接続がうまくできていないのはないかと思い、秘密鍵と公開鍵を確認し、再作成をしました。そして手動でssh内に入り、手動でgit pullコマンドを実行するとうまく実行されます。しかしながら、やはりcircleci経由でgithubとの連携をするコマンドを実行するとうまくいきません。(手動だとやりたいことはうまく行くため、秘密鍵・公開鍵周りでのミスではないのかなと思います)
circleciからssh -T githubコマンドを実行するとうまくいかないので接続できないのだと思います。
その他試したこと
・git pull → sudo git pullで実行
・circleciにおけるgithubへのデプロイキーの再作成、およびgithubでそのキーが作成されていることの確認。
該当ソースコード
config.yml
1version: 2 2jobs: 3 test: 4 machine: 5 image: circleci/classic:edge 6 steps: 7 - checkout 8 - run: 9 name: Dockerコンテナのビルド 10 command: docker-compose -f docker-compose.yml build 11 - run: 12 name: Dockerコンテナの起動 13 command: docker-compose -f docker-compose.yml up -d 14 - run: 15 name: db接続を待機 16 command: sleep 10 17 - run: 18 name: データの権限のセットsアップ 19 command: docker-compose exec db mysql -u root -pdb_root_password -e"$(cat db/grant_user.sql)" 20 - run: 21 name: データベースの削除 22 command: docker-compose -f docker-compose.yml run app rails db:drop 23 - run: 24 name: データベースのセットアップ 25 command: docker-compose -f docker-compose.yml run app rails db:create 26 - run: 27 name: データベースのマイグレート 28 command: docker-compose -f docker-compose.yml run app rails db:migrate 29 - run: 30 name: webpackerの実行 31 command: docker-compose -f docker-compose.yml run app rails webpacker:install 32 - run: 33 name: Rubocopの実行 34 command: docker-compose -f docker-compose.yml run app bundle exec rubocop 35 - run: 36 name: データーベースの環境設定 37 command: docker-compose -f docker-compose.yml run app rails db:environment:set RAILS_ENV=test 38 - run: 39 name: Rspecの実行 40 command: docker-compose -f docker-compose.yml run app bundle exec rspec 41 - run: 42 name: Dockerコンテナの停止するsssss 43 command: docker-compose -f docker-compose.yml down 44 45 deploy: 46 machine: 47 image: circleci/classic:edge 48 steps: 49 - checkout 50 - add_ssh_keys: 51 fingerprints: 52 - 4d:2d:85:da:a0:a4:72:e2:59:7d:2b:b2:55:01:b4:31 53 - run: ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' 54 55 56workflows: 57 version: 2 58 test_and_deploy: 59 jobs: 60 - test 61 - deploy: 62 requires: 63 - test 64 filters: 65 branches: 66 only: 67 - task-1
あなたの回答
tips
プレビュー