web-dev-qa-db-fra.com

Jenkins: Accédez à des mots de passe globaux dans Powershell

Je ne parviens pas à accéder au mot de passe global jenkins en tant que variable d’environnement dans powershell. J'ai fait ce qui suit. Je ne sais pas quoi d'autre me manque. 

  1. Plugin de liaison des informations d'identification installé, plug-in d'injecteur d'environnement, plug-in de masque de mots de passe, plug-in Hudson PowerShell
  2. Création d'une entrée de mot de passe globale dans la gestion des informations d'identification en tant que gluser
  3. Dans ma construction, j'ai un appel PowerShell avec l'environnement de construction défini pour injecter des mots de passe à la construction en tant que variables d'environnement et pour vérifier les mots de passe globaux.
  4. Aucun des éléments suivants ne m'oblige à faire référence au mot de passe global dans mes scripts Powershell
    $env:gluser
    $gluser

Aucun d'entre eux ne semble me laisser accéder au mot de passe global dans l'appel Jenkins de Powershell. Quelqu'un pourrait-il s'il vous plaît aider?

14
user4296485

Ne confondez pas plug-in EnvInject et Identifiant plug-in de liaison . Les deux font des choses très différentes, cependant les deux permettent de gérer les mots de passe globalement, mais différemment.

Manière EnvInject

  • Gérer Jenkins -> Configurer le système
  • Sous Mot de passe global
    1. Cliquez sur Add.
    2. Entrez le nom (de la variable d'environnement) et le mot de passe.
  • Job -> Configurer
  • Sous Environnement de construction
    1. check Injecte les mots de passe dans la construction en tant que variables d'environnement .
    2. Vérifiez les mots de passe globaux .
    3. Vérifier Masquer les paramètres de mot de passe .

Titres contraignants

  • Gérer Jenkins -> Gérer les informations d'identification
    1. Cliquez sur Add Credentials (sans domaine).
    2. Sélectionnez Nom d'utilisateur avec mot de passe OR Texte secret .
    3. Entrez nom d'utilisateur et mot de passe OR secret .
  • Job -> Configurer
  • Sous Environnement de construction
    1. Vérifier Utilisez un ou des textes secrets ou un (des) fichier (s) .
    2. Sous Liaisons , cliquez sur Add.
    3. Sélectionnez Nom d'utilisateur et mot de passe OR Texte secret .
    4. Entrez le nom de la variable que vous souhaitez conserver pour vos informations d'identification.
    5. Sélectionnez Informations d'identification spécifiques bouton d'option.
    6. Sélectionnez vos informations d'identification configurées dans la liste déroulante.

Dans votre Powershell

  • Accédez-y comme toute autre variable d’environnement:
    $env:VAR_NAME
    VAR_NAME est le nom de la variable d’environnement (c’est-à-dire l’étape 2 de EnvInject ou l’étape 4 de Credentials Binding)

Appendice

EnvInject vs Credentials Binding

  • Les mots de passe EnvInject seront affichés chiffrés dans la liste des variables d'environnement.
  • Les mots de passe EnvInject indiqueront le caractère étoilé (*****) dans la sortie de la console.
  • Les mots de passe EnvInject utilisent le même nom de variable que la configuration globale. Vous devez donc vous rappeler ce nom de variable globale.
    |
  • Les mots de passe CB sont affichés en texte clair dans la liste des variables d'environnement.
  • Les mots de passe CB ne sont pas marqués dans la sortie de la console.
  • Les mots de passe CB peuvent être liés à tout nom de variable souhaité dans le travail à partir d'une liste déroulante. Vous ne devez donc pas vous souvenir de ce nom de variable global.
    |
  • Informations d'identification La liaison est vraiment plus utile pour l'attribution de fichiers d'informations d'identification, tels que les certificats et les clés, plutôt que les valeurs de mot de passe.

Nom d'utilisateur avec mot de passe vs texte secret.

  • Le premier est disponible sous la forme username:password.
  • Ce dernier est simplement secretname__.
30
Slav

Dans notre construction, nous l'utilisons de la manière suivante (code actuel):

$deploymentdir = $env:VC_RES + "\Azure"
. ".\src\Extensions\Setup\VirtoCommerce.PowerShell\deploy-tfs.ps1" -deployment $deploymentdir -solutiondir $env:WORKSPACE

puis passez $ deploymentdir en tant que paramètre à ps1, fonctionne correctement.

La variable d’environnement VC_RES est configurée sous "Manage Jenkins" -> Global Properties. Il y a une case à cocher à côté de "Variables d'environnement" et nous les mettons ici. La variable WORKSPACE est définie par Jenkins elle-même.

0
Woland