这是一个 n00b 问题,但 Chef 文档没有帮助。
假设我更改了 Recipe 的代码。我将它上传到我的 Chef 服务器。如何使用此说明书将更改应用到我的节点?
最佳答案
正如 Draco 评论的那样,您在节点上运行 Chef。他们将自动从服务器下载 Recipe 中更改的文件。
sudo chef-client
如果您将 Chef 作为服务运行(通过 Opscode 的 chef-client Recipe 服务配方或其他方式设置),它会在某个时候自动运行。由于您使用的是 Chef 服务器,因此您还可以使用 knife ssh
一次在多个节点上执行搜索和运行命令。
knife ssh "*:*" "sudo chef-client" -x youruser
用任何 Chef Search Query 替换“:” .
另外,这里是Environments很有用,因为您可以将特定版本的说明书固定到环境中的节点,因此在您修改允许它们使用的版本之前,它们不会获得说明书中所做的更改。例如,如果您的 cookbook 版本为 1.0.0,并将“生产”固定到该版本(“= 1.0.0”),然后在上传之前增加版本(1.0.1),那么生产节点将不会获得新版本,直到环境中的版本更新为较新版本。
关于ruby - Chef : Upload and re-apply a cookbook to a Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14173701/