Comment déplacer Jenkins d'un PC à un autre

j'utilise actuellement Jenkins sur mon PC de développement. Je l'ai installé sur mon PC de développement, parce que j'avais des connaissances limitées sur cet outil; donc je l'ai testé sur mon PC de développement. Maintenant, je me sens à l'aise avec Jenkins comme mon "partenaire" à long terme dans le processus de construction et je voudrais "déplacer" ce Jenkins à un serveur dédié.

avant cela j'ai fait peu de constructions et ai les artéfacts archivés de chaque construction. En particulier, le numéro de construction est très important pour moi pour le contrôle de version.

Comment puis-je exporter toutes les informations Jenkins de mon PC actuel vers mon nouveau serveur?

121
demandé sur Peter Mortensen 2012-01-04 13:58:56

5 réponses

suivant le Jenkins wiki , vous devrez:

  • installer une nouvelle instance Jenkins sur le nouveau serveur
  • assurez-vous que l'ancien et le nouveau Jenkins instances sont arrêtés
  • Archive tout le contenu du JENKINS_HOME de L'ancienne instance de Jenkins
  • extraire l'archive dans le nouveau répertoire JENKINS_HOME
  • lance la nouvelle instance de Jenkins
  • Ne pas oublier de modifier la documentation/liens vers votre nouvelle instance de Jenkins :)
  • n'oubliez pas de changer le propriétaire des nouveaux fichiers Jenkins: chown -R jenkins:jenkins $JENKINS_HOME

JENKINS_HOME est par défaut situé dans ~/.jenkins sur une installation Linux, mais pour trouver exactement où il est situé, allez sur le http://your_jenkins_url/configure page et vérifier la valeur du premier paramètre: Home directory ; c'est le jenkins_home comme pointant.

135
répondu Cédric Julien 2018-07-22 10:17:02

dans le cas où votre répertoire JENKINS_HOME est trop grand pour copier , et tout ce dont vous avez besoin est de configurer les mêmes travaux, les Plugins Jenkins et les configurations Jenkins (et n'ont pas besoin de vieux artefacts et rapports de travail), alors vous pouvez utiliser Plugin ThinBackup :

  1. Installer ThinBackup sur à la fois la source et la cible Jenkins serveurs
  2. Configurer le Répertoire de Sauvegarde sur deux (dans Gérer Jenkins --> ThinBackup -- > Paramètres)

  3. sur sense Jenkins aller à ThinBackup -- > Backup Now

  4. Copie de Jenkins Source répertoire de Sauvegarde de Jenkins Cible Répertoire de Sauvegarde
  5. Sur la Cible Jenkins aller à ThinBackup --> Restaurer, puis redémarrez Jenkins service.
  6. s'il manque des plugins ou des tâches, Copiez le contenu de sauvegarde directement dans le JENKINS_HOME cible.

  7. si vous avez une authentification d'utilisateur sur la source Jenkins, et maintenant verrouillé sur la cible Jenkins, puis éditez Jenkins config.xml, mettez <useSecurity> à false, et redémarrez Jenkins.

36
répondu Noam Manos 2018-07-24 06:12:08

cela a fonctionné pour moi de passer D'Ubuntu 12.04 (Jenkins ver. 1.628) à Ubuntu 16.04 (Jenkins ver. 1.651.2). J'ai d'abord installé Jenkins depuis les dépôts .

  1. Stop à la fois Jenkins serveurs
  2. Copie JENKINS_HOME (par exemple, /var/lib/jenkins) de l'ancien serveur vers le nouveau. D'une console du nouveau serveur:

    rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/

  3. Démarrer votre nouveau serveur Jenkins

vous pourriez ne pas avoir besoin de cela, mais j'ai dû

  • Manage Jenkins et Reload Configuration from Disk .
  • déconnectez et reliez tous les esclaves.
  • vérifiez que dans le Configure System > Jenkins Location , le Jenkins URL est correctement assigné au nouveau serveur Jenkins.
9
répondu Katu 2016-06-02 07:33:48

Jenkins Serveur Automation:

Étape 1:

mettre en place un dépôt pour stocker la maison Jenkins (jobs, configurations, plugins, etc.) dans un dépôt GitLab local ou sur un dépôt privé GitLab et le tenir à jour régulièrement en poussant toute nouvelle modification aux jobs de Jenkins, plugins, etc.

Étape 2:

Configurer Marionnette accueil-groupe/rôle de Jenkins qui peut être utilisé pour lancer de nouveaux serveurs Jenkins. Faire toute la configuration de base dans une recette de marionnettes et s'assurer qu'il installe la dernière version de Jenkins et met en place un répertoire/montage séparé pour JENKINS_HOME .

Étape 3:

lancer une nouvelle machine en utilisant la configuration Jenkins-puppet ci-dessus. Lorsque tout est installé, saisissez/clonez la configuration de Jenkins depuis le dépôt Git jusqu'à la direcotry Jenkins home et redémarrez Jenkins.

Étape 4:

aller à L'URL de Jenkins, Gérer Jenkins Gérer les Plugins et mettre à jour tous les plugins qui nécessitent une mise à jour.

fait

Vous pouvez utiliser Docker Essaim ou Kubernetes à l'échelle automatique des noeuds esclaves.

1
répondu Ijaz Khan 2018-07-22 10:25:54

parfois nous n'avons pas accès à une machine Jenkins pour copier un dossier directement dans une autre instance Jenkins. J'ai donc écrit un utilitaire piloté par menu qui utilise les appels de L'API REST de Jenkins pour installer des plugins et des jobs d'une instance de Jenkins à une autre.

Pour le plugin de migration:

  1. GET request: {SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1 vous donnera la liste des plugins installés avec leur version.
  2. vous pouvez envoyer une requête POST avec les paramètres suivants pour installer ces plugins.

    final_url=`{DESTINATION_JENKINS_SERVER}/pluginManager/installNecessaryPlugins`
    
    data=`<jenkins><install plugin="{PLUGIN_NAME}@latest"/></jenkins>` (where, latest will fetch the latest version of the plugin_name)
    
    auth=`(destination_jenkins_username, destination_jenkins_password)`
    
    header=`{crumb_field:crumb_value,"Content-Type":"application/xml”}` (where crumb_field=Jenkins-Crumb and get crumb value using API call {DESTINATION_JENKINS_SERVER}/crumbIssuer/api/json
    

pour la migration d'emploi:

  1. vous pouvez obtenir la liste des tâches installées sur {SOURCE_JENKINS_URL} en utilisant un appel REST, {SOURCE_JENKINS_URL}/view/All/api/json
  2. alors vous pouvez obtenir chaque configuration de travail.fichier xml des travaux sur {SOURCE_JENKINS_URL} en utilisant L'URL de la tâche {SOURCE_JENKINS_URL}/job/{JOB_NAME} .
  3. utilisez cette configuration.fichier xml pour afficher le contenu du fichier XML sur {DESTINATION_JENKINS_URL} et qui créera un travail sur {DESTINATION_JENKINS_URL}.

j'ai créé un utilitaire piloté par menu en Python qui demande à l'utilisateur de lancer le plugin ou la migration de Jenkins et utilise les appels D'API Jenkins REST pour le faire.

vous pouvez vous référer au JenkinsMigration.docx de cette URL

1
répondu psalvi21 2018-07-22 10:29:42