git pushをトリガーにCircleCIでテストやbundle exec cap production deploy を走らせたいのですが、
bundle exec cap production deployの実行で躓いてしまいます。
ローカルからCircleCIを介さずにbundle exec cap production deploy を実行すると無事デプロイ完了されるのですが、
具体的には
#!/bin/bash -eo pipefail bundle exec cap production deploy DEBUG [b2c5c796] Running [ -d $HOME/.rbenv/versions/2.5.1 ] as username@ec2のEIP DEBUG [b2c5c796] Command: [ -d $HOME/.rbenv/versions/2.5.1 ] #<Thread:0x00005590a91434c8@/home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true): Traceback (most recent call last): 1: from /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute' /home/circleci/repo/vendor/bundle/ruby/2.5.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as username@ec2のEIP: Authentication failed for user username@ec2のEIP (SSHKit::Runner::ExecuteError) (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as username@ec2のEIP: Authentication failed for user username@ec2のEIP Caused by: Net::SSH::AuthenticationFailed: Authentication failed for user username@ec2のEIP Tasks: TOP => rbenv:validate (See full trace by running task with --trace) Exited with code exit status 1
となってしまいます。
認証エラーが発生している?ようなのですが、
circleCIのGUIにてec2作成時に取得したキーペアのpemキーは登録済みで、
そのフィンガープリントもconfig.ymlに記載しており、
circleCIのInstalling additional ssh keysはパスしています。
調べてみても手詰まりで、アドバイスいただければ幸いです。
###各環境
rails6,ec2(amazon_linux2),capistrano3.11.2
route53の独自ドメイン取得済みでALBをSSL終端としている
###deploy/production.rb
set :stage, :production set :rails_env, 'production' set :branch, ENV['BRANCH_NAME'] || 'master' set :migration_role, 'db' server "ec2のEIP", user: "username", roles: %w{web app db}, port: 22, ssh_options: { user: "username", # overrides user setting above keys: %w(~/.ssh/id_rsa), forward_agent: true, auth_methods: %w(publickey) # password: "please use keys" }
###config.ymlのcapistrano部分
- add_ssh_keys: fingerprints: - "フィンガープリント" - deploy: name: Capistrano deploy command: | bundle exec cap production deploy
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/03 08:41
2020/01/03 10:07
2020/01/03 17:28 編集
2020/01/05 18:05