我正在使用cloud-init/ OpenStack -config配置云机器。我打算等到它完全配置好后再开始使用它。
使用一些标记文件或检测cloud-init进程是否仍在运行并不难,尽管在每个cloud-init脚本中做这件事似乎相当麻烦。有什么推荐的方法吗?由cloud-init原生支持,理想情况下?
发布于 2021-08-27 13:20:01
下面的命令可以解决这个问题:
cloud-init status --wait来自https://ubuntu.com/blog/cloud-init-v-18-2-cli-subcommands
cloud-init status为cloud-init正在做什么以及它是否成功完成提供了简单的、人类可读的或编程输出。它可以用作机器上的健全性检查,或者在脚本中阻塞,直到cloud-init成功完成。
发布于 2016-02-20 15:02:54
正如@flyxiao指出的那样,cloud-init将状态信息放到文件系统上的一个专用目录中:/run/cloud-init/ (比/var/lib/cloud/data/更好,因为它可以保证描述最后一个初始化过程)。status.json包含所有初始化阶段的详细信息,而result.json表示整个初始化已完成。project documentation建议使用python脚本来检测cloud-init完成:
fin = "/run/cloud-init/result.json"
if os.path.exists(fin):
ret = json.load(open(fin, "r"))
if len(ret['v1']['errors']):
print "Finished with errors:" + "\n".join(ret['v1']['errors'])
else:
print "Finished no errors"
else:
print "Not Finished"发布于 2017-07-15 10:15:51
最简单的答案是在实例上设置一个标记,这样您就可以轮询它的存在。
如果您有Linux主机,请最后执行以下操作:
aws ec2 create-tags --resources `ec2metadata --instance-id` --tags Key=BootstrapStatus,Value=complete这就避免了设置网络端点、创建故障点或在SSHing中创建保护凭据的需要。
https://stackoverflow.com/questions/33019093
复制相似问题