Edited at

EC2のuser-dataで起動時shell scriptを書く

More than 3 years have passed since last update.

EC2を立ち上げるのに設定を進めていくと、Configure Instance Detailsの下にAdvanced Detailsというところがあります。それを覗くとUser dataってのがあります。

これで、インスタンス作成時に実行してほしいシェルスクリプトとかcloud-initとかかけるんです。sshログインしなくてもchef-soloとか実行できちゃうんですねえ。

しかし、User dataってインスタンス作成時にしか動いてくれないんです。

つまりrestartでは実行されない

わたしはrestartでchefを実行したかったのでしばし悩みました。

(ベストプラクティスかは分かりませんが、インスタンス立ち上げ直すよりお金かからないので)

そこで、思いついたのがこんなん。


User_data

#!/bin/bash

# インスタンス作成時のみ実行するもの
yum install git
yum install "chefのrpm"
git clone https://cookbookのレポジトリ

cat <<EOF >> /etc/rc.local

# インスタンス起動時/再起動時に実行するもの
cookbookをgit pullとかberksとかchef-soloとか(雑

EOF


気になるのはインスタンス作成時の実行順ですが、


  1. User dataに書いたスクリプト

  2. /etc/rc.local

なのでご安心を。

User dataの実行logは、

/var/log/cloud-init-output.log

chefじゃなくても何か活用できそう