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

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

ただいまの
回答率

89.10%

rails5+capistrano導入時によるSSHKit::Runner::ExecuteErrorを解決したい。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,135
退会済みユーザー

退会済みユーザー

 追伸

現在は手動によるデプロイをしています。

cd /var/www/projects/【アプリ名】/ &&
kill -QUIT `cat tmp/pids/unicorn.pid` &&
git fetch origin master &&
git reset --hard origin/master &&
bundle install --path vendor/bundle  --without development test &&
bundle exec rake db:migrate RAILS_ENV=production &&
export AWS_ACCESS_KEY_ID=***************************** &&
export AWS_SECRET_ACCESS_KEY=************************* &&
bundle exec rake assets:precompile RAILS_ENV=production &&
bundle exec unicorn_rails -c /var/www/projects/【アプリ名】/config/unicorn.conf.rb -D -E production &&
ps -ef | grep unicorn | grep -v grep

かなり強引ですが...。

 前提

 参考資料  概要 
 デプロイ 初心者向け:AWS(EC2)にRailsのWebアプリをデプロイする方法 
 capistrano (Capistrano編)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで 
 インフラ構成  ec2 / s3 / rds / nginx / unicorn   

昨日からcapistranoを導入に挑戦していまして、現在は少し苦戦をしています。
お詳しい方いらっしゃったらご教授お願いできませんか。

 下記のようなエラーが出ます。

capistrano導入に苦戦をしております。
詳しい方、ご教授頂けると幸いです。

 $ bundle exec cap production deploy

をすると下記のようなエラーが出ます。

(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as @XX.XXX.XXX.XX: bundle exit status: 1
bundle stdout: Nothing written
bundle stderr: master failed to start, check stderr log for details

SSHKit::Command::Failed: bundle exit status: 1
bundle stdout: Nothing written
bundle stderr: master failed to start, check stderr log for details
/Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:11:in `block in start_unicorn'
/Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:10:in `start_unicorn'
/Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:53:in `block (3 levels) in <top (required)>'
Tasks: TOP => unicorn:restart
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as 【SERVER_USERNAME】@XX.XXX.XXX.XX: bundle exit status: 1
bundle stdout: Nothing written
bundle stderr: master failed to start, check stderr log for details


** DEPLOY FAILED
** Refer to log/capistrano.log for details. Here are the last 20 lines:


 DEBUG [b143da1e] Command: if test ! -d /var/www/projects/【APPNAME】/releases/20180119110958; then echo "Directory does not exist '/var/www/projects/【APPNAME】/releases/20180119110958'" 1>&2; false; fi

 DEBUG [b143da1e] Finished in 0.274 seconds with exit status 0 (successful).

  INFO [a64a49a9] Running $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [a64a49a9] Command: cd /var/www/projects/【APPNAME】/releases/20180119110958 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate )

  INFO [a64a49a9] Finished in 3.390 seconds with exit status 0 (successful).

  INFO [1659769c] Running /usr/bin/env ln -s /var/www/projects/【APPNAME】/releases/20180119110958 /var/www/projects/【APPNAME】/releases/current as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [1659769c] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; /usr/bin/env ln -s /var/www/projects/【APPNAME】/releases/20180119110958 /var/www/projects/【APPNAME】/releases/current )

  INFO [1659769c] Finished in 0.247 seconds with exit status 0 (successful).

  INFO [d2c6f9fc] Running /usr/bin/env mv /var/www/projects/【APPNAME】/releases/current /var/www/projects/【APPNAME】 as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [d2c6f9fc] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; /usr/bin/env mv /var/www/projects/【APPNAME】/releases/current /var/www/projects/【APPNAME】 )

  INFO [d2c6f9fc] Finished in 0.291 seconds with exit status 0 (successful).

 DEBUG [30f26ed1] Running [ -f /var/www/projects/【APPNAME】/current/tmp/pids/unicorn.pid ] as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [30f26ed1] Command: [ -f /var/www/projects/【APPNAME】/current/tmp/pids/unicorn.pid ]

 DEBUG [30f26ed1] Finished in 0.266 seconds with exit status 1 (failed).

 DEBUG [52b38bff] Running if test ! -d /var/www/projects/【APPNAME】/current; then echo "Directory does not exist '/var/www/projects/【APPNAME】/current'" 1>&2; false; fi as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [52b38bff] Command: if test ! -d /var/www/projects/【APPNAME】/current; then echo "Directory does not exist '/var/www/projects/【APPNAME】/current'" 1>&2; false; fi

 DEBUG [52b38bff] Finished in 0.261 seconds with exit status 0 (successful).

  INFO [5bab6ec5] Running $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/projects/【APPNAME】/current/config/unicorn/production.rb -E production -D as 【SERVER_USERNAME】@XX.XXX.XXX.XX

 DEBUG [5bab6ec5] Command: cd /var/www/projects/【APPNAME】/current && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/projects/【APPNAME】/current/config/unicorn/production.rb -E production -D )

 DEBUG [5bab6ec5]     master failed to start, check stderr log for details

 気がかり

 unicornとnginxの設定の件

# 資料では【APPNAME】/currentが付与されるが、現在は付与せず。
$app_dir = "/var/www/projects/【APPNAME】"

 IPアドレスの件

# IPアドレスをドメインにしたほうがいいかもしれない。
server 'XX.XXX.XX.XXX', user: '【USERNAME】', roles: %w{app db web}

# my-key.pemの指定が間違っているのかな。
set :ssh_options, keys: '~/.ssh/my-key.pem'

 まとめ

資料を通して2点ほど気がかりな部分もありますが、それがエラーに関係あるのか、
はたまた別の理由でエラーが出ているのか、インフラの専門家の方、
capistranoを導入したことがある方、ご教授頂けると幸いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

以下で指定してみて試してもらえますか?

set :ssh_options, {
  port: 22,
  forward_agent: true,
  keys: ['~/.ssh/my-key.pem']
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る