amazon-ec2 - 使用 Chef 卸载软件包

标签 amazon-ec2 chef-infra

我一直在使用 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/

相关文章:

chef-infra - Chef Solo 获取用户输入

r - pandoc 和 knitr 的 ssh 与 Rstudio 服务器中的路径

asp.net - 尝试安装 MONO/ASP.NET - 但无法确定服务器使用哪个 Linux 发行版

linux - 为 EC2 Amazon Linux 实例设置 SFTP Sublime Text 3

chef-infra - Chef 使用 "cookbook_file"作为 "windows_zipfile"资源的来源

ruby - 在 Chef 运行错误期间使用 AWS SDK 但在 Chef 工作之外运行它

rpm - 如何让 Chef 检查 RPM 包然后安装?

linux - 使用 Chef 在 VM 上安装 Azure CLI

amazon-web-services - 可以与子账户中的多个 VPC 共享 AWS 中的 VPN 连接吗?

python - 在 AWS 上使用 Tornado 托管 Bokeh 服务器