让 Chef 节点向服务器重新注册新身份

让 Chef 节点向服务器重新注册新身份

我使用 chef-server 来管理部署在 AWS 上的资源。但是当我想要一个新节点时,我不喜欢等待 30 多分钟来安装所有东西。因此,我创建了一个 AMI,其中包含机器收敛后的最新快照,这可以避免 95% 的启动时间。

问题是机器的身份被缓存在 AMI 中。因此,我最终得到多台物理机器,它们都作为 Chef 中的同一个“节点”运行。我希望新机器在启动后重新注册到 Chef 服务器。

有没有办法在对 AMI 进行快照之前擦除节点的 chef-server 注册信息,以便它在克隆 AMI 后打开时会作为新节点向服务器注册?我知道我需要在那里留下一些私钥,我对此没意见,但我不确定是哪些。

谢谢!

答案1

您必须从模板 AMI 中删除/etc/chef/client.pem并移除 node_name 方法。但是,请保留该方法,以便新服务器能够自行注册。/etc/chef/client.rb/etc/chef/validation.pem

如果您想在首次启动后立即在 chef 中注册节点,请尝试添加一个脚本,/etc/rc.local运行chef-client然后从中删除自身/etc/rc.local

为了干净的节点注册目的,可以在脚本中使用 -o 运行 chef-client 来定义自定义运行列表(以及 -N、-E 来类似于 knife bootstrap 配置模式)或者/etc/chef/first-boot.json与您的运行列表一起使用,例如:

{
  "run_list": [
    "role[base]"
  ]
}

相关内容