N番煎じもいいとこですが、自分用のメモとして残します。
EC2 インスタンスを構築する際に、決まって行う作業があると思います。この作業をインスタンスを構築するたびに行うのは非常に手間だと思います。そこで「ユーザーデータ」という機能を使って、インスタンス構築時に自動的に定型作業を実施するようにします。
ユーザーデータを指定する場所
マネージメントコンソールから行う場合は、下記で指定することができます。「高度な詳細」を押さないと、設定項目が出てこないのでご注意ください。もちろん CLI からインスタンスを構築する際も、ユーザーデータを利用することができます。
何をかくか
こちらは「定型作業」が何かによって変わってきますが、今回は
- ホスト名の変更
- タイムゾーンの変更
- 言語設定
- yum update
を自動化したいと思います。
#!/bin/bash # ホスト名 sed -i 's/^HOSTNAME=[a-zA-Z0-9\.\-]*$/HOSTNAME=udemy-aws-14days-db-1a/g' /etc/sysconfig/network hostname 'udemy-aws-14days-db-1a' # タイムゾーン cp /usr/share/zoneinfo/Japan /etc/localtime sed -i 's|^ZONE=[a-zA-Z0-9\.\-\"]*$|ZONE="Asia/Tokyo”|g' /etc/sysconfig/clock # 言語設定 echo "LANG=ja_JP.UTF-8" > /etc/sysconfig/i18n # yum update yum update -y
こちらをユーザーデータに記載することで、期待する状態でインスタンスが構築されます。
まとめと今後
ユーザーデータで Ansible を呼び出して、Play Book に従って構築!的なことにチャレンジしてみたいです!(Chef しか使ったことなく、Ansible 使ったことない人です。)