不小心吊销了所有傀儡师证书

lib*_*tt0 1 puppet

我跑了puppet cert clean --all,认为它只会清除尚未签署的证书。大约有 300 个节点依赖于 puppet master。据我所知,puppet agent 仍然对它们有效,但我认为这是因为某处有证书的缓存副本。

有什么方法可以纠正这种情况而不必手动登录到 300 个不同的服务器?

谢谢

编辑:我应该提到 /var/lib/puppet 由于某种原因没有被备份。

Sha*_*den 9

如果他们还在检查,那可能是因为傀儡师没有检查 CRL;它们可能不再存在于主服务器的证书清单中,但它们仍由 CA 签名。撤销胜过这一点,但撤销似乎并没有阻止他们的代理运行(验证他们不只是使用带有 的缓存目录puppet agent --test)。

因此,您应该能够进行一些创造性的配置管理,让他们注册新证书——比如说,也许是这样的……

exec { 'ssl hackery':
  command  => '/bin/mv /var/lib/puppet/ssl /var/lib/puppet/ssl_old',
  creates  => '/var/lib/puppet/ssl_old',
}
Run Code Online (Sandbox Code Playgroud)

(在用它击中所有节点之前,在单个主机上彻底测试它,否则您确实会触及每个节点!)


fre*_*eit 6

循环登录 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
Run Code Online (Sandbox Code Playgroud)