LoginSignup
18
14

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-02

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じゃなくても何か活用できそう

18
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14