缩放木偶 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-ca-cert
  • ssl-crl-path

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

2021-01-12T13:12:34.276+11:00 ERROR [main] [p.t.internal] 期间出错 应用程序构建! java.lang.RuntimeException: 服务 ':CaService' 不是 找到

Google 搜索不会返回太多关于此主题的信息,因此我们将不胜感激任何有关设置此类环境的有用提示

谢谢。

解决方法

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

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

,

我开始工作了。关于 webserver.conf 设置,我使用了以下内容:

ssl-cert: "/etc/puppetlabs/puppet/ssl/certs/<server FQDN>.pem"
ssl-key: "/etc/puppetlabs/puppet/ssl/private_keys/<server FQDN>.pem"
ssl-ca-cert: "/etc/puppetlabs/puppet/ssl/certs/ca.pem"
ssl-crl-path: "/etc/puppetlabs/puppet/ssl/crl.pem"

不幸的是,我在尝试启动 puppetserver 时仍然收到 CAService 错误。结果证明这是一个简单的错误。在 /etc/puppetlabs/puppetserver/services.d/ca.cfg 中,我正确地注释掉了以下行:

#puppetlabs.services.ca.certificate-authority-service/certificate-authority-service

但我错过了取消注释以下行:

puppetlabs.services.ca.certificate-authority-disabled-service/certificate-authority-disabled-service

取消注释该行后,puppetserver 启动,我的测试代理能够从中央 CA 获得签名证书,并成功从编译主机获得配置。