Puppet - determina se outro host é acessível?

2

Existe alguma maneira pronta / fato personalizado / etc para que o Puppet responda de maneira diferente se um determinado host e porta não estiverem disponíveis no sistema gerenciado?

Por exemplo, eu tenho alguns produtos que usam vários diretórios para ler informações do usuário.

Geralmente eu quero o servidor mais rápido e mais próximo listado primeiro. Se não estiver disponível, gostaria que meu módulo pudesse reescrever o arquivo de configuração para ir para as entradas inferiores na lista.

    
por Tim Brigham 19.06.2014 / 19:11

2 respostas

2

Então, isso é para trocar algo através de uma variável de configuração em um modelo?

Acho que a melhor maneira de fazer isso seria escrever um fato personalizado em Ruby que faça o teste de velocidade e alcançabilidade, depois use esse fato personalizado para definir a string no modelo. Isso parece razoável para o seu caso de uso?

    
por 19.06.2014 / 19:36
0

Dê uma olhada no stdlib dos fantoches. Ele permite que você coloque dados ou scripts personalizados em /etc/facter/facts.d ( descrição ).

Então você pode, por exemplo tenha um script pequeno /etc/facter/facts.d/neighbour.sh para adicionar uma nova variável a facter -p :

#! /bin/sh

if ping -nc 1 dirserver.fnqd > /dev/null; then
  echo 'dirserver_available=true'
else
  echo 'dirserver_available=false'
fi

Com um pouco de script, você pode adicionar fatos personalizados como dirserver_1 , dirserver_2 etc. em ordem de latência.

    
por 19.06.2014 / 21:14

Tags