J'ai un cluster Jenkins partagé par plusieurs équipes, sur lequel je peux configurer des travaux de construction. Cependant, je ne peux pas facilement modifier la configuration de Jenkins elle-même.
Il existe un gestionnaire de référentiels maven central "nexus pro" mais chaque équipe/groupe de cette très grande multinationale a son propre référentiel. La publication dans le référentiel requiert une combinaison nom d'utilisateur/mot de passe.
Cela signifie que je dois configurer le serveur Jenkins avec un fichier maven settings.xml spécifique à l'équipe avec laquelle je travaille, sans perturber la configuration maven des autres utilisateurs du cluster Jenkins.
Git est le référentiel de contrôle de source.
Je recommanderais d'utiliser le plugin configuration du fichier , fournit une interface utilisateur pour modifier un ou plusieurs fichiers de paramètres Maven.
Ces fichiers de paramètres peuvent être passés dans votre construction Maven à l’aide de l’option "-s".
Vous pouvez spécifier pour chaque travail de la partie Options avancées Maven un chemin spécifique settings.xml.
Nous gérons tous nos nœuds de construction à l’aide de Puppet . Cela vous donne un plus grand contrôle que juste settings.xml. Hautement recommandé
Puppet est un logiciel d'automatisation informatique qui aide les administrateurs système à gérer l'infrastructure tout au long de son cycle de vie, du provisionnement et de la configuration à la gestion des correctifs et à la conformité. Grâce à Puppet, vous pouvez facilement automatiser des tâches répétitives, déployer rapidement des applications critiques et gérer de manière proactive les changements, en passant de 10 à 10 000 serveurs, sur site ou dans le cloud.
Si votre société utilise Nexus Pro (comme vous l'avez déjà mentionné), votre fichier unique Maven settings.xml peut être stocké ici et récupéré au moment de la construction à l'aide du plugin nexus-maven, comme décrit ici: http: // books.sonatype.com/nexus-book/reference/maven-settings.html
Combiné à un accès par jeton (Nexus Pro le fait également), vous n'avez pas besoin de stocker les mots de passe de manière non sécurisée dans le fichier settings.xml (voir https://books.sonatype.com/nexus-book/reference/usertoken). html )
Un bon moyen d'automatiser le provisioning des exécuteurs maven avec une configuration spécifique consiste à utiliser le plugin ElasticBox Jenkins .
Il vous suffit de créer une boîte pour l'esclave Maven, qui définisse toutes les variables de personnalisation et les fichiers à utiliser par celui-ci et choisit votre fournisseur de cloud préféré pour le déployer.
ElasticBox vous donne également la possibilité de créer de nouveaux esclaves uniquement lorsque cela est nécessaire et de les détruire automatiquement après une durée de conservation spécifiée.
Voici comment connecter votre Jenkins à ElasticBox:
Voici comment automatiser la création d’esclaves Jenkins avec ElasticBox:
https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-slaves/
Un article de blog explique à quel point il est facile de créer et de déployer à partir de demandes d'extraction GitHub avec le plugin ElasticBox Jenkins:
https://elasticbox.com/blog/github-pull-requests-jenkinsplugin/