现在,在当前设置中,我将Ansible与CentOs主机配合使用。 任务之一包含以下行:
command: yum list installed somepackagename
如上所示,该任务仅适用于支持yum
的主机,但是如果我想在Ubuntu或其他Linux发行版上运行它,该怎么办?
在网上进行了一些研究之后,我发现有一个名为package
的通用软件包管理器。这样,我就可以安装/卸载软件包,而不必担心基础主机,但是不必像上面看到的那样list
做它们。
是否有任何模块或任何方式可以以通用方式实现这一目标,而无需创建多个when
?
答案 0 :(得分:1)
一个选项是包括操作系统特定的变量。例如:
- name: vars
include_vars:
file: "{{ item }}"
with_first_found:
- files:
- "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"
- "{{ ansible_distribution }}.yml"
- "{{ ansible_os_family }}.yml"
- "default.yml"
paths: '{{ role_path }}/vars'