下記のように"cloud-init"で、EC2起動時にいろいろと処理を行う方法を紹介してきました。
今回は起動時に任意のスクリプトを実行する設定を試してみます。
設定ファイルの調整とリブート
"cloud_init_modules"に"bootcmd"を追加し、実行するスクリプトも"bootcmd"で
リスト形式で(複数)指定します。
# cat /etc/cloud/cloud.cfg manage_etc_hosts: localhost user: root disable_root: false ssh_genkeytypes: [ rsa, dsa ] ssh_pwauth: yes bootcmd: - echo $INSTANCE_ID > /tmp/instance_id.txt cloud_init_modules: - bootcmd - resizefs - update_etc_hosts - ssh ...設定できたらリブートします。
# reboot
スクリプトのとログの確認
"cloud-init"のスクリプトを読むと"bootcmd"実行直前にシェル変数(INSTANCE_ID)に
インスタンスIDがセットされていたのですが、下記より確認することができました。
# cat /tmp/instance_id.txt i-7aa8c079ログも次の通りです。
# cat /var/log/cloud-init.log ... Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] cloud-init[INFO]: cloud-init start running: Fri, 28 Dec 2012 07:55:16 +0000. up 8.41 seconds Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: searching for data source in ['DataSourceNoCloudNet', 'DataSourceConfigDriveNet', 'DataSourceOVFNet', 'DataSourceEc2'] Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] DataSourceEc2.py[DEBUG]: removed the following from metadata urls: ['http://instance-data:8773'] Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] DataSourceEc2.py[DEBUG]: Using metadata source: 'http://169.254.169.254' Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] DataSourceEc2.py[DEBUG]: crawl of metadata service took 0s Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: found data source DataSourceEc2 Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] cloud-init[DEBUG]: found data source: DataSourceEc2 Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: handling bootcmd with freq=None and args=[] Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: handling resizefs with freq=None and args=[] Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] cc_resizefs.py[DEBUG]: resizing root filesystem (type=ext4, maj=202, min=65) Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: handling update_etc_hosts with freq=None and args=[] Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] cc_update_etc_hosts.py[DEBUG]: managing 127.0.1.1 in /etc/hosts Dec 28 16:55:16 ip-10-0-0-51 [CLOUDINIT] __init__.py[DEBUG]: handling ssh with freq=None and args=[]
とりあえず"cloud_init_modules"まででAMIを作るか。(もくもく勉強会で...)
--------
http://www.suz-lab.com

0 コメント:
コメントを投稿