Comment puis-je migrer nos clients puppetmaster existants pour pointer vers un nouveau serveur puppetmaster? Je préfère ne pas aller manuellement dans chaque boîte client et générer un nouveau certificat.
En essayant l'évidence - rsync tous les fichiers de / etc / puppet et / var / lib / puppet vers le nouveau serveur - nous avons eu l'erreur de certificat
/etc/init.d/puppetmaster start
* Starting puppet master
Could not run: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key
J'ai pu contourner cela en copiant les fichiers /var/lib/ssl/certs
et /var/lib/ssl/private_key
de old_hostname
à new_hostname
, ce qui est essentiellement ce qui est suggéré dans la
migration des clients de marionnettes vers un nouveau maître de marionnettes (l'ancien serveur maître de marionnettes a disparu, en utilisant uniquement la sauvegarde)
Malheureusement, mes clients savent toujours qu'il y a quelque chose qui ne va pas et me donnent l'erreur suivante:
sudo puppetd --test --server newservername.example.net --noop
info: Retrieving plugin
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': hostname was not match with the server certificate
err: /File[/var/lib/puppet/lib]: Could not evaluate: hostname was not match with the server certificate Could not retrieve file metadata for puppet://newservername.example.net/plugins: hostname was not match with the server certificate
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Je suppose donc que les certificats clients connaissent toujours le nom d'hôte auquel ils sont associés et ne sont pas satisfaits d'un commutateur.
Existe-t-il un moyen d'utiliser marionnette (pointant vers l'ancien marionnettiste) pour déployer de nouveaux certificats ou automatiser le processus de signature d'une manière ou d'une autre?
RÉSUMÉ: Deux solutions ont été présentées: 1) allumez le autosign
maître, ignorant ainsi complètement la certification, ou 2) définissez l'ancien CNAME pour pointer vers le nouveau maître, car les certificats sont liés au nom d'hôte du maître. J'ai choisi # 2 parce que la signature automatique avait l'impression de désactiver la sécurité (quoique pour une durée limitée).
la source
puppetca --sign --all
fera l'affaire pour les certificats clients; celui du serveur est celui qui vous pose des problèmes avec les erreurs de non-concordance.Vous pouvez simplement utiliser celui
$ssldir
de l'ancien marionnettiste et l'utiliser dans le nouveau marionnettiste.À part cela, il devrait être possible de déployer un script qui:
Moche mais tant que le module de migration ne se trouve que sur l'ancien serveur et qu'il n'y a pas de module de migration uniquement sur le nouveau serveur, c'est une chose unique et devrait faire la magie ...
la source
autosign
astuce est bonne, mais semble risquée. Sans elle, cette solution résout-elle réellement le problème de non-concordance du certificat client?