Общий способ перечисления установленных пакетов с использованием Ansible - PullRequest
0 голосов
/ 16 ноября 2018

Прямо сейчас в моей текущей настройке я использую Ansible с хостами CentOs.Одна из задач содержит следующую строку:

command: yum list installed somepackagename

Как видно выше, задача будет работать только для хостов, которые поддерживают yum, но что если я захочу запустить ее в Ubuntu или другом дистрибутиве Linux?
После небольшого онлайн-исследования я обнаружил, что есть универсальный менеджер пакетов, который называется package.При этом я устанавливаю / удаляю пакеты, не беспокоясь о базовых хостах, но не делаю что-то вроде list, как показано выше.Есть ли какой-либо модуль или каким-либо образом я мог бы достичь этого в общем случае, не создавая несколько when с?

1 Ответ

0 голосов
/ 16 ноября 2018

Можно включить переменные, специфичные для ОС.Например:

- 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...