Je voudrais mettre en place un deuxième maître de marionnettes supplémentaire, mais avoir le serveur CA géré par un seul maître de marionnettes. J'ai configuré cela comme indiqué dans la documentation disponible ici :
http://docs.puppetlabs.com/guides/scaling_multiple_masters.html
J'ai configuré mon deuxième maître de marionnettes comme suit :
[main]
...
ca = false
ca_server = puppet-master1.test.net
J'utilise Passenger donc je suis un peu confus sur la façon dont le fichier virtual-host.conf devrait être pour mon deuxième puppet-master2.test.net. Voici le mien (mis à jour selon la réponse de 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
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
# Si Apache signale des signatures invalides sur la liste de révocation, vous pouvez essayer de désactiver la vérification en commentant la ligne suivante, mais ce n'est pas recommandé.
#SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
SSLVerifyClient optional
SSLVerifyDepth 1
# L'option `ExportCertData` est nécessaire pour les avertissements d'expiration du certificat de l'agent
SSLOptions +StdEnvVars +ExportCertData
# Cette en-tête doit être définie si vous utilisez un équilibreur de charge ou un 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 /
Options None
AllowOverride None
Order allow,deny
allow from all
J'ai commenté les lignes #SSLCertificateChainFile, #SSLCACertificateFile & #SSLCARevocationFile - ce n'est pas un serveur CA donc je ne suis pas sûr d'en avoir besoin. Comment puis-je faire fonctionner Passenger avec cela ?
Je voudrais utiliser ProxyPassMatch que j'ai configuré selon la documentation. Je ne veux pas spécifier un serveur ca dans chaque fichier puppet.conf.
Je reçois cette erreur en essayant de créer un certificat depuis un client puppet pointant vers le deuxième serveur maître de marionnettes (puppet-master2.test.net) :
[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
Sur le client puppet, j'ai ceci
[main]
server = puppet-master2.test.net
Qu'est-ce que j'ai raté ?
Cordialement, Oli
0 votes
Avez-vous vu ceci? groups.google.com/forum/?fromgroups/#!topic/puppet-users/… En outre.. Est-ce vous d'il y a un an?!
0 votes
Pour ceux d'entre vous qui ont rencontré le même problème, j'ai manqué cette
@Oli Aha, yup - ajoutez SSLProxyEngine On à votre bloc . – Shane Madden il y a 6 heures
. Ceci N'EST PAS dans la documentation supplémentaire du maître marionnettiste. Vous devez utiliser cette méthode de ProxyPassMatchProxyPassMatch ^/([^/]+/certificate.*)$ https://puppet-master1.test.net:8140/$1
en changeant l'URL de votre serveur et vous devez ajouter ceciSSLProxyEngine On à votre bloc .
. J'espère que cela aide... Je vais envoyer un e-mail à Puppet Labs pour leur demander de l'ajouter à leur documentation.