Introducción
Las credenciales de Jenkins le permiten almacenar contraseñas, tokens y claves en Jenkins en lugar de escribir secretos directamente en los scripts de los trabajos. De esta forma, los trabajos pueden hacer referencia a una credencial mediante su ID.
En este laboratorio, utilizará el panel de control de Jenkins para abrir el almacén de credenciales global, crear una credencial de nombre de usuario/contraseña, confirmar que Jenkins enmascara y cifra el secreto, y actualizar dicha credencial posteriormente sin cambiar su ID.
Abrir el almacén de credenciales global
En este paso, localizará el almacén de credenciales de Jenkins en el panel de control. Jenkins organiza las credenciales por almacén y dominio. Para flujos de trabajo básicos, el lugar más común es el almacén System y el dominio Global.
Abra la interfaz de escritorio. Firefox abrirá Jenkins automáticamente. Si no es así, acceda a http://localhost:8080.
Desde el panel de control de Jenkins:
Haga clic en Manage Jenkins en la barra lateral izquierda y, a continuación, haga clic en Credentials. En la página de credenciales, haga clic en System y luego en Global.
El título de la página debería ser Global y debería indicar que estas credenciales están disponibles en todas partes.

Ejecute este comando en la terminal para registrar que la página de credenciales globales es accesible:
curl -fsS http://localhost:8080/manage/credentials/store/system/domain/_/ | grep -o 'Credentials that should be available everywhere' | tee /home/labex/project/credential-storage-page.txt
Debería ver:
Credentials that should be available everywhere
Añadir una credencial de nombre de usuario y contraseña
En este paso, creará una credencial utilizando el formulario de Jenkins. El ID de la credencial es importante, ya que los trabajos y las canalizaciones (pipelines) harán referencia a este ID más adelante.
En la página de credenciales Global, haga clic en Add Credentials.
Rellene el formulario con los siguientes valores:
Kind:Username with passwordScope:GlobalUsername:guided-userPassword:guided-password-v1ID:guided-credsDescription:Guided lab credential for Jenkins storage
Haga clic en Create.
Una vez que Jenkins regrese a la página del dominio Global, debería ver una credencial llamada guided-creds. Jenkins mostrará el nombre de usuario, pero enmascarará la contraseña.

Comprobar cómo almacena Jenkins el secreto
En este paso, inspeccionará lo que Jenkins ha escrito en el disco. Aunque no es algo que se haga habitualmente en el trabajo diario con Jenkins, le ayudará a comprender por qué las credenciales son más seguras que las contraseñas en texto plano dentro de los scripts.
En la terminal, imprima solo las líneas relevantes del archivo credentials.xml de Jenkins:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<username>guided-user</username>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/credential-file-lines.txt
La salida debería incluir el ID de la credencial y el nombre de usuario. La línea de la contraseña debería contener un secreto de Jenkins cifrado entre llaves, no el texto sin formato guided-password-v1.
Ejemplo de salida:
...<id>guided-creds</id>
...<username>guided-user</username>
...<password>{...}</password>
Regrese a la página del dominio Global de Jenkins en Firefox. La fila de la credencial también debería mostrar la contraseña como texto enmascarado, no como la contraseña real.
Actualizar la credencial sin cambiar su ID
En este paso, actualizará la descripción de la credencial a través del panel de control de Jenkins manteniendo el mismo ID. Esto demuestra un concepto clave para principiantes: los trabajos deben hacer referencia a un ID estable como guided-creds, mientras que los administradores pueden ajustar los metadatos de la credencial posteriormente.
En la página de credenciales Global:
Haga clic en la credencial guided-creds y, a continuación, haga clic en Update credential. Deje Username, Password e ID sin cambios. Cambie la Description a Updated guided lab credential y haga clic en Save.
Tras guardar, regrese a la página del dominio Global. El mismo ID de credencial debería seguir siendo visible, pero la descripción ahora debería ser Updated guided lab credential.

Ejecute este comando para confirmar que Jenkins mantiene el mismo ID y la descripción actualizada:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<description>Updated guided lab credential</description>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/updated-credential-lines.txt
La contraseña debería seguir estando cifrada y el texto sin formato guided-password-v1 no debería aparecer.
Resumen
Ha utilizado el panel de control de Jenkins para abrir el almacén de credenciales global, crear una credencial de nombre de usuario/contraseña, observar cómo Jenkins enmascara y cifra el secreto, y actualizar los metadatos de la credencial manteniendo el mismo ID estable.