Назад | Перейти на главную страницу

Как использовать модуль Ansible homebrew для подтверждения списка установленных пакетов

Я относительно новый пользователь Ansible. Я использую его для организации нескольких групп серверов Linux. Сейчас я расширяю это использование, чтобы использовать Модуль доморощенного Ansible.

Используя модуль homebrew, я хочу подтвердить, что список пакетов установлен на моих компьютерах с macOS. Пока что лучшее, что я могу сделать, это сделать отдельные роли для каждого пакета, каждая из которых будет напоминать:

- name: "htop"
  homebrew:
    name: htop
    state: present

Кажется, что должен быть способ предоставить список пакетов в одной роли, что я видел раньше при использовании модуля Ansible apt.

Какие-нибудь советы? Должен ли сам модуль homebrew явно поддерживать такого рода операции или, возможно, есть что-то более фундаментальное для Ansible или даже самого Python, которое предоставляет то, что я ищу?

PS - Вы можете смело предположить, что все мои машины с macOS являются серверами.

Я нашел решение более или менее. Моя роль теперь выглядит так, и она работает:

- name: "brew favourites"
  homebrew: name={{ item }} state=present
  with_items:
    - htop
    - nmap
    - telnet
    - wget
    - nginx

Расширенные примечания

Я действительно не знаю, какой механизм отвечает за эту работу. Мне кажется, что это вне Ansible и на самом деле это питонизм (это Lamda?). Как бы то ни было, это могло бы служить шаблоном для общего решения такого рода вещей.

Я попробовал описанное выше, увидев что-то подобное, описанное для определения списка пакетов apt, этот подход выглядит так:

- name: "Asserting apt packages"
  apt: pkg={{ item }} state=installed
  with_items:
    - aptitude
    - vim
    - htop
    - nmap
    - curl
    - screen
    - open-vm-tools

При этом обратите внимание, что в модуль apt, Я хотел, чтобы для упак. параметр. в самодельные модуликонтекст, это не было упак., но вместо того, чтобы название.

Аналогично, оба модуля Ansible имеют параметр состояния, но для apt соответствующее значение было установлены, а с домашним пивом это настоящее время.

Поэтому я думаю, что такой синтаксис применим к Ansible в глобальном контексте. И модули не должны знать об этом или явно поддерживать это. Мощный.