質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

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

AWS(Amazon Web Services)

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

Capistrano

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

Q&A

解決済

1回答

1510閲覧

【AWS】capistrano3を導入し、Railsアプリをデプロイした結果「SSHKit::Runner::ExecuteError」が発生する

floor

総合スコア12

Ruby on Rails 5

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

AWS(Amazon Web Services)

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

Capistrano

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

0グッド

0クリップ

投稿2019/05/19 10:49

編集2019/05/22 23:40

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moonphase

2019/05/20 01:14

サーバの/var/log/secureにエラーとなった原因が記録されているはずです。確認して質問に追記することは可能でしょうか?
floor

2019/05/22 08:04

修正依頼を頂きまして有難うございます。返信が遅くなり申し訳ございません。 /var/log/ は存在するのですが ~/secure が存在せず、追記することができない状態です。 ただ、本来であればログが出力されるファイルについて知ることができ、大変勉強になりました。 参考)https://wa3.i-3-i.info/word14281.html
moonphase

2019/05/22 08:58

SCPのエラーかもしれないので、ローカルとリモートでそれぞれ次のコマンドを実行してその結果を教えてもらえますか? ls -l /tmp/git-ssh-XXX-production-XXX.sh
floor

2019/05/22 23:44

ご回答有難うございます。結果は下記の通りとなりました。 ローカル)-bash: /tmp/git-ssh-XXX-production-XXX.sh: No such file or directory リモート)ls: /tmp/git-ssh-XXX-production-XXX.sh にアクセスできません: そのようなファイルやディレクトリはありません 「git-ssh-XXX-production-XXX.sh」はデプロイ時に一時的に生成されるファイルと認識しており、 アクセスできないファイルと以前学習した覚えがあるため、このファイルへアクセスできないことが、 今回のエラー原因ではないのではないかとも思っておりました。 less log/capistrano.log の実行結果については質問に追記させて頂きました。
guest

回答1

0

自己解決

原因は結局追求出来ていないのですが、インスタンスを作成し直しデプロイを実行することができました。
質問を見て下さった皆さま、有難うございました。このような結果となり申し訳ございません。

投稿2019/05/23 09:57

編集2019/05/23 09:58
floor

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問