我尝试在各个网站上查找答案或类似行为,但没有看到任何人遇到此问题。这表明要么我做的不对,要么我没仔细查看。如果您认为这是重复的问题,请指出我可以在哪里找到答案。谢谢。
我正在使用 EC2 Ubuntu t2.micro 机器。
我有一个脚本,它检查实例“Scale in Protection Bit”,如果没有设置,它就会终止它。
使用的脚本:python 脚本
尝试过的方法:update-rc.d defaults rc.local
症状:如果我从控制台运行脚本,它可以正常工作,但是,如果我重新启动系统,则检查执行“aws autoscaling describe-auto-scaling-instances --instance-id”的行始终会失败
代码片段:
尝试:myInstanceID = subprocess.check_output([“ec2metadata”,“--instance-id”])myInstanceID = myInstanceID.strip(“\n”)打印myInstanceID 除外:打印“仍在启动”继续
#result = subprocess.check_output(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID])
p = subprocess.Popen(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID],stdout=subprocess.PIPE)
result = p.communicate()[0]
#try:
# #result = subprocess.check_output(["aws','autoscaling','describe-auto-scaling-instances','--instance-id',myInstanceID])
# result = subprocess.check_output(["/usr/local/bin/aws","autoscaling","describe-auto-scaling-instances","--instance-id",myInstanceID])
#except:
# #print e.output
# print "ERROR"
# continue
也尝试了注释行,但结果相同。
答案1
失败原因:当我在用户空间中创建一个脚本并执行“aws configure”时,系统完成启动过程后,用户 ubuntu 会发生这种情况。但是,当启动脚本运行时,它会在 root 下运行,因此在 SU(超级用户)空间下运行,并且我尚未将其配置为具有 aws 凭据。
解决方案:执行“sudo su”进入超级用户模式,然后执行“aws configure”提供所有 aws 凭证。这样就可以了,因为启动脚本可以找到所有 aws 凭证。