我是Ansible世界的新手。我已经创建了一些剧本,并且我越来越熟悉这项技术。
在我的剧本中,我总是使用命令yum
来安装和管理新包,但最近我发现了另一个声称与操作系统无关的命令package
。
因此我的问题是:他们之间有什么区别?
特别是,如果我创建一个我知道将在RHEL环境中执行的角色和剧本(yum是默认的包管理器),我可以从使用命令package
获得哪个优势而不是yum
?
提前感谢您的帮助。
答案 0 :(得分:3)
Ansible package
模块从现有事实中自动检测您的操作系统默认包管理器(例如yum,apt)。
存储的事实环境变量是"ansible_pkg_mgr"
。
这是一个相同的命令。
ansible localhost -m setup | grep ansible_pkg_mgr
。
如果您在您的环境中使用多个操作系统,那么您应该使用package
而非yum or apt
而不是指定包管理器。
答案 1 :(得分:3)
Ansible包模块更通用,但看起来你仍然需要处理包名称的差异。来自package module
# This uses a variable as this changes per distribution.
- name: remove the apache package
package:
name: "{{ apache }}"
state: absent
在这种情况下,包名称为:
所以{{apache}}变量必须设置正确