#!/usr/bin/env python
import boto.ec2
conn_ec2 = boto.ec2.connect_to_region('us-east-1') # access keys are environment vars
my_code = """#!/usr/bin/env python
import sys
sys.stdout = open('file', 'w')
print 'test'
"""
reservation = conn_ec2.run_instances(image_id = 'ami-a73264ce',
key_name = 'backendkey',
instance_type = 't1.micro',
security_groups = ['backend'],
instance_initiated_shutdown_behavior = 'terminate',
user_data = my_code)
實例與正確的設置(這是公衆的Ubuntu 12.04,64位圖像),我可以啓動SSH正常進入。用戶數據腳本似乎已正確加載:我可以在/var/lib/cloud/instance/user-data.txt
(也可以在/var/lib/cloud/instance/scripts/part-001
)和EC2控制檯上看到它。
但就是這樣,腳本似乎沒有被執行。在this answer之後,我檢查了/var/log/cloud-init.log
文件,但它似乎沒有包含任何與我的腳本相關的錯誤消息(好吧,也許我錯過了一些東西 - here is a gist與cloud-init.log的內容)。
我錯過了什麼?
是你的'文件'被創建?您是否嘗試了完整路徑'/ tmp/file'來檢查是否正在創建文件。 – Rico
不,不會創建'file'。甚至沒有完整的路徑(感謝提醒,順便說一句)。 – Parzival
您是否嘗試運行bash腳本?或者您可以嘗試從AWS控制檯創建實例(從AWS控制檯傳遞用戶數據)並查看腳本是否有問題。 – Rico