我一直在使用 Chef 来管理我们的服务器。
我的角色/app.rb 看起来像这样:
name "app"
description "App server"
run_list [
"recipe[apt]",
...,
...,
"recipe[nginx]"
...,
...,
]
现在我想从机器上删除 nginx 包。
如果我删除 run_list 中的 nginx recipie,它会从节点中删除 nginx 吗?如果没有,请告诉我在节点上进行变更管理的最佳策略是什么。
最佳答案
如果您从 run_list 中删除 nginx,则该特定配方将无法运行。它实际上不会从节点中删除 nginx,因为它不知道如何删除。其实我昨天也在思考这个问题。
您可以编写自己的配方来撤销 recipe[nginx] 或者 recipe[remove_nginx] 或类似的东西。然后你可以删除recipe[remove_nginx]。
其他人也认为这是一种做事的好方法,至少有点让人放心:
http://community.opscode.com/questions/6
显然,您可以从 ruby_block 中的 run_list 中删除配方,这样可以省去在运行后使用 Knife 自行删除它的麻烦:
https://gist.github.com/883522
关于amazon-ec2 - 使用 Chef 卸载软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7385396/