Le plug-in Mask Passwords permet uniquement de transmettre des mots de passe prédéfinis au processus de construction. Il ne fait donc rien pour la sécurité du Job.
J'ai besoin d'un paramètre de mot de passe qui doit être saisi chaque fois que le travail est exécuté (en tant que paramètre) et que cela doit être masqué dans la sortie de la console.
D'après ce que je lis, aller à gérer Jenkins -> Configurer le système et choisir de masquer les paramètres de mot de passe devrait fonctionner, mais ce n'est pas pour une raison quelconque ... des suggestions?
Testé avec Jenkins 1.609.1 et Plugin Masque Mots de passe 2.7.3. Vous devez l'activer dans le "Système de configuration" et également dans le travail que vous souhaitez utiliser. Dans la configuration du travail se trouve un point "Masquer les mots de passe" qui doit être activé puis utilisera la configuration globale pour masquer les mots de passe.
dans le cas où vous avez un constructeur Linux, vous pouvez masquer la sortie de la commande Shell.
#!/bin/bash +x
some other commands...
cela ne cachera que la sortie de la commande avec le mot de passe dans la sortie de la console
J'utilise ici "Les mots de passe d'injecter à la construction en tant que variables d'environnement" forment "Environnement de construction". Cela fonctionne vraiment bien. il cachera les mots de passe du formulaire console . Encore plus, il cachera également les mots de passe saisis par l'utilisateur via "paramètre de mot de passe"
Vraiment cool !! :)
vous pouvez utiliser le plugin masque de mots de passe très utile https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin
Vous pouvez utiliser des informations d'identification. Ajoutez des identifiants de texte secret et donnez un identifiant que vous utiliserez comme suit:
withCredentials([string(credentialsId: 'DOCKER_USER', variable: 'DOCKER_USER'), string(credentialsId: 'DOCKER_PASSWORD', variable: 'DOCKER_PASSWORD')]) {
sh "docker login -u $DOCKER_USER -p $DOCKER_PASSWORD"
sh "docker Push '$DOCKER_USER/appName:test'"
}
DOCKER_USER
AND DOCKER_PASSWORD
sont dans le magasin des identifiants jenkins et seront remplacés par ***
dans les journaux
Veuillez trouver ci-dessous mes découvertes avec la solution [sans utiliser le plugin Mask Passwords]:
Brève description de mon travail jenkins: .__ J'ai écrit un travail qui télécharge les artefacts de Nexus en fonction des paramètres donnés au moment de l’exécution, puis établit une connexion à une base de données SQL et déploie les scripts SQL à l’aide du plugin maven flyway. Mon travail prend - Environnement, schéma de base de données, numéro de version d'artefact, commande Flyway, utilisateur de base de données et son mot de passe en tant que paramètres d'entrée.
Bref Contexte du problème: Tout en transmettant le MOT DE PASSE en tant que MAVEN GOAL (paramètre), il arrivait dans la console Jenkins sous forme de texte brut . Même si j’utilisais "Paramètre de mot de passe" pour transmettre le mot de passe à au moment de l'exécution, mais cela arrivait aussi sous forme de texte brut dans la console.
J'ai essayé d'utiliser le "texte secret" pour chiffrer le mot de passe, mais mon travail a commencé à échouer car le mot de passe chiffré était transmis à Maven Goals, qui ne pouvait pas se connecter à la base de données.
Solution:
J'ai utilisé"Injecter les mots de passe dans la construction en tant que variables d'environnement"depuis Build Environment et défini sa valeur comme "paramètre de mot de passe" (mon nom de paramètre de mot de passe était db_password), que je passe en paramètre à l'exécution time (exemple: j'ai défini la valeur de mon mot de passe d'injection comme suit: $ {mot_de_passe_bdd}).
Et cela fonctionne comme prévu. Le mot de passe que je passe en exécutant mon travail arrive comme [*******]
[Journal de la console: Exécution de Maven: -B -f /work/jenkins_data/workspace/S2/database-deployment- Via-flyway-EDOS/pom.xml clean compilation -Ddb = UAT_cms_core -DdatabaseSchema = cms-core -Dmode = info -DdeploymentVersion = 1.2. 9 -Ddb_user = DB_USER -Ddb_password = [*******] ]