質問編集履歴

1 capistrano.log エラー内容を追記

ayk110

ayk110 score 12

2019/05/23 08:40  投稿

【AWS】capistrano3を導入し、Railsアプリをデプロイした結果「SSHKit::Runner::ExecuteError」が発生する
## 前提・実現したいこと
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解決法](https://qiita.com/aoitrain/items/90036ec9c24f0566711e)
$ `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
  • AWS(Amazon Web Services)

    3910 questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Capistrano

    235 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • Ruby on Rails 5

    5285 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る