前回からの続き
6.手動でデプロイしてみる
まずは手動でデプロイが出来るか試してみます。一時的にローカルの設定を変更します。
~/.ssh/config
Host (AWSサーバのIPアドレス) HostName (AWSサーバのIPアドレス) User ec2-user Port 22 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile ~/.ssh/(AWSサーバのpemkey) IdentitiesOnly yes ForwardAgent yes
また、AWSのEC2サーバがGitHubのプライベートリポジトリにアクセスできないとソースコードが取得できないので、EC2のサーバ上でデプロイキーの作成と設定を行います。
$ cd ~/.ssh $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): mydeploykey Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in mydeploykey. Your public key has been saved in mydeploykey.pub. The key fingerprint is: f5:93:71:02:29:4a:a0:17:74:21:28:xx:xx:xx:xx:xx ec2-user@ip-xxx-xxx-xxx-xxx The key's randomart image is: +--[ RSA 2048]----+ | . o=.o. .. | |o ..o+. . .. | | o.+.= . .. o . | | E.o o . . = | | o S + | | . | | | | | | | +-----------------+
~/.ssh/config
Host github.com HostName github.com User git IdentityFile ~/.ssh/mydeploykey
パーミッションを変更
$ chmod 600 ~/.ssh/mydeploykey $ chmod 600 ~/.ssh/mydeploykey.pub $ chmod 600 ~/.ssh/config
~/.ssh/mydeploykey.pubの内容をコピーして、GitHubのDeploy Keysにペーストします。
これでEC2がGitHubのプライベートリポジトリにアクセスできるようになりました。ローカルの開発マシンに戻って、Capistranoのチェックを実行してみます。
$ bundle exec cap production deploy:check
途中で「cap aborted!」などのエラーがでなければ成功です。
実際にデプロイを実行してみましょう。
$ bundle exec cap production deploy
様々な処理が実行されて大量のログが流れますが、エラースタックトレースが出なければ無事デプロイされています。EC2のURLにブラウザでアクセスして確認してみましょう。
関連記事
[1] 最近のWebサービス開発フロー,WerckerでGithubのプライベートリポジトリからAWSへデプロイしてHipChatへの通知まで
[3] AWS EC2サーバの構築