厨师 – 自动添加节点到厨师服务器

你将如何configuration虚拟机,以便它会自动注册厨师服务器?

我知道我可以使用刀引导,但是如果你一次启动几十个服务器,那么这是非常乏味的。

厨师文档说使用chef-client -j /etc/chef/file.json并将其与您的client.rb和validation.pem文件一起烘焙到映像中。 然而,这仍然需要ssh进入机器运行chef-client命令。

有没有更自动化的方式来做到这一点?
其他人如何一次提供数千台机器?

更新

我联系了Chef支持,他们说你可以通过以下方式启动厨师。

  1. /usr/bin/chef-client到/etc/rc.local文件,并确保在/ etc / chef中有一个client.rb和validatation.pem文件

  2. 使用厨师客户食谱来pipe理厨师和控制初始化脚本。

他们还说,厨师客户端不是作为守护进程运行的。 相反,只有在需要进行收敛时才能运行。 (这似乎与文档相矛盾。)

这些解决scheme虽然引入了新问题 1.如果您将其添加到rc.local文件中,您将有重复的厨师客户端进程运行2.您需要运行厨师以pipe理厨师食谱的厨师。 那么您如何清理并注销节点,以便拍摄快照?

你有很多select。

  1. 节点启动后,使用cloud-init运行chef-client命令。
  2. 包括一个在启动时运行的“服务”来运行厨师客户端
  3. 脚本创build您的节点使用knife ec2 server create或其他云类似的命令。 这将在一个命令中创build和引导节点。 用脚本包装,你可以用这种方式做任意数量的服务器。

不pipe你采取什么方式,如果你不错开服务器创build,你需要意识到将要进入的负载。 在几分钟内成千上万的机器将需要一个惊人的厨师服务器,或者可能是一群厨师服务器。