Como desativar as execuções programadas automáticas do Puppet que ocorrem a cada 30 minutos?

8

Alvo

O objetivo é desativar as execuções automáticas do agente Puppet que ocorrem a cada 30 minutos. É possível alterar o intervalo , mas a execução automática do agente Puppet deve ser desativada completamente.


Tentativa um

De acordo com esta documentação , deve ser possível desativar as execuções automáticas do Puppet-agent, configurando o seguinte:

/etc/puppet/puppet.conf

[agent]
daemonize=false

resulta em

Notice: Run of Puppet configuration client already in progress; 
skipping  (/var/lib/puppet/state/agent_catalog_run.lock exists)

se o fantoche for executado manualmente no intervalo de execução padrão de 30 minutos.


Tentativa dois

user@hostname:~$ sudo puppet agent --disable

resulta em

user@hostname:~$ sudo puppet agent -t
Notice: Skipping run of Puppet configuration client; 
administratively disabled (Reason: 'reason not specified');
Use 'puppet agent --enable' to re-enable.

Tentativa três

Esta documentação foi encontrada após pesquisar a pergunta deste Q&A, mas as informações fornecidas não responderam à pergunta.

030
fonte
2
Tentativa de trabalhar. Se já estava em execução, você deve pará-lo. Isso apenas impede que futuras instâncias daemonize. Se estiver faltando alguma coisa, explique por que isso não funcionou. Você também pode usar o chkconfig puppet off && service puppet stopRed Hat e seus derivados.
Aaron Copley
@AaronCopley Obrigado pelo conselho. Desativei e parei o fantoche e monitorarei se ele não será executado novamente a cada 30 minutos. A daemonize=falseconfiguração ainda reside na seção Agente em /etc/puppet/puppet.conf
030
@AaronCopley Você poderia postar o comentário como resposta?
030

Respostas:

10

"Tentativa um" deveria ter funcionado. Se já estava em execução, você deve pará-lo. Isso apenas impede que futuras instâncias daemonize. Se estiver faltando alguma coisa, explique por que isso não funcionou. Você também pode usar o chkconfig puppet off && service puppet stopRed Hat e seus derivados.

Aaron Copley
fonte
Talvez não tenha funcionado na primeira vez, pois o agente fantoche não foi reiniciado. Amanhã vou verificar se a execução do comando fornecido resolveu o problema.
030
4

Você precisa garantir que o agente fantoche não esteja iniciando como um serviço. Comandos como systemctl, ou você chkconfigé seu amigo aqui (por exemplo, systemctl disable puppetou chkconfig puppet off). Não tenho certeza sobre a maioria das distros.

Então você também deve garantir que o agente esteja parado. Por exemplo, systemctl stop puppetou service stop puppet.

Você também pode usar o fantoche para realizar o acima:

puppet apply <(echo "service { puppet: ensure => false, enable => false }")

Se ainda assim não funcionar, pkill puppetpor uma boa medida, tente novamente, se ainda não funcionar - reinicie.

chutz
fonte
3

Você está procurando um comando como:

puppet agent --disable
TomOnTime
fonte
Obrigado por postar uma resposta. A execução deste comando resulta emError: Could not parse application options: invalid option: --disable
030
1
deve ser agente fantoche --disable
dmourati
@dmourati Este comando foi executado. sudo puppet agent -tresultados emNotice: Skipping run of Puppet configuration client; administratively disabled (Reason: 'reason not specified'); Use 'puppet agent --enable' to re-enable.
030
@ Tomom Time Isso já foi tentado. Depois que esse comando foi executado, não é mais possível executar o fantoche manualmente (Documentação da Tentativa2 na pergunta)
030
1
Era isso que você queria: Desabilitado administrativamente. Se você precisar executar manualmente enquanto estiver desativado administrativamente: puppet agent --enable; agente fantoche - teste; agente de marionetes --disable
dmourati
2

Eu não esperaria que a opção daemonize afetasse isso - eu esperaria que isso controlasse se o programa se autentica e se desconecta do terminal.

https://docs.puppetlabs.com/references/stable/configuration.html#runinterval diz ...

runinterval

Com que frequência o agente de marionetes aplica o catálogo. Observe que um intervalo de execução igual a 0 significa "executar continuamente" em vez de "nunca executar". Se você quiser que o agente fantoche nunca seja executado, inicie-o com a opção --no-client. Essa configuração pode ser um intervalo de tempo em segundos (30 ou 30s), minutos (30m), horas (6h), dias (2d) ou anos (5a).

o que parece mais relevante (a referência para começar com --no-cliente não a própria configuração).

Quando precisamos parar o fantoche de fazer alterações regulares, simplesmente paramos o serviço no nó gerenciado. Obviamente, isso significa que você precisa ser capaz de invocar uma execução única por meio de outro mecanismo (não fazemos isso com frequência, apenas executamos a partir do shell).

Com essa configuração, o puppetd está em execução, mas não está fazendo atualizações regulares (essa é minha expectativa - estou tentando isso em uma máquina de teste, mas ainda não passou tempo suficiente).

A execução puppet agent --testcausará uma única execução, mas não agendará nenhuma execução futura.

Paul Haldane
fonte
Obrigado por postar uma resposta. Isso significa que, se alguém executar acidentalmente, por exemplo, sudo puppet agent -tque a execução agendada será reativada?
030
Não, o que -timplica no-daemonize. (Bem como onetime, verbose, ignorecache, no-usecacheonfailure, detailed-exit-codes, no-splay, e show_diff.) Você pode ver isso na saída puppet agent help.
Aaron Copley
1

sudo service puppet stop se você estiver executando o daemon fantoche

Ou exclua o cronjob, se é assim que você o configurou.

dmourati
fonte
A instalação de um agente Puppet também resulta na instalação de um trabalho cron? Não configurei um cronjob para executar o Puppet.
030
Não, uma instalação padrão não resulta em um trabalho cron criado. Se você optar por executar o Puppet sem o serviço daemonizado, poderá criar um trabalho cron .
Aaron Copley
1
puppet --version

retorna

5.3.3

puppet resource service puppet ensure=stopped enable=false

retorna

Notice: /Service[puppet]/ensure: ensure changed 'running' to 'stopped'
service { 'puppet':
  ensure => 'stopped',
  enable => 'false',
}

O oposto de stoppedé running. O oposto de falseé true. ;)

uav
fonte
0

Como mencionei na pergunta vinculada , uma possibilidade de executar o fantoche-agente e desativar a execução da configuração, ela muda runintervalpara um valor muito grande, como 10 anos ou algo assim. Mas essa solução ainda aciona a configuração executada após a reinicialização do agente.

Alexander Tolkachev
fonte