はじめに
AWS初心者です。(GitHubも初心者だと言っても過言ではありません。)
優しく教えてください。
やりたいこと
githubのmasterブランチにgit push
されたときに、Code Deployを使い自動デプロイを行いたい。
やったこと
- EC2インスタンスの立ち上げ(後術)
- このサイトを参考にロール等作成を一通り
エラー
エラーログを探したのですが、わからず……
おそらくGitHubの設定がミスっていると踏んでいます。
EC2立ち上げ手順
以下の手順です。
# システムを最新に sudo yum update -y # 時間を日本に sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime echo -e 'ZONE="Asia/Tokyo"\nUTC=true' | sudo tee /etc/sysconfig/clock # 上司に言われたので、不要っぽいサービスを停止 sudo systemctl disable amazon-ssm-agent.service sudo systemctl disable atd.service sudo systemctl disable autovt@.service sudo systemctl disable dmraid-activation.service sudo systemctl disable getty@.service sudo systemctl disable libstoragemgmt.service sudo systemctl disable mdmonitor.service sudo systemctl disable postfix.service sudo systemctl disable rngd.service sudo systemctl disable sysstat.service sudo systemctl disable systemd-readahead-collect.service sudo systemctl disable systemd-readahead-drop.service sudo systemctl disable systemd-readahead-replay.service # ec2-userアカウントを無効化 sudo adduser nnahito sudo usermod -G wheel nnahito grep wheel /etc/group | grep nnahito echo 'nnahito ALL = NOPASSWD: ALL' | sudo tee --append /etc/sudoers.d/cloud-init # 鍵を作ったユーザに合わせる sudo cp ~/.ssh/authorized_keys ~nnahito/.ssh/authorized_keys sudo chown -R nnahito:nnahito ~nnahito/.ssh sudo chmod -R go-rwx ~nnahito/.ssh sudo ls -al ~nnahito/.ssh # EC2-USERでログインできないように sudo vim /etc/ssh/sshd_config # 「DenyUsers ec2-user」を追記 sudo /bin/systemctl reload sshd.service # sshログインポートを22以外に変更する sudo vim /etc/ssh/sshd_config # 「Port 22222」を追記 sudo /bin/systemctl reload sshd.service # サーバのセットアップ sudo su yum install -y git # EecKeeper入れた。割愛 amazon-linux-extras install nginx1.12 amazon-linux-extras install php7.2 # nginxのconfいじった。起動は確認してるので割愛 # php-fpmを実行するようのユーザ作成 useradd -s /sbin/nologin php-fpm sudo vim /etc/php-fpm.d/www.conf # user = php-fpm # group = php-fpm に、それぞれ変更 # 以下、再起動したり起動時に自動でnginxとphp-fpmが立ち上がる設定とか。
Code Deploy用に行った設定
bash
1yum install -y aws-cli 2# ↑入ってた
ロール作成
AmazonS3ReadOnlyAccess
をEC2でAWSCodeDeployRole
をcodedeployで作成
EC2インスタンスにロールの当てはめ
AmazonS3ReadOnlyAccessのみを当てはめ
Code Deployのインストール
bash
1aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/install . --region ap-northeast-1 2# download: s3://aws-codedeploy-ap-northeast-1/latest/install to ./install 3 4# インストーラーに実行権限を与える 5chmod +x ./install 6 7# インストーラーの実行にRubyがいるので、それも入れておく 8sudo yum -y install ruby 9 10# インストール 11sudo ./install auto
appspec.ymlの作成
bash
1version: 0.0 2os: linux 3files: 4 - source: / 5 destination: /home/nnahito/deploy-test
↑ちなみに、destination
を/var/www/html/
に変更すると手動デプロイもできなくなります……
なんでなのでしょう?権限…?
Code Deployで手動デプロイを試す
- アプリケーションの作成
- デプロイの作成(gitHubリポジトリ/commit番号指定)
↓
実行
→成功
git push時にデプロイできるようにロールにGitHub用のアカウントを作る
ユーザ作成
- プログラムによるアクセスにチェック
ポリシーの作成
- JSON入力
- 確認画面で以下の忠告が出た
これは失敗…?
とりあえず無視して続き。
ポリシーのアタッチをさっき作ったGitHub用のアカウントに紐付け。
などなどを行い、git pushしても、一切動いてくれず、githgubを見に行くと、最初に提示したエラーが出ておりました。↓
初めてなので、どこが間違っているかわからず……
申し訳ございませんが、おかしなところをご教示いただけますと幸いです。
よろしくお願いいたします。
あなたの回答
tips
プレビュー