我是Ansible世界的新手。我已经创建了一些playbook,并且每天都对这项技术越来越熟悉。
在我的playbook中,我一直使用yum
命令来安装和管理新软件包,但最近我发现了另一个命令package
,它声称是与操作系统无关的。
因此我的问题是:它们之间有什么区别?
特别是,如果我创建了一个角色和一个playbook,我知道它将在RHEL环境中执行(其中yum是默认的软件包管理器),相比使用yum
命令,使用package
命令会带来哪些优势呢?
非常感谢您的帮助。
我是Ansible世界的新手。我已经创建了一些playbook,并且每天都对这项技术越来越熟悉。
在我的playbook中,我一直使用yum
命令来安装和管理新软件包,但最近我发现了另一个命令package
,它声称是与操作系统无关的。
因此我的问题是:它们之间有什么区别?
特别是,如果我创建了一个角色和一个playbook,我知道它将在RHEL环境中执行(其中yum是默认的软件包管理器),相比使用yum
命令,使用package
命令会带来哪些优势呢?
非常感谢您的帮助。
Ansible的package
模块会自动检测您操作系统的默认软件包管理器(例如yum,apt)。
存储这些信息的事实环境变量是"ansible_pkg_mgr"
。
下面是一个相同的命令。
ansible localhost -m setup | grep ansible_pkg_mgr
。
如果您在环境中使用多个操作系统,则应该使用package
而不是指定软件包管理器yum或apt
。
Ansible软件包模块更加通用,但看起来你仍然需要处理软件包名称的差异。来自软件包模块
# This uses a variable as this changes per distribution.
- name: remove the apache package
package:
name: "{{ apache }}"
state: absent
{{ apache }}
变量。
package
是否存在不利影响?换句话说,“如果您不处于多操作系统环境中,是否应该选择yum
/dnf
/apt
?如果是这样,@deepak为什么要这样做?” - vrms