Tentando trazer um ambiente muito ad-hoc para um estado mais padronizado e gerenciado.
No meu caso de uso, gostaria de desabilitar todos os repositórios não Red Hat (fornecidos pelo plug-in do gerenciador de assinaturas). No entanto, seria bom ter uma solução flexível que desabilitasse todos os repositórios não gerenciados pelo Puppet.
Alguma sugestão?
Isso depende de como você fornece a configuração do repositório por meio do puppet. Você coloca um arquivo em /etc/yum/repos.d ou em um provedor personalizado?
Você pode tomar medidas para garantir que o diretório /etc/yum.repos.d/ seja limpo (ou seja, mantido livre de arquivos não fornecidos pelo puppet), verifique o recurso de arquivo na referência do tipo de puppet para obter detalhes. O problema com essa abordagem é que alguns aplicativos de terceiros fornecem seus próprios repositórios e os empacotam em rpm:s que são instalados durante o tempo de execução do puppet. Isso pode ser difícil de levar em consideração ao escrever as puppetclasses.
Dependendo de como você planeja implementar a configuração do seu repositório yum, sugiro que altere o "reposdir" em /etc/yum.conf para algo como "/etc/yum.repos.managed.d/" e coloque seus repositórios configurados como marionetes nesse diretório. Dessa forma, o yum não lerá nada do diretório de configuração do repo padrão e apenas daqueles fornecidos por sua implementação de marionete.
Por que não fazer Puppet fazer isso?
Diga ao Puppet para ativar apenas os repositórios que precisam ser ativados e desativar todo o resto.
Outra ideia, adicione algum prefixo aos nomes dos repositórios gerenciados pelo Puppet, para que você possa identificá-los facilmente. Em seguida, desative tudo, exceto RedHat e repositórios prefixados.