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.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。