それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

AWS/EC2起動時に CodeCommit からサーバ設定拾って起動したい

楽したいなーってだけ。

参考URL

AWS CodeCommit

リポジトリの作成

AWSのコンソールにアクセスして CodeCommit を選択・・・したが、今は北米リージョンとかだけっぽいので適当に バージニア北部 を選択し、次の画面で Get started をクリック

"Create new repository" と表示されたので、適当にリポジトリ名を入力(server-config)し、Create repositoryをクリック

するとリポジトリが作成され接続方法について表示される。 どうやらIAMアカウントにSSH鍵ひも付けて使えってことみたい。

IAMアカウントへSSH鍵の割り当て

これは簡単でIAM開き、ユーザから自分が使うアカウントを選択、認証情報にある AWS CodeCommit の SSHキー で公開キーをアップロードするだけ。 アップロードすると SSH キー ID が表示される、後でリポジトリにアクセスする際に使うのでメモしとく。

EC2でリポジトリ設定を行う。

EC2で CentOS7.x のインスタンスを起動して以下の事を対応した。 サンプルとしてApache/Tomcatをインストールする。

$ sudo su -# yum -y install git @web-server @web-servlet# systemctl disable httpd# systemctl disable tomcat# vi ~/.ssh/config

codecommit へアクセスするためのアカウント情報(先にメモしといたSSHキーID)と、秘密鍵を指定する。

Host git-codecommit.*.amazonaws.com    User Your-IAM-SSH-Key-ID-Here  IdentityFile ~/.ssh/Your-Private-Key-File-Name-Here

あとリポジトリにアクセスする際の個人情報を登録や、push.default の設定を行う。

# git config --global user.name "oppai oppai"# git config --global user.email underboob@localdomain# git config --global push.default matching

で、リポジトリをクローン

# cd /# git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/server-config

git にApacheやらTomcatの設定を放り込み、シンボリックリンクを貼っとく。

# mkdir /server-config/httpd# mv /etc/httpd/conf /server-config/httpd/# mv /etc/tomcat /server-config/# ln -s /server-config/httpd/conf /etc/httpd/conf# ln -s /server-config/tomcat /etc/tomcat

サーバ設定を適当に編集したうえ、リポジトリに反映する。

# git add .# git commit -a -m "new create"# git push -u origin master

cloud-init の設定

一旦インスタンスを停止し [インスタンスの設定] -> [ユーザデータの表示/変更] をクリック、ユーザデータに以下の内容を記述

#cloud-boothook#!/bin/bash( cd /server-config && git pull)service httpd stop  service tomcat stop  service tomcat start  service httpd start  

リポジトリの更新

適当な環境で上記で作成したリポジトリを同じ手順でクローン・編集・コミットする。

EC2インスタンスの確認

cloud-init の設定により、別の環境で更新したリポジトリの内容がインスタンス起動時に反映されている事を確認する。 とりあえず更新したり、ファイル作成・削除したりしたけど問題なさそう。

clodu-init が実行されるタイミングとか、ログどないすんねんとか考えないといけない事は多々あるけど、とりあえずやりたい事の枠だけは出来た感じ。

以上、なにごとも適当に。