首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测cloud-init初始化完成

如何检测cloud-init初始化完成
EN

Stack Overflow用户
提问于 2015-10-08 22:46:41
回答 5查看 4.2K关注 0票数 6

我正在使用cloud-init/ OpenStack -config配置云机器。我打算等到它完全配置好后再开始使用它。

使用一些标记文件或检测cloud-init进程是否仍在运行并不难,尽管在每个cloud-init脚本中做这件事似乎相当麻烦。有什么推荐的方法吗?由cloud-init原生支持,理想情况下?

EN

回答 5

Stack Overflow用户

发布于 2021-08-27 13:20:01

下面的命令可以解决这个问题:

代码语言:javascript
复制
cloud-init status --wait

来自https://ubuntu.com/blog/cloud-init-v-18-2-cli-subcommands

cloud-init status为cloud-init正在做什么以及它是否成功完成提供了简单的、人类可读的或编程输出。它可以用作机器上的健全性检查,或者在脚本中阻塞,直到cloud-init成功完成。

票数 7
EN

Stack Overflow用户

发布于 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完成:

代码语言:javascript
复制
 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"
票数 2
EN

Stack Overflow用户

发布于 2017-07-15 10:15:51

最简单的答案是在实例上设置一个标记,这样您就可以轮询它的存在。

如果您有Linux主机,请最后执行以下操作:

代码语言:javascript
复制
aws ec2 create-tags --resources `ec2metadata --instance-id` --tags Key=BootstrapStatus,Value=complete

这就避免了设置网络端点、创建故障点或在SSHing中创建保护凭据的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33019093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档