我有许多 ansible playbook,用于在 Debian 和 CentOS VM 上执行某些操作。到目前为止,当我需要处理包时,我会使用 ansible 模块apt和yum。因此,我必须检查安装了哪个操作系统,然后使用正确的 ansible 模块。
然而,我最近了解到有一个名为package的模块,它以某种方式统一了包管理器,降低了 playbook 的复杂性,所以我现在尝试只使用这个模块。
我想要执行的操作之一是更新所有包。问题是ansible 的文档没有说明如何使用package来执行此操作。然而,它确实说明了如何使用apt和yum来做到这一点:第一个使用和升级操作,后者建议编写如下内容:
yum: name=* state=latest
Run Code Online (Sandbox Code Playgroud)
出于这个原因,我认为我可以使用package来执行以下操作:
package: name=* state=latest
Run Code Online (Sandbox Code Playgroud)
当我运行这个剧本时,我没有遇到任何错误,但这没有在任何地方记录,并且apt和yum 的工作方式并不完全相同。所以我的问题是:上面的命令是否安全,因为它实际上做了我想要它做的事情吗?
提前致谢!
编辑:
我发现 usingpackage: name=* state=latest将尝试安装或更新所有可用的软件包,而不仅仅是更新已安装的软件包。因此这对我来说不是一个有效的解决方案。或者,我可以继续使用yum和apt来执行此特定操作,但我确实想知道为什么不能使用package来执行此操作,或者我是否遗漏了某些内容。
经过进一步的测试,我现在可以自己回答这个问题了,答案是否定的。在 Debian 计算机上使用package: name=* state=latest将尝试安装或更新存储库中可用的每个软件包,因此它不能用作apt-get upgrade.
| 归档时间: |
|
| 查看次数: |
6870 次 |
| 最近记录: |