使用Ansible列出已安装软件包的通用方法

时间:2018-11-16 07:14:53

标签: linux shell ansible

现在,在当前设置中,我将Ansible与CentOs主机配合使用。 任务之一包含以下行:

command: yum list installed somepackagename

如上所示,该任务仅适用于支持yum的主机,但是如果我想在Ubuntu或其他Linux发行版上运行它,该怎么办?
在网上进行了一些研究之后,我发现有一个名为package的通用软件包管理器。这样,我就可以安装/卸载软件包,而不必担心基础主机,但是不必像上面看到的那样list做它们。 是否有任何模块或任何方式可以以通用方式实现这一目标,而无需创建多个when

1 个答案:

答案 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'