首页 > 解决方案 > 缩放木偶 7.x

问题描述

在构建缩放的 Puppet 环境时,我一直在参考https://puppet.com/docs/puppet/7.1/server/scaling_puppet_server.html 。

我有 Puppet CA 运行,我遇到的问题是 Puppet 编译部分的第 2 步,它缺少一个像样的示例或细节。

在编译器的 webserver.conf 文件中,添加并设置以下 SSL 设置:

  • SSL证书
  • ssl 密钥
  • ssl 证书
  • ssl-crl-路径

编译主机能够向 CA 发送请求,一旦证书在 CA 上签名,就可以恢复正常。我不确定要为上述设置添加什么。按照指示在编译主机上禁用了 CA 服务,但是在尝试启动 pupperserver 时,由于找不到 CaService 而无法加载,所以目前我假设这是由于上述原因。

2021-01-12T13:12:34.276+11:00 错误 [main] [ptinternal] 应用程序构建期间出错!java.lang.RuntimeException:服务':CaService'未找到

谷歌搜索并没有返回太多关于此主题的信息,因此任何有关设置此类环境的有用指示都将不胜感激。

谢谢。

标签: puppet

解决方案


Puppet 文档webserver.conf中提供了配置文件的概述。它恰好提供了一个涵盖所有这些特定项目的示例,并链接到详细文档

围绕 Puppet 可扩展性的主要想法之一是,您可以将编译服务器添加到池中,在负载均衡器或 DNS 循环服务之后用于公共主机名。但是其中一个主要问题是代理希望与由特定证书名称标识的编译服务器建立 SSL 连接,因此您必须确保每个编译服务器都有一个带有该名称的证书。这通常不是在多个服务器之间共享一个证书,而是通过为编译服务器生成单独的证书来完成,这些服务器都具有作为DNS 主题备用名称的预期名称ssl-cert和属性标识适当的ssl-key证书。

就他们而言,编译服务器需要验证客户端证书是否已由预期的 CA 签名,为此他们需要 CA 的证书。这就是ssl-ca-cert设置的意义所在。

此外,有时您可能需要撤销证书——通常是在代理节点停止服务或其证书以某种方式丢失时。CA 将维护一个证书吊销列表,但是为了让编译服务器将其考虑在内,必须将 CRL 发布给它们。该ssl-crl-path设置告诉每个编译主机在哪里可以找到它。


但是,我倾向于认为缩放文档有点乱。除了可能的例外ssl-crl-path,我希望步骤 #2 中描述的参数的默认值是合适的,前提是您在尝试在您尝试的编译服务器上启动 puppetserver 服务之前遵循所有其他步骤配置。最后两个步骤需要puppetserver已经在 CA 机器上运行,并且可以通过所有相关防火墙进行访问;如果不是这种情况,那么它可能会解释您报告的错误。如果您之前已无序启动组件,请注意第 4 步末尾的注释。

如果通过步骤 4-6 获得所需的主机证书后 puppetserver 仍然没有启动,那么您可能需要手动将 CA 服务器的证书复制到编译服务器,并将ssl-ca-cert属性设置为它的位置。我仍然怀疑您是否需要明确设置ssl-cert,或者ssl-key您是否已根据指定的程序获得主机证书。


推荐阅读