gpt4 book ai didi

python - 在 Chef 服务器中,如何确定节点何时完全引导

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:35 27 4
gpt4 key购买 nike

在 python 中,我使用 knife 来启动服务器。

例如

knife ec2 server create -r "role[nginx_server]" --region ap-southeast-1 -Z ap-southeast-1a -I ami-ae1a5dfc --flavor t1.micro -G nginx -x ubuntu -S sg_development -i  /home/ubuntu/.ec2/sg_development.pem -N webserver1

然后我将使用 chef-server api 检查 Bootstrap 何时完成,这样我就可以使用 boto 和其他工具来配置新创建的服务器。伪代码将如下所示:

cmd = """knife ec2 server create -r "role[nginx_server]...."""
os.system(cmd)
boot = False
while boot==False:
chefTrigger = getStatusFromChefApi()
if chefTrigger==True:
boot=True

continue with code for further proccessing

我的问题是:chef-server 中指示节点何时被 chef 完全处理的触发器是什么?请注意,我使用 -N 来命名服务器并将查询其属性,但我要查找什么?有 bool 值吗?状态?

谢谢

最佳答案

长话短说:使用 report/exception handler相反。

当节点成功运行完chef-client后,会将节点对象保存到Chef Server。 ohai 自动生成的属性之一每次 Chef 运行时都是 node['ohai_time'],这是执行 ohai 时的 Unix 纪元时间戳(在 Chef 运行开始时)。没有成功将自身保存到服务器的节点将根本没有 ohai_time。但是,此属性仅跟踪 ohai 运行的时间,不一定跟踪 chef-client 保存到服务器的时间(因为这可能是几秒到几分钟,具体取决于您的 Recipe 正在做什么)。 注意如果 Chef 运行由于未处理的异常而退出,默认情况下它不会保存到服务器。

在节点完成时获得通知的更可靠方法是使用报告/异常处理程序,它可以将消息发送到各种位置和 API。查看documentation获取更多信息。

关于python - 在 Chef 服务器中,如何确定节点何时完全引导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com