Como alterar o intervalo de polling do mestre Puppet?

14

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

    
por Lauri Lehmijoki 05.01.2011 / 11:34

2 respostas

27

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

em que xxx é o intervalo de pesquisa desejado em segundos.

Runinterval

Com que frequência o agente de marionetes aplica o catálogo. Note que um runinterval de 0 significa “run continuous” ao invés de “never run”. Se você quer que o puppet agent nunca rode, você deve iniciá-lo 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 (5y).

Default: 30m
    
por 05.01.2011 / 12:33
5

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

Veja o que estou usando (note que estou executando de hora em hora, mas você poderia fazer referência a ele 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
    
por 06.01.2011 / 17:44

Tags