Supprt OS : Amazon Linux AMI 2016.09.0
UserDataに以下のコードを挿入し実行してください。 CFn内のUserDataでも可です。
#!/bin/sh
yum update -y
pip install ansible
yum install -y git gcc openssl-devel libffi-devel
cd ~
git clone https://github.com/cloudpack/c-ansible.git
Region=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/.$//g')
cat <<EOF > c-ansible/group_vars/all.yml
aws_region: "${Region}"
sshd: enabled
EOF
/usr/local/bin/ansible-playbook c-ansible/xxx.yml
- AmazonEC2RoleforSSM
- CloudWatchLogsFullAccess
- ログファイルが出力される場合 -- logrotateのconfファイルを配置する -- CloudWatch Logs Agentのconfファイルを配置する
- プロセスがある場合 -- monitのconfを配置する
疎結合性を高めるために以下の線引で開発する
- xxx.ymlを作成の際に、xxx.shも作成する
- xxx.shにはuserdataで実行して欲しい処理を記載する
- CloudFormation側のuserdataの定義で、xxx.shをcurlでDLし、ローカル実行させる
- CloudFormationから変数を渡したい場合は、/var/tmp/catalogpack_vars.txtに変数を埋め込んでもらう
- xxx.shの冒頭で/var/tmp/catalogpack_vars.txtを読み込み、CloudFormationから変数を受け取る