到目前为止,我基本上使用现场实例作为更便宜的按需实例,但自去年11月以来所做的更改使得更难预测中断(因此选择不会被中断的实例),所以我是试图弄清楚如何以他们打算使用的方式使用现场实例。
幸运的是,我的工作非常容错 - 这是大规模的地理处理。我的问题是通过启动shell脚本来工作。我不确定它是否是shell脚本本身的问题,我是如何与AWS接口或其他问题的问题。
这是我的bash脚本:
#!/bin/bash
# make a directory
mkdir /home/ubuntu/MACA
# attach the EBS volume that has all of my data and scripts
aws ec2 attach-volume --volume-id vol-6969420420 --instance-id $(curl http://169.254.169.254/latest/meta-data/instance-id) --device /dev/xvdf
# mount it
mount /dev/xvdf /home/ubuntu/MACA
# remove cruft left over from interrupted runs
rm /home/ubuntu/MACA/tmp/+macav2metdata_*
# run my R script that implements my job
Rscript --verbose /home/ubuntu/MACA/tmp/process_maca_v2.r
我没有做很多shell脚本 - 这里有什么不妥之处吗?我告诉AWS通过控制台运行它:
当我进入SSH时,没有任何事情发生。以下是/var/log/cloud-init-output.log
的相关部分:
Cloud-init v. 17.1 running 'modules:config' at Wed, 14 Feb 2018 22:38:25 +0000. Up 40.96 seconds.
Cloud-init v. 17.1 running 'modules:final' at Wed, 14 Feb 2018 22:38:32 +0000. Up 48.23 seconds.
2018-02-14 22:38:32,757 - util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [-]
2018-02-14 22:38:32,859 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
2018-02-14 22:38:32,865 - util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_scripts_user.py'>) failed
Cloud-init v. 17.1 finished at Wed, 14 Feb 2018 22:38:33 +0000. Datasource DataSourceEc2Local. Up 48.77 seconds
某种python错误?我不知道如何解析这个。非常感谢帮助这项运行。如果我没有提供足够的信息,请告诉我。
答案 0 :(得分:0)
由于您是从正在运行的实例创建自定义AMI,因此已经执行了cloud-init代码。在创建AMI之前,请运行
rm -rf /var/lib/cloud/*
清除所有现有的bootstrap数据。在此之后,创建您的图像,用户数据脚本应该可以正常工作。或者,使用
#cloud-boothook
在脚本开头强制执行,但请注意,不能保证只执行一次。