내 사용자 데이터 스크립트를 실행하지 명령에서 공급된다사용자 데이터 (클라우드 초기화) 스크립트는 EC2
#!
set -e -x
echo `whoami`
su root
yum update -y
touch ~/PLEASE_WORK.txt
:
ec2-run-instances ami-05355a6c -n 1 -g mongo-group -k mykey -f myscript.sh -t t1.micro -z us-east-1a
하지만 파일을 검사 할 때 /var/log/cloud-init.log
의 tail -n 5
이다 : 나는 또한 의도 한대로 curl http://169.254.169.254/latest/user-data
내 파일을 반환하는 것을 확인했습니다
[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
에드.
다른 오류 또는 스크립트 출력이 발생하지 않습니다. 부팅시 사용자 데이터 스크립트를 올바르게 실행하려면 어떻게해야합니까?
아 - 모든 내용이 MIME로 인코딩되어야합니다. 나는 일반적인 amazon linux AMI를 사용하고 있지만, startup 로그에'cloud-init' 프로세스가 있으므로 우분투와 동일하다고 가정했습니다. – lollercoaster
ec2-run-instances에 대해 스크립트를 MIME 인코딩 할 필요가 없습니다. Cloud-init은 특정 형식의 데이터가 필요할 수 있지만 아마존이 처리합니다. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonLinuxAMIBasics.html#CloudInit MIME/Base64/gzip을 참조하십시오. 인코딩은 옵션입니다 - 스크립트는 #로 시작해야합니다! –
좋은 점, OpenStack을 사용합니다 ... – lzap