ruby - Chef : Upload and re-apply a cookbook to a Node

标签 ruby chef-infra

这是一个 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/

相关文章:

ruby - batch/multi with redis 求和不同的键

ruby - OpenSSL - 既不是 PUB key 也不是 PRIV key ::嵌套 asn1 错误

vagrant - 如何在 kitchen.yml 中进行多重配置?

chef-infra - Opscode Chef 注册节点时请求实体太大

Ruby .gets 不起作用

ruby - 尽管有错误,为什么 float 文字仍按原样表示?

ruby - 通过 API 和 ruby​​ 创建优惠券返回错误 : woocommerce_api_missing_coupon_data

ruby - Chef : Insufficient permissions creating a directory in C:

chef-infra - 我可以使用 Chef 服务器的一个实例管理多少个节点?

chef-infra - 如何在 Chef Recipe 文件中附加内容?