a big fish in a small pond

ロードバイク、rails 、料理、写真、ガシェットでお送りします。

rails4でGithubからEC2にCapistrano3でデプロイする時、大苦戦

$ bundle exec cap production deploy

これが悪夢の始まり

1.ご挨拶の構文エラー

f:id:yoshidaagri:20150409213714p:plain

まず導入したばかりのAtom氏も御立腹の構文エラー。

見事に「'」が一個たりないですな。


garlicboys TONE RIVER JAM'10_02 - YouTube

 

2.ec2-user以外に作ったデプロイ用ユーザに、sshキーを追加忘れ

$ sudo cp -arp /home/ec2-user/.ssh /home/デプロイ用ユーザ/

 

3.capistranosshキーを理解できない盆暗殿

DEBUG [6b087c62] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.0 GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/yoshidaagri/git-ssh.sh /usr/bin/env git ls-remote -h git@github.com:yoshidaagri/yoshidaagri.git )
DEBUG [6b087c62]     Permission denied (publickey).
DEBUG [6b087c62]     fatal: Could not read from remote repository.
DEBUG [6b087c62]
DEBUG [6b087c62]     Please make sure you have the correct access rights
DEBUG [6b087c62]     and the repository exists.
DEBUG [6b087c62] Finished in 1.671 seconds with exit status 128 (failed).

 

どうも、ローカルから以下のコマンドでクリアできる。

$ssh-add

Identity added: /Users/user_name/.ssh/id_rsa (/Users/user_naame/.ssh/id_rsa)

 

4.権限不足

`/var/www/my_app/shared' を作成できません: 許可がありません

 これはroot権限でフォルダほったらかしにしている自らの怠慢...

権限をデプロイユーザにchownして、権限を実行権限と書き込み権限を与えて終了

 

5.mysqlへ接続できないです

DEBUG [3779b8f7]     rake aborted!
DEBUG [3779b8f7]     Mysql2::Error: Can't connect to MySQL server

 1.EC2にDBを同居させる場合、database.ymlのproduction節,hostはlocalhostとしなければならない。EC2に限った事ではない。

 

6.mysqlのユーザが見当たらないです。passはあってるけど

その後、mysqlに事前に作っていたproduction用のuser hostをlocalhostにしておくこと.

 

7.デプロイは成功

INFO [16140426] Finished in 0.193 seconds with exit status 0 (successful).

アプリのパスに成果物がUPされているかも確認...

deploy.rbのset :deploy_toで指定したディレクトリのcurrentフォルダにある。

relesesディレクトリには過去5回のdeploy結果が残っている。おー。

 

ひとまずゴール。次はEC2で構築したアプリが外部から参照できるのか確認。