我有一些用于在Debian和CentOS VM上执行某些操作的ansible playbooks。到现在为止,当我需要处理包时,我会使用ansible模块apt和yum。因此,我必须检查安装了哪个操作系统,然后使用正确的安全模块。
但是,我最近在那里学到了一个名为package的模块,它以某种方式统一了包管理器,降低了剧本的复杂性,所以我现在尝试使用这个模块仅
我想要执行的其中一项操作是更新所有软件包。问题是ansible's documentation没有说明如何使用包来执行此操作。然而,它确实说明了如何使用 apt 和 yum :第一个使用和升级操作,后者建议写一些类似的东西:
yum: name=* state=latest
出于这个原因,我认为我可以使用 package 来执行以下操作:
package: name=* state=latest
当我运行这个剧本时,我没有遇到任何错误,但这并没有在任何地方记录, apt 和 yum 不要工作方式完全相同。所以我的问题是:上面的命令是安全的,就像它实际上做我想做的那样吗?
提前致谢!
编辑:
我发现使用package: name=* state=latest
会尝试安装或更新所有可用的软件包,而不仅仅是更新已安装的软件包。因此,这对我来说不是一个有效的解决方案。或者,我可以继续使用 yum 和 apt 来执行此特定操作,但我想知道为什么不能使用 package 来执行此操作,或者如果我错过了什么。
答案 0 :(得分:1)
经过进一步测试后,我现在可以自己回答这个问题了,答案是否定的。在Debian计算机上使用package: name=* state=latest
将尝试安装或更新存储库中可用的每个程序包,因此无法将其用作apt-get upgrade
的替代。
答案 1 :(得分:0)