多个傀儡大师

Modified on: Tue, 10 Sep 2019 00:40:02 +0800

我想设置一个额外的木偶大师,但只有1个木偶大师处理CA服务器。我按照这里的文档设置了它:

http://docs.puppetlabs.com/guides/scaling_multiple_masters.html

我按照以下方式配置了我的第二个木偶大师:

[main] ... ca = false ca_server = puppet-master1.test.net

我正在使用乘客所以我有点困惑virtual-host.conf文件应该如何查找我的第二个puppet-master2.test.net。这是我的(根据Shane Maddens的回答更新):

[main]
...
ca = false
ca_server = puppet-master1.test.net

我已经注释掉#SSLCertificateChainFile,#SSLCACertificateFile& #SSLCARevocationFile - 这不是CA服务器,所以不确定我是否需要这个。我如何让乘客使用这些?

我想使用我根据文档配置的ProxyPassMatch。我不想在每个puppet.conf文件中指定一个ca服务器。

我在尝试从指向第二个木偶主服务器(puppet-master2.test.net)的木偶客户端创建证书时收到此错误:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18
PassengerRuby /usr/bin/ruby

Listen 8140

<VirtualHost *:8140>

    ProxyPassMatch ^/([^/]+/certificate.*)$ https://puppet-master1.test.net:8140/$1

    SSLEngine on
    SSLProtocol -ALL +SSLv3 +TLSv1
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

    SSLCertificateFile      /var/lib/puppet/ssl/certs/puppet-master2.test.net.pem
    SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/puppet-master2.test.net.pem
    #SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
    #SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem
    # If Apache complains about invalid signatures on the CRL, you can try disabling
    # CRL checking by commenting the next line, but this is not recommended.
    #SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem
    SSLVerifyClient optional
    SSLVerifyDepth  1
    # The `ExportCertData` option is needed for agent certificate expiration warnings
    SSLOptions +StdEnvVars +ExportCertData

    # This header needs to be set if using a loadbalancer or proxy
    RequestHeader unset X-Forwarded-For

    RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
    RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
    RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

    DocumentRoot /etc/puppet/rack/public/
    RackBaseURI /
    <Directory /etc/puppet/rack/>
            Options None
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

在木偶客户端我有这个

[main] server = puppet-master2.test.net

我错过了什么?

干杯,
奥利

作者:,Oli

最佳答案

这部分文件..

ProxyPassMatch ^(/.*?)/(certificate.*?)/(.*)$ balancer://puppet_ca/
ProxyPassReverse ^(/.*?)/(certificate.*?)/(.*)$ balancer://puppet_ca/

..在几个方面实际上是错误的。 ProxyPassReverse不能使用正则表达式(并且无论如何都不需要),它实际上并没有在发送给CA的请求中使用请求的URL,并且它可能触发非证书的无意代理 - 相关API调用其名称中包含certificate的节点。

相反,请使用此:

ProxyPassMatch ^/([^/]+/certificate.*)$ https://puppet-master1.test.net:8140/$1

将其放入&lt;VirtualHost&gt;块中,您可以摆脱&lt;Proxy balancer://puppet_ca&gt;

您获得的错误意味着您从获取证书的尝试中获得了证书以外的其他内容 - 这可能是由上述配置问题引起的,但也可能表示不同的错误。更改配置,删除客户端上的/var/lib/puppet/ssl(因为证书请求可能也失败了)并查看它是否正常工作 - 如果没有,请添加--verbose到一个运行中,我们将看到发生了什么。

作者:Shane Madden

相关问答

添加新评论