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

Обеспечение установки заданного набора RPM и только этих RPM

У меня есть несколько списков RPM (по одному на конфигурацию) и набор удаленных машин. Каждый список включает все оборотов в минуту, необходимых для запуска моей машины в выбранной мной конфигурации.

Для данной конфигурации и машины мне нужно убедиться, что:

  1. Каждый RPM в списке RPM конфигурации установлен в одной и той же версии; и
  2. Любой RPM не в списке не установлен (при необходимости удалите)

Я изучал Ansible и его модуль yum, но хотя обеспечить установку данных RPM несложно, я не смог найти способ указать, что любые другие RPM должны быть удалены.

Как это сделать лучше?

Это прямо там, в документации, которую вы связали:

- name: remove the Apache package
  yum: name=httpd state=absent

Обратите внимание, что это также можно применить к группам:

- name: install the 'Development tools' package group
  yum: name="@Development tools" state=absent

Однако, если ваше требование - обеспечить любой пакет, которого нет в вашем списке, не установлен, вам следует начать пересмотр процедуры подготовки, т.е. если машина находится под контролем с момента ее создания, не должно быть выхода из-под вашего контроля для установки пакета.

rpm -qa перечислит все установленные RPM. Вы можете просто сохранить вывод заведомо исправных серверов в текстовый файл, а затем запустить сравнение с другими серверами.

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