6
votes

Hudson / Jenkins: Partagez les paramètres entre plusieurs emplois

J'ai environ 20 travaux à l'aide de paramètres communs (utilisateur, mot de passe) et parfois, le mot de passe expire ... Je dois donc la modifier sur tous les travaux, ce qui prend vraiment du temps de consommer (et d'erreur sujette, je peux oublier un) .

J'ai pensé à:

  • Utilisation d'une sorte de fichier de propriété magique si cela existe pour avoir directement des lignes telles que la clé, la valeur ajoutée dans les paramètres de travail
  • Ajout du même type de clé, paire de valeur directement dans build.xml , mais où? Et c'est vraiment laid ... peut-être avec un XML dédié intégré dans le build.xml ?
  • appeler un travail esclave qui serait (comment?) Poussez-vous sur le parent One les valeurs souhaitées ...

    Comme vous pouvez le constater que je ne commence que dans Hudson / Jenkins (j'utilise Jenkins 1.424.2.2.2.2), merci pour votre aide!

    edit: Je ne suis pas admin de l'instance Jenkins, je ne peux donc avoir accès aux propriétés globales ...


0 commentaires

3 Réponses :


1
votes

Je peux penser à deux approches:

  • Utilisez Propriétés globales , trouvées sous Gérer les Jenkins -> Configurer le système . Ici, vous pouvez définir des variables d'environnement qui devraient être disponibles pour tous les emplois.

  • Écrivez un petit script qui télécharge, modifie et publie la configuration de travail: http: // [JenkinShost] / job / [nom de travail] /config.xml . < / li>

    Vous pouvez lire sur les capacités de l'API sous http: // [JenkinShost] / job / [nom de travail] / API , voici ce qu'il est dit sur la lecture et la modification de Config.xml:

    extraire / update config.xml

    d'obtenir par programme par programme config.xml, frappez [http: // [JENKINSHOST] / JOB / [NOM DE JOWNAME] /CONFIG.XML] . Vous pouvez aussi poster une configuration mise à jour de la même URL à mettre à jour par programme le Configuration d'un emploi.


1 commentaires

Comme indiqué ci-dessus, je ne suis pas administrateur, je ne peux donc pas accéder aux propriétés globales; Mais la 2e solution semble prometteuse, voyons si je peux parvenir à faire ce que je veux jouer avec elle ...



7
votes

Allez à votre maison Jenkins et naviguez:

  1. Gérer Jenkins>
  2. Configurer le système>
  3. Propriétés globales>
  4. Variables d'environnement> ....

3 commentaires

Bon point: Comme je viens de modifier, je ne suis pas administrateur, je ne peux donc pas utiliser les propriétés globales (et que les administrateurs ne me permettent pas de jouer avec eux, à coup sûr).


:( raté la modification à la hâte. De toute façon, la 2e approche par Anders semble la voie à suivre; sinon, nous pouvons appeler @koshuke :)


Oh, vous ne l'avez pas manqué, je viens de l'ajouter parce que vous avez parlé de propriétés globales :-)



0
votes

i éventuellement réussi par:

  • Garder les informations d'identification cryptées dans une page Web
  • les récupérer à Hudson grâce à un script shell (wget), déchiffrer et à créer un fichier build.properties.properties dans l'espace de travail avec lignes nom = valeur ( mon cas ssh.password = ... )

    Cela fonctionne, car les étapes de création de fourmis détectent ce fichier et transmettent les variables dans leur contexte. Grâce à cela, je pourrais centraliser mes informations d'identification.


0 commentaires