puppet - 缩放木偶 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 文档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
您是否已根据指定的程序获得主机证书。
推荐阅读
- c# - 尝试使用设置时控制台应用程序引发 CS1069 错误。C# .NET5
- python - 如何有条件地为python类中的方法设置别名
- c - C/C++ 中的单行 #ifdef
- testing - 将结构与 rust 中的浮点数进行比较
- python - Python 二维列表
- javascript - 未捕获的 SyntaxError:标识符“firebaseConfig”已被声明
- macos - MacOS:连接特定 Sidecar 设备的终端命令是什么?
- android - 找不到升级 Stripe SDK 的解决方案
- c# - C# 用户生成的标签,可以选择并更改其属性
- flutter - Flutter 错误:在 tabbar 和 tabbarView 中使用 api?