我想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在本地运行它们。