Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

つまずいたところ

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

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

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

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

Coconew5
rails 初心者、勉強中です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away