Попытка привести очень специальную среду в более стандартизированное и управляемое состояние.
В моем случае использования я бы хотел отключить все репозитории, не относящиеся к Red Hat (предоставляемые плагином диспетчера подписок). Однако было бы неплохо иметь гибкое решение, которое отключает все репозитории, не управляемые Puppet.
Какие-либо предложения?
Это зависит от того, как вы предоставляете конфигурацию репозитория через марионетку. Вы помещаете файл в /etc/yum/repos.d или в пользовательский провайдер?
Вы можете принять меры, чтобы убедиться, что каталог /etc/yum.repos.d/ очищен (т. Е. Свободен от файлов, не предоставленных марионеткой), проверьте ресурс файла в справочнике по типу марионетки. Проблема с этим подходом заключается в том, что некоторые сторонние приложения предоставляют свои собственные репозитории и упаковывают их в rpm: s, который устанавливается во время выполнения марионетки. Это может быть трудно учесть при написании марионеточных классов.
В зависимости от того, как вы планируете реализовать конфигурацию репозитория yum, я предлагаю вам изменить «reposdir» в /etc/yum.conf на что-то вроде «/etc/yum.repos.managed.d/» и разместить репозитории, настроенные для марионетки. в этом каталоге. Таким образом, yum не будет читать ничего из стандартного каталога конфигурации репозитория, а только из тех, которые предоставлены вашей реализацией марионетки.
Почему бы не заставить Puppet сделать это?
Скажите Puppet, чтобы он включил только те репозитории, которые необходимо включить, и отключите все остальное.
Другая идея - добавить префикс к именам управляемого репо Puppet, чтобы вы могли легко их идентифицировать. Затем отключите все, кроме RedHat и репозиториев с префиксом.