Stockage des identifiants dans Jenkins

Beginner

Introduction

Les identifiants Jenkins vous permettent de stocker des mots de passe, des jetons et des clés dans Jenkins au lieu de saisir des secrets directement dans les scripts de vos jobs. Les jobs peuvent ensuite faire référence à un identifiant via son ID.

Dans ce laboratoire, vous utiliserez le tableau de bord Jenkins pour accéder au magasin d'identifiants global, créer un identifiant nom d'utilisateur/mot de passe, confirmer que Jenkins masque et chiffre le secret, puis mettre à jour cet identifiant sans modifier son ID.

Ouvrir le magasin d'identifiants global

Dans cette étape, vous allez localiser le magasin d'identifiants Jenkins dans le tableau de bord. Jenkins organise les identifiants par magasin et par domaine. Pour les flux de travail débutants, l'emplacement le plus courant est le magasin System et le domaine Global.

Ouvrez l'interface de bureau. Firefox ouvre Jenkins automatiquement. Si ce n'est pas le cas, ouvrez http://localhost:8080.

Depuis le tableau de bord Jenkins :

Cliquez sur Manage Jenkins dans la barre latérale gauche, puis cliquez sur Credentials. Sur la page Credentials, cliquez sur System, puis sur Global.

Le titre de la page doit être Global, et la page doit indiquer que ces identifiants sont disponibles partout.

Domaine d'identifiants global Jenkins

Exécutez cette commande dans le terminal pour enregistrer que la page des identifiants globaux est accessible :

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

Vous devriez voir :

Credentials that should be available everywhere

Ajouter un identifiant nom d'utilisateur et mot de passe

Dans cette étape, vous allez créer un identifiant via le formulaire Jenkins. L'ID de l'identifiant est important car les jobs et les pipelines y feront référence ultérieurement.

Sur la page des identifiants Global, cliquez sur Add Credentials.

Remplissez le formulaire avec les valeurs suivantes :

  • Kind : Username with password
  • Scope : Global
  • Username : guided-user
  • Password : guided-password-v1
  • ID : guided-creds
  • Description : Guided lab credential for Jenkins storage

Cliquez sur Create.

Une fois que Jenkins revient à la page du domaine Global, vous devriez voir un identifiant nommé guided-creds. Jenkins affiche le nom d'utilisateur mais masque le mot de passe.

Identifiant guidé Jenkins dans le domaine global

Vérifier comment Jenkins stocke le secret

Dans cette étape, vous allez inspecter ce que Jenkins a écrit sur le disque. Ce n'est pas une opération courante au quotidien, mais cela vous aide à comprendre pourquoi les identifiants sont plus sûrs que les mots de passe en texte clair dans les scripts.

Dans le terminal, affichez uniquement les lignes pertinentes du fichier 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 sortie doit inclure l'ID de l'identifiant et le nom d'utilisateur. La ligne du mot de passe doit contenir un secret Jenkins chiffré entre accolades, et non le texte brut guided-password-v1.

Exemple de sortie :

...<id>guided-creds</id>
...<username>guided-user</username>
...<password>{...}</password>

Retournez sur la page du domaine Global de Jenkins dans Firefox. La ligne de l'identifiant doit également afficher le mot de passe sous forme masquée, et non le vrai mot de passe.

Mettre à jour l'identifiant sans changer son ID

Dans cette étape, vous allez mettre à jour la description de l'identifiant via le tableau de bord Jenkins tout en conservant le même ID. Cela illustre un concept clé pour les débutants : les jobs doivent faire référence à un ID stable tel que guided-creds, tandis que les administrateurs peuvent ajuster les métadonnées de l'identifiant ultérieurement.

Sur la page des identifiants Global :

Cliquez sur l'identifiant guided-creds, puis cliquez sur Update credential. Laissez Username, Password et ID inchangés. Modifiez la Description en Updated guided lab credential, puis cliquez sur Save.

Après l'enregistrement, retournez sur la page du domaine Global. Le même ID d'identifiant doit rester visible, mais la description doit maintenant être Updated guided lab credential.

Identifiant Jenkins mis à jour dans le domaine global

Exécutez cette commande pour confirmer que Jenkins conserve le même ID et la description mise à jour :

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

Le mot de passe doit toujours être chiffré, et le texte brut guided-password-v1 ne doit pas apparaître.

Résumé

Vous avez utilisé le tableau de bord Jenkins pour ouvrir le magasin d'identifiants global, créer un identifiant nom d'utilisateur/mot de passe, observer que Jenkins masque et chiffre le secret, et mettre à jour les métadonnées de l'identifiant tout en conservant le même ID stable.