Você pode aplicar uma ação de manifesto de fantoche?

5

Eu apliquei um manifesto de fantoche, que por sua vez incluiu um módulo de fantoche que adicionou várias entidades a / opt / ...

Existe uma maneira de desfazer os efeitos de um módulo de marionete aplicado?

i.e. "desinstalação do módulo de fantoches ..."

    
por jayunit100 23.07.2013 / 22:26

3 respostas

9

Não há. Como um módulo puppet pode executar comandos arbitrários, não há como determinar exatamente o que significa "aplicar".

Alguns módulos são enviados com um anti-módulo correspondente que executará a desinstalação (por exemplo, foo vs foo::disable ), mas isso requer uma codificação explícita.

    
por 23.07.2013 / 22:38
4

embora seja bom, mas não há aplicação indiscriminada.

você teria que escrever uma receita de desfazer você mesmo, dependendo do que você fez exatamente (pacote instalado? então purgá-lo, adicionar usuário? então desabilitá-lo, etc.)

os arquivos substituídos devem ser armazenados no clientbucket (/ var / lib / puppet / clientbucket normalmente, mas isso depende da sua versão e da sua configuração)

    
por 23.07.2013 / 22:38
0

Não, não há. O que um módulo fará dependerá muito do estado do seu sistema. Por exemplo, e se você já tivesse algumas dessas entradas que foram adicionadas em / opt em seu sistema? Então, teria acrescentado apenas os que faltam. E uma vez que o estado mudou, Puppet não se importa mais com o estado anterior. A próxima vez que o agente for executado, ele apenas comparará o estado atual do sistema com o que ele acha que deveria ser e, então, os alinhará.

Um dos principais conceitos do Puppet é a idempotência, o que significa que, se você executasse o manifesto várias vezes, terminaria sempre com o mesmo resultado. O que você está tentando fazer é impor um estado final conhecido que você deseja que ocorra. Se o módulo faz coisas que você não quer, você não pode usá-lo e escrever o seu próprio, ou você pode modificá-lo.

Como robbyt mencionou, usar o modo --noop é muito útil quando você testa novos manifestos. Você também deve tentar testá-los em outro lugar antes de aplicá-los em seus sistemas de produção. As VMs são ótimas para esse tipo de teste, você pode tirar uma foto instantânea e, em seguida, reverter, se necessário.

Seu agente deve estar sendo logado no syslog. Você também pode examinar os logs, ver o que foi feito e desfazer as alterações manualmente (também é possível ver logs históricos por meio do console da web, se estiver usando o Puppet Enterprise). Mas isso não ajudará se esse módulo ainda for aplicado ao nó, o agente apenas colocará as coisas de volta quando for executado novamente.

    
por 27.08.2013 / 09:14