8

我一直在使用 Chef 来管理我们的服务器。

我的角色/app.rb 看起来像这样:

name "app"

description "App server"

run_list [
    "recipe[apt]",
    ...,
    ...,
    "recipe[nginx]"
    ...,
    ...,
]

现在我想从机器中删除 nginx 包。如果我删除 run_list 中的 nginx 接收方,它会从节点中删除 nginx 吗?如果不是,请告诉我在节点上进行变更管理的最佳策略是什么。

4

1 回答 1

9

如果您从 run_list 中删除 nginx,则该特定配方将不会运行。它实际上不会从节点中删除 nginx,因为它不知道如何删除。其实昨天我也在思考这个问题。

您可以编写自己的配方来撤消配方[nginx] 可能是配方[remove_nginx] 或类似的东西。之后,您可以删除配方 [remove_nginx]。

其他人也认为这是做事情的好方法,至少有点让人放心:

http://community.opscode.com/questions/6

显然,您可以从 ruby​​_block 中的 run_list 中删除一个配方,这样就省去了在运行后使用刀自己删除它的麻烦:

https://gist.github.com/883522

于 2011-11-03T14:49:20.513 回答