Crie um arquivo /etc/puppet/autosign.conf
no mestre, contendo os nomes de domínio dos hosts para os quais você deseja que os certificados sejam assinados automaticamente.
Exemplo:
www.example.com
*.example.org
*
Existe uma maneira de eu definir um mestre de marionetes para aceitar automaticamente todas as certs de clientes (então eu não tenho que criar puppetca no master a cada vez)?
echo "*" > /etc/puppet/autosign.conf
Ou você pode ser um pouco mais seguro (mas não realmente, já que um cliente define seu próprio nome de certificado; alguém que queira acesso ilegítimo ao seu mestre de marionetes só precisaria saber qual nome falsificar) limitando-o a um domínio específico :
echo "*.stackexchange.com" > /etc/puppet/autosign.conf
Pessoalmente, não sou fã de assinar automaticamente esses certificados pelas razões já descritas.
Eu montei um pequeno script iniciado durante meus kickstarts que executa o seguinte:
echo Configuring local Puppet instance...
/usr/sbin/puppetd --waitforcert 900
sleep 10
echo We will use $HOSTNAME for all future requests...
echo Running server side script..
chvt 1
ssh -q -t $USERNAME@puppetmaster auto_client.sh $HOSTNAME
chvt 6
auto_client.sh
#! /bin/bash
NEWHOST=$1
sudo puppetca --sign $NEWHOST
if ! ( cat /etc/puppet/manifests/* | grep "$NEWHOST" )
then
NHFILE=/etc/puppet/manifests/temp.pp
echo node \'$NEWHOST\' >> $NHFILE
echo { >> $NHFILE
echo include linux_base >> $NHFILE
echo } >> newhost.cfg >> $NHFILE
fi
Pensei seriamente em fazer algo como usar um certificado SSL armazenado em um pen drive para a conexão SSH, mas isso se mostrou mais conveniente.
Tags puppet