前提・実現したいこと
Railsでアプリを構築し、capistrano3を導入し自動デプロイを実行した結果、
SSH周りのところで標記のエラーが発生し、デプロイを完了することができません。
下記にも記述する方法を試してみたのですが、改善されず、知恵をお貸し頂ければ幸いです。
ターミナル実行結果
$ bundle exec cap production deploy
を実行した結果
00:00 deploy:upload Uploading config/secrets.yml 100.0% 00:00 git:wrapper 01 mkdir -p /tmp ✔ 01 ec2-user@XX.XXX.XX.XXX 0.129s (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as ec2-user@XX.XXX.XX.XXX: scp: /tmp/git-ssh-XXX-production-XXX.sh: Permission denied Caused by: Net::SCP::Error: scp: /tmp/git-ssh-XXX-production-XXX.sh: Permission denied Tasks: TOP => deploy:check => git:check => git:wrapper (See full trace by running task with --trace) The deploy has failed with an error: Exception while executing as ec2-user@XX.XXX.XX.XXX: scp: /tmp/git-ssh-XXX-production-XXX.sh: Permission denied
$ less log/capistrano.log
を実行した結果
INFO --------------------------------------------------------------------------- INFO START 2019-05-23 XX:XX:XX +0900 cap production deploy INFO --------------------------------------------------------------------------- DEBUG [43d4e455] Running [ -d $HOME/.rbenv/versions/2.3.1 ] as ec2-user@XX.XXX.XX.XXX DEBUG [43d4e455] Command: [ -d $HOME/.rbenv/versions/2.3.1 ] DEBUG [79115bee] Finished in 0.230 seconds with exit status 0 (successful). DEBUG [54acff45] Running [ ! -d /var/www/XXX/shared/config ] as ec2-user@XX.XXX.XX.XXX DEBUG [54acff45] Command: [ ! -d /var/www/XXX/shared/config ] DEBUG [90dd04ed] Finished in 0.077 seconds with exit status 1 (failed). DEBUG Uploading config/secrets.yml 0.0% INFO Uploading config/secrets.yml 100.0% INFO [77da0e1a] Running /usr/bin/env mkdir -p /tmp as ec2-user@XX.XXX.XX.XXX DEBUG [77da0e1a] Command: ( export RBENV_ROOT="$HOME/.rbenv" PATH="/usr/local/rbenv/shims:/usr/local/rbenv/bin:$PATH" AWS_ACCESS_KEY_ID="XXX" AWS_SECRET_ACCESS_KEY="XXX" RBENV_VERSION="2.3.1" ; /usr/bin/env mkdir -p /tmp ) INFO [35f9ae10] Finished in 0.082 seconds with exit status 0 (successful). DEBUG Uploading /tmp/git-ssh-XXX-production-XXX.sh 0.0%
試したこと
1. dry run を実行
$ bundle exec cap production deploy --dry-run
→問題なし
2. SSH鍵を再登録
再起動するとSSH鍵が消えてしまうみたいなので .sshディレクトリにて以下のコマンドでSSH鍵を登録し直します。
.ssh $ ssh-add ~/.ssh/hoge.pem
Capistranoで自動デプロイした時に出たSSHKit::Runner::ExecuteError解決法
$ ssh-add ~/.ssh/XXX.pem
→問題なし
3. サーバーへのアクセス
$ cd ~/.ssh
$ ssh -i XXX.pem ec2-user@XX.XXX.XX.XXX
$ cd /var/www/XXX
→[ec2-user@ip-XXX-XX-XX-XXX XXX]
となり、問題なし
補足情報(FW/ツールのバージョンなど)
Ruby 2.3.1
Rails 5.0.7.2
Capistrano 3.11.0
AWS EC2 / S3
Nginx
Unicorn
回答1件
あなたの回答
tips
プレビュー