Я побежал puppet cert clean --all
, думая, что очистит только сертификаты, которые еще не были подписаны. Есть около 300 узлов, которые полагаются на мастера марионеток. Насколько я могу судить, марионеточный агент все еще работает с ними, но я думаю, это потому, что где-то есть кешированная копия сертификата.
Есть ли способ исправить ситуацию без необходимости вручную заходить на 300 разных серверов?
Спасибо
РЕДАКТИРОВАТЬ: я должен упомянуть, что по какой-то причине / var / lib / puppet не копировалась.
Если они все еще регистрируются, это, вероятно, связано с тем, что мастер марионеток не проверяет CRL; они могут больше не существовать в инвентаре сертификатов на главном сервере, но они все еще подписаны центром сертификации. Отзыв имеет козыри, но отзыв, похоже, не препятствует запуску их агентов (убедитесь, что они не просто используют кэшированные каталоги с puppet agent --test
).
Из-за этого вы должен уметь творчески управлять конфигурацией, чтобы заставить их регистрировать новые сертификаты - скажем, может быть что-то вроде этого ...
exec { 'ssl hackery':
command => '/bin/mv /var/lib/puppet/ssl /var/lib/puppet/ssl_old',
creates => '/var/lib/puppet/ssl_old',
}
(Тщательно проверьте это на одном хосте, прежде чем поражать все узлы, иначе вы действительно коснетесь каждого из них!)
Входить в 300 разных серверов в цикле?
for host in `cat allmypuppetboxes`; do
ssh -o ConnectTimeout=5 root@$host '/etc/init.d/puppet stop ; rm -rf /var/lib/puppet/ssl /var/lib/puppet/ssl.expired ; puppet agent --server puppet.example.com --test --waitforcert 5'
done