¿Cómo deshabilitar las ejecuciones automáticas programadas de Puppet que ocurren cada 30 minutos?

8

Objetivo

El objetivo es deshabilitar las ejecuciones automáticas de Puppet-agent que ocurren cada 30 minutos. Es posible cambiar el intervalo , pero las ejecuciones automáticas de Puppet-agent deberían deshabilitarse por completo.


Intento uno

De acuerdo con esta documentación , debería ser posible desactivar las ejecuciones automáticas de Puppet-agent configurando lo siguiente:

/etc/puppet/puppet.conf

[agent]
daemonize=false

resultados en

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

si la marioneta se ejecuta manualmente en el intervalo de ejecución predeterminado de 30 minutos.


Intento dos

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

resultados en

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.

Intento tres

Esta documentación se encontró después de buscar en Google la pregunta de estas preguntas y respuestas, pero la información proporcionada no respondió la pregunta.

030
fuente
2
Intento uno debería funcionar. Si ya se estaba ejecutando, debe detenerlo usted mismo. Esto simplemente evita que futuras instancias de demonización. Si me falta algo, aclare por qué esto no funcionó. También puede chkconfig puppet off && service puppet stopen Red Hat y derivados.
Aaron Copley
@AaronCopley Gracias por el consejo. He desactivado y detenido la marioneta y supervisaré si no vuelve a funcionar cada 30 minutos. La daemonize=falseconfiguración aún reside en la sección Agente en /etc/puppet/puppet.conf
030
@AaronCopley ¿Podría publicar el comentario como respuesta?
030

Respuestas:

10

"Intento uno" debería haber funcionado. Si ya se estaba ejecutando, debe detenerlo usted mismo. Esto simplemente evita que futuras instancias de demonización. Si me falta algo, aclare por qué esto no funcionó. También puede chkconfig puppet off && service puppet stopen Red Hat y derivados.

Aaron Copley
fuente
Tal vez no funcionó la primera vez ya que el agente títere no se reinició. Mañana verificaré si la ejecución del comando proporcionado resolvió el problema.
030
4

Debe asegurarse de que el agente títere no esté comenzando como un servicio. Comandos como systemctl, o chkconfigeres tu amigo aquí (por ejemplo, systemctl disable puppeto chkconfig puppet off). No estoy seguro acerca de la mayoría de las distribuciones.

Entonces también debe asegurarse de que el agente esté detenido. Por ejemplo systemctl stop puppeto service stop puppet.

También puede usar la marioneta para lograr lo anterior:

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

Si aún no funciona, pkill puppetpor si acaso, intente nuevamente, si aún no funciona, reinicie.

chutz
fuente
3

¿Estás buscando un comando como:

puppet agent --disable
TomOnTime
fuente
Gracias por publicar una respuesta. La ejecución de este comando da como resultadoError: Could not parse application options: invalid option: --disable
030
1
debe ser agente de marionetas --disable
dmourati
@dmourati Se ha ejecutado este comando. sudo puppet agent -tresultados enNotice: Skipping run of Puppet configuration client; administratively disabled (Reason: 'reason not specified'); Use 'puppet agent --enable' to re-enable.
030
@TomOnTime Esto ya se ha intentado. Una vez que se ha ejecutado este comando, ya no es posible ejecutar la marioneta manualmente (Documentación del intento2 en la pregunta)
030
1
Eso es lo que quería: deshabilitado administrativamente. Si necesita ejecutar manualmente mientras está deshabilitado administrativamente: agente de marionetas --enable; agente de marionetas --test; agente de marionetas --disable
dmourati
2

No esperaría que la opción daemonize afecte esto; esperaría que eso controle si el programa se traslapa y se desconecta del terminal.

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

runinterval

Con qué frecuencia el agente títere aplica el catálogo. Tenga en cuenta que un intervalo de ejecución de 0 significa "ejecutar continuamente" en lugar de "nunca ejecutar". Si desea que el agente títere nunca se ejecute, debe iniciarlo con la opción --no-client. Esta configuración puede ser un intervalo de tiempo en segundos (30 o 30 s), minutos (30 m), horas (6 h), días (2 d) o años (5 años).

lo que parece más relevante (la referencia para comenzar en --no-clientlugar del entorno en sí)

Cuando necesitamos detener a Puppet haciendo cambios regulares, simplemente detenemos el servicio en el nodo administrado. Obviamente, eso significa que debe poder invocar una ejecución única a través de algún otro mecanismo (no lo hacemos a menudo, por lo que solo se ejecuta desde el shell).

Con esta configuración, puppetd se está ejecutando pero no realiza actualizaciones periódicas (esa es mi expectativa, estoy intentando esto en una máquina de prueba pero todavía no ha pasado el tiempo suficiente).

La ejecución puppet agent --testprovocará una sola ejecución, pero no programará ninguna ejecución futura.

Paul Haldane
fuente
Gracias por publicar una respuesta. ¿Significa esto que si alguien ejecuta accidentalmente, por ejemplo, sudo puppet agent -tque la ejecución programada se reactivará?
030
No, lo -timplica no-daemonize. (Así como onetime, verbose, ignorecache, no-usecacheonfailure, detailed-exit-codes, no-splay, y show_diff.) Esto se puede ver en la salida puppet agent help.
Aaron Copley
1

sudo service puppet stop si estás ejecutando el títere demonio

O elimine el cronjob si así es como lo configuró.

dmourati
fuente
¿La instalación de un agente Puppet también resulta en la instalación de un trabajo cron? No he configurado un cronjob para ejecutar Puppet yo mismo.
030
No, una instalación predeterminada no genera un trabajo cron creado. Si elige ejecutar Puppet sin el servicio demonizado, puede crear un trabajo cron usted mismo .
Aaron Copley
1
puppet --version

devoluciones

5.3.3

puppet resource service puppet ensure=stopped enable=false

devoluciones

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

Lo contrario de stoppedes running. Lo contrario de falsees true. ;)

uav
fuente
0

Como mencioné en la pregunta vinculada , una posibilidad de ejecutar puppet-agent y deshabilitar la ejecución de configuración, cambia runintervala un valor muy grande, como 10 años o algo así. Pero esta solución aún desencadena la ejecución de la configuración después del reinicio del agente.

Alexander Tolkachev
fuente