Como alterar o intervalo de pesquisa do mestre de marionetes?

16

Por padrão, os clientes Puppet solicitam atualizações a cada 30 minutos. Eu gostaria de mudar esse intervalo. Qual é a maneira mais conveniente de fazer isso?

Lauri Lehmijoki
fonte

Respostas:

30

No (s) cliente (s), edite /etc/puppet/puppet.conf e defina o seguinte (adicione uma nova linha, se ainda não estiver presente) na seção [main] do arquivo:

runinterval=xxx

onde xxx é o intervalo de pesquisa desejado em segundos.


Runinterval

Com que frequência o agente de marionetes aplica o catálogo. Observe que um runinterval 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).

Default: 30m
Mike Scott
fonte
11
Ao mesmo tempo, a alteração do intervalo de execução foi desencorajada devido a problemas de vazamento de memória. Não sei se essa preocupação ainda se aplica.
Scott pacote de
Pacotes de +1 - bom ponto. Eu não vi essa questão desde a atualização para 2.6 no CentOS 5.5 (64 bits)
Patrick R
Você também pode iniciar o cliente Puppet com o parâmetro --runinterval = x
Lauri Lehmijoki
6

Se você gostaria de evitar o uso de runinterval, a configuração de um cron pode funcionar bem. Isso pode ser especialmente útil se você tiver muitos servidores que deseja impedir de atingir seu puppetmaster ao mesmo tempo. Eu usei o puppetmaster para enviar o arquivo e atualizar o cron, nada a fazer do lado do cliente (obviamente).

Aqui está o que estou usando (observe que estou rodando a cada hora, mas você pode apenas referenciá-lo no cron.d, eu não criei esse script e, infelizmente, não sei a quem creditar ):

#!/bin/bash
#/etc/cron.hourly/puppetRun.sh

# This file managed by Puppet.

# Leave this script in cron.  To disable Puppet, run 'puppetd --disable'
# to temporarily suspend the running of Puppet for testing purposes.

PROG=`basename $0 .sh`
exec > /usr/local/logs/${PROG}.last.trace 2>&1
set -x

if [ -e "/var/run/puppet/puppetd.pid" ]; then
  echo "Puppet is already running or has been disabled.  Remove the lock file /var/run/puppet/puppetd.pid or run
'puppetd --enable'."
  exit
fi

# Randomly sleep so all Puppet clients don't hit the Puppet Master at once.
WAIT=$((RANDOM % 60 * 60))
echo "Sleeping $WAIT seconds..."
/bin/sleep $WAIT


/usr/sbin/puppetd --onetime --no-daemonize --logdest syslog > /dev/null 2>&1
Patrick R
fonte
6
Você pode obter o mesmo sono aleatório usando as configurações splay e splaylimit no puppet.conf ao executar como um serviço. docs.puppetlabs.com/references/latest/configuration.html#splay
czervik 13/13