Chef infra 使用Chef为大规模部署动态创建节点

Chef infra 使用Chef为大规模部署动态创建节点,chef-infra,chef-recipe,knife,Chef Infra,Chef Recipe,Knife,据我所知,在运行Chef客户端之前,需要在Chef服务器上创建节点。在我的例子中,节点是自动缩放的,我无法事先在服务器上创建节点。我也不想在节点上运行刀子命令。 Chef中是否有一种方法可以处理这样一种情况:角色在Chef服务器上定义,而节点没有定义 我确实看到了first-boot.json方法,但它没有很好的文档记录,关于它的信息也很少,这让我怀疑这是否是一种非标准方法。这不是一种非标准方法,它是刀锋引导用于为正在引导的主机上运行的第一个chef客户端定义运行列表的方法 因此,基本上在配置过

据我所知,在运行Chef客户端之前,需要在Chef服务器上创建节点。在我的例子中,节点是自动缩放的,我无法事先在服务器上创建节点。我也不想在节点上运行刀子命令。 Chef中是否有一种方法可以处理这样一种情况:角色在Chef服务器上定义,而节点没有定义


我确实看到了first-boot.json方法,但它没有很好的文档记录,关于它的信息也很少,这让我怀疑这是否是一种非标准方法。

这不是一种非标准方法,它是刀锋引导用于为正在引导的主机上运行的第一个chef客户端定义运行列表的方法

因此,基本上在配置过程中安装chef,为其提供验证密钥和包含其运行列表的first-boot.json

引用文件

first-boot.json是作为初始刀子引导命令的一部分从工作站生成的

如果在测试机器上使用
knife bootstrap-r
,然后检查生成的first-boot.json以创建您自己的,我会说这是最好的方法


初始json的一个示例是(文档的底部)

实际上情况正好相反,手动创建节点对象通常是一个错误,不太受支持。使用Chef进行自动缩放的最简单方法是烘焙Chef客户端、client.rb,并将验证键输入到VM映像中。然后编写一个脚本,在VM开始向chef服务器注册时运行chef client

我用和来做这个