Назад | Перейти на главную страницу

Автоматическое принятие всех сертификатов на Мастере Марионеток

Есть ли способ настроить мастер марионеток для автоматического приема всех сертификатов от клиентов (чтобы мне не приходилось каждый раз устанавливать puppetca на мастере)?

Создать файл /etc/puppet/autosign.conf на главном сервере, содержащий доменные имена хостов, для которых вы хотите, чтобы сертификаты подписывались автоматически.

Пример:

www.example.com
*.example.org
*
echo "*" > /etc/puppet/autosign.conf

Или вы можете быть немного более безопасным (но не совсем так, поскольку клиент устанавливает свое собственное имя сертификата; кому-то, кто хочет незаконный доступ к вашему хозяину марионеток, просто нужно знать, какое имя подделать), ограничив его определенным доменом:

echo "*.stackexchange.com" > /etc/puppet/autosign.conf

Я лично не сторонник автоматической подписи этих сертификатов по уже изложенным причинам.

Я собрал небольшой скрипт, запущенный во время моего кикстарта, который запускает следующее:

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

Я серьезно думал о том, чтобы сделать что-то вроде использования сертификата SSL, хранящегося на USB-накопителе, для соединения SSH, но это оказалось более удобным.