GitHubを使って自動でデプロイをするために、スクーの下記授業を視聴しました。そのメモを記載します。
授業(全2回)では、GitHubとCircleCiを連携してデプロイする方法が、とても分かりやすく説明されています。
本記事は、上記内容を参考にして、GitHubのprivateリポジトリをAWSのEC2へデプロイする方法をメモします。
(今回はおもに2回目の内容についてメモしていますが、1回目で自動デプロイの全体像が説明されているので、1回目、2回目を通してみることをお薦めします)
GitHubのprivateリポジトリを、CircleCIを使って、本番環境へデプロイします。
/var/www以下の所有者をubuntuへ変更($ sudo chown -R ubuntu /var/www)
capistranoが、SSHログイン後にディレクトリを作成できるように、所有者をubuntuへ変更本記事では、上記のEC2インスタンスを本番環境と呼びます。
デプロイツールはcapistranoを使います。
capistranoの大まかな働きは、設定ファイルに指定したSSHの秘密鍵を使って本番環境にログインして、GitHubから所定の位置へソースコードをgit pullして、公開ディレクトリへシンボリックを作成することです。
capistranoの設定箇所については、上記の授業で分かりやすく説明されています。
以下の処理でSSHの秘密鍵・公開鍵が必要になります
privateリポジトリを、本番環境へgit clone・git pullする処理authorized_keysへ追記秘密鍵を登録(リポジトリのSettings > SSH Permissions)Settings > Deploy keysへ公開鍵を登録# パスフレーズを設定しない
$ ssh-keygen -N ''
# ~/.ssh/id_rsa(秘密鍵)、id_rsa.pub(公開鍵)が作成される
cat ~./.ssh/id_rsa.pub >> authorized_keys
秘密鍵を登録秘密鍵を、CircleCIの対象リポジトリのSettings > SSH Permissionsへ追加します。
GitHubから本番環境へgit clone、git pullするために、GitHubの対象リポジトリのSettings > Deploy keysへ公開鍵を登録します。
/var/www以下のオーナーをubuntuへ変更
$ sudo chown -R ubuntu /var/www
AWSのデフォルトでは、sudo apt install apache2を実行した結果作成される/var/wwwの所有者は、rootユーザーになります。今回は、ubuntuでSSHログインすることを想定しているので、所有者をubuntuへ変更します。
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。