kịch bản sử dụng dữ liệu của tôidữ liệu người dùng (cloud-init) kịch bản không thực hiện trên EC2
#!
set -e -x
echo `whoami`
su root
yum update -y
touch ~/PLEASE_WORK.txt
mà được đưa từ lệnh:
ec2-run-instances ami-05355a6c -n 1 -g mongo-group -k mykey -f myscript.sh -t t1.micro -z us-east-1a
nhưng khi tôi kiểm tra các tập tin /var/log/cloud-init.log
, số tail -n 5
là:
[CLOUDINIT] 2013-07-22 16:02:29,566 - cloud-init-cfg[INFO]: cloud-init-cfg ['runcmd']
[CLOUDINIT] 2013-07-22 16:02:29,583 - __init__.py[DEBUG]: restored from cache type DataSourceEc2
[CLOUDINIT] 2013-07-22 16:02:29,686 - cloud-init-cfg[DEBUG]: handling runcmd with freq=None and args=[]
[CLOUDINIT] 2013-07-22 16:02:33,691 - cloud-init-run-module[INFO]: cloud-init-run-module ['once-per-instance', 'user-scripts', 'execute', 'run-parts', '/var/lib/cloud/data/scripts']
[CLOUDINIT] 2013-07-22 16:02:33,699 - __init__.py[DEBUG]: restored from cache type DataSourceEc2
Tôi cũng đã xác minh rằng curl http://169.254.169.254/latest/user-data
trả về tệp của tôi theo ý định ed.
và không có lỗi nào khác hoặc đầu ra của tập lệnh của tôi xảy ra. làm thế nào để tôi nhận được tập tin dữ liệu người dùng thực thi khi khởi động đúng cách?
ah Tôi thấy - mọi thứ phải được mã hóa MIME. Tôi đang sử dụng AMI Linux amazon chung, nhưng tôi thấy quy trình 'cloud-init' trong nhật ký khởi động, vì vậy tôi cho rằng nó giống với hương vị ubuntu. – lollercoaster
Bạn không cần phải mã hóa MIME cho các phiên bản chạy ec2. Cloud-init có thể yêu cầu dữ liệu ở một định dạng cụ thể, nhưng Amazon sẽ xử lý dữ liệu đó cho bạn - xem http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonLinuxAMIBasics.html#CloudInit MIME/Base64/gzip mã hóa là tùy chọn - tập lệnh của bạn chỉ cần bắt đầu bằng #! –
Điểm tốt, tôi sử dụng OpenStack ... – lzap