LoginSignup
3
4

More than 5 years have passed since last update.

Capistranoを利用した自動デプロイでハマったエラー

Last updated at Posted at 2018-10-20

つまずいたところ

Capistranoを導入し、ローカルディレクトリでbundle exec cap production deployしてもデプロイされておらず、
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as 〜省略
Caused by:
Net::SSH::AuthenticationFailed: Authentication failed for user 〜省略
となり、起動しなかった。

 対策①

調べてみたら、デプロイ前にunicornのkillが必要とのことだったので、
kill -QUIT cat tmp/pids/unicorn.pid してみたら
「そのようなファイルやディレクトリはありません」
と怒られる。。

さらに調べると、Capistarnoを導入すると、unicorn.pidの所属するディレクトリが別の場所に移ってしまうため、 tmp/pids/unicorn.pid のようにパスを指定しても、Unicornのプロセスをkillできなくなるとのこと!!

そんな時は、
$ ps aux | grep unicorn

でunicorn masterと表示されているプロセスがkillすべきものとのこと。
そしてその番号を
kill -9 xxxx

killする!!!
とのことだったが、そもそもunicorn master の表記がなく、killしても「そのようなプロセスはありません」
と怒られる。。。。

そもそもkillすべきものはないようです。次の対策へ。。。

対策②

エラー文を振り返る。
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as 〜省略
Caused by:
Net::SSH::AuthenticationFailed: Authentication failed for user 〜省略

理由のところに注目。
Authentication とは認証なので、user~の認証がSSHでできていないですよ〜みたいな感じでしょうか。

おそらく認証が上手くいってない模様だったので、

awsからログアウトして、.sshフォルダに移動してから

$ ssh-add ~/.ssh/xxxx.pem

することで解決しました!!

秘密鍵の設定はきちんとやったはずなのに、上手く権限の設定ができていなかったようで。
たまにあることで、その場合このようにすれば良いと教えてもらいました。

まだまだわからないことだらけで呆然とすることが多いですが、滅多にやる作業で備忘録として。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4