我正在使用厨师服务器来pipe理在AWS上部署的资源。 但是当我想要一个新的节点的时候,我不喜欢等待完整的厨师运行所需的30多分钟来安装所有的东西。 所以我在收敛之后创build了一个最近的机器快照的AMI,这样可以避免95%的启动时间。
问题是机器的身份被caching在AMI中。 所以我最终得到了多个物理机器,它们都是作为厨师中的同一个“节点”运行的。 我想要的是一旦启动,新机器就会重新注册厨师服务器。
在快照AMI之前,是否有某种方法可以擦除节点的主服务器注册信息,以便在克隆AMI之后打开它,并将其作为新节点注册到服务器上? 我知道我需要在那里留下一些私人钥匙,我很好,但我不确定哪一个。
谢谢!
您必须删除/etc/chef/client.pem并从您的模板AMI中的/etc/chef/client.rb中删除node_name方法。 但是,请保留/etc/chef/validation.pem以使新服务器能够注册。
如果你想在第一次启动后马上在主厨注册节点,可以尝试在运行chef-client /etc/rc.local中添加一个脚本,然后从/etc/rc.local删除它自己。
为了清理节点注册目的,要么在脚本中使用-o来运行chef-client来定义自定义运行列表(和-N,-E以类似于刀片引导configuration模式),或者使用/etc/chef/first-boot.json你的运行列表如:
{ "run_list": [ "role[base]" ] }