多位木偶大师

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

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

我已经configuration了我的第二个木偶大师,如下所示:

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

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

 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> 

我已经注释掉#SSLCertificateChainFile,#SSLCACertificateFile&#SSLCARevocationFile – 这不是一个CA服务器,所以不知道我需要这个。 我将如何获得乘客与这些工作?

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

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

 [root@puppet-client2 ~]# puppet agent --test Error: Could not request certificate: Could not intern from s: nested asn1 error Exiting; failed to retrieve certificate and waitforcert is disabled 

在傀儡客户端,我有这个

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

我错过了什么?

干杯,奥利

这部分文件..

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

实际上在几个方面是错误的。 ProxyPassReverse不能使用正则expression式(并且不需要),它实际上并不是在发送到CA的请求中使用所请求的URL,并且它可以触发无意识地代理与节点的非证书相关的API调用有名字的certificate

相反,使用这个:

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

把它放在你的<VirtualHost>块中,你可以去掉<Proxy balancer://puppet_ca>

您所得到的错误意味着您从获取证书的尝试中获取证书以外的东西 – 这可能是由上面的configuration问题引起的,但也可能表示出现不同的错误。 把这个configuration改了,把客户端上的/var/lib/puppet/ssl吹掉(因为证书请求可能也失败了),看看它是否正常工作 – 如果没有,请在运行时加上--verbose ,我们会看到这是怎么回事。

不。

不要这样做。 如果你想通过拥有多个主人来扩展木偶,那么你就会走错了方向。 我很清楚puppetlabs已经制作了一个链接文件,说明他们是如何推荐做MM傀儡的,但实际上要走得更轻松。

所以最好的办法就是去 masterless ,在那里你有一个中央的git(或者其他的DVCS)仓库,然后克隆你的清单副本,然后用puppet apply在本地运行它们。