Actualmente estoy almacenando el directory de inicio de Jenkins en un repository de Git.
La configuration de Jenkins se ha inicializado en una máquina A: configuraciones de security (LDAP autenticado), configuraciones globales, crendentials SCM, etc.
Cuando esta casa de Jenkins se clona desde el repository de Git en una máquina B, todas las passwords se cifran. Y desafortunadamente, el maestro de Jenkins que se ejecuta en la máquina B no puede leer estas passwords encriptadas.
Además, tan pronto como se guarda la configuration, todas las passwords se vuelven a cifrar, por lo que parece inútil editar los files de configuration manualmente y poner passwords en text sin formatting.
¿Alguien tiene alguna idea? ¡Gracias!
¡Lo tengo! Aquí está el resultado de mi investigación.
Mi JENKINS_HOME/.gitignore
inicial JENKINS_HOME/.gitignore
fue el siguiente:
# Miscellaneous Jenkins litter *.log *.tmp *.old *.json # Generated Jenkins state /.owner /queue.xml /fingerprints/ /shelvedProjects/ /updates/ /logs/ # Cnetworkingentials /secrets/ secret.key # Job state builds/ workspace/ modules/ lastStable lastSuccessful nextBuildNumber
Sin embargo, tomado de http://xn--thibaud-dya.fr/jenkins_cnetworkingentials.html , Jenkins usa una JENKINS_HOME/secrets/master.key
cifrar todas las passwords, ya sea en la configuration global o en crendentials de SCM. Esto me hizo pensar que el mismo file master.key
se utilizó para descifrar las passwords.
Así que traté de eliminar todas las inputs relacionadas con cnetworkingenciales del file .gitignore
, lo que permitió insertlas en mi repository Git y luego colocarlas en la máquina B (otro nuevo maestro de Jenkins) y … ¡funciona bien! Todas las passwords se almacenan cifradas y, dado que todos los maestros comparten el mismo file master.key
, todas las passwords se pueden descifrar.
Espero que pueda ayudar a alguien más!