J'utilise actuellement Jenkins sur mon PC de développement. Je l'ai installé sur mon PC de développement, car 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 en tant que mon "partenaire" à long terme dans le processus de construction et je voudrais "déplacer" ce Jenkins vers un serveur dédié.
Avant cela, j'ai fait quelques builds et j'ai archivé les artefacts de chaque build. En particulier, le numéro de version 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?
jenkins
data-migration
huahsin68
la source
la source
Réponses:
En suivant le wiki Jenkins , vous devrez:
chown -R jenkins:jenkins $JENKINS_HOME
JENKINS_HOME est situé par défaut dans
~/.jenkins
une installation de Linux, mais exactement trouver où il se trouve, allez sur le http: // your_jenkins_url / configure la page et vérifiez la valeur du premier paramètre:Home directory
; c'est le JENKINS_HOME.la source
Dans le cas où votre répertoire JENKINS_HOME est trop volumineux pour être copié , et que tout ce dont vous avez besoin est de configurer les mêmes Jobs, les plugins Jenkins et les configurations Jenkins (et que vous n'avez pas besoin d'anciens artefacts et rapports de Job), vous pouvez utiliser ThinBackup Plugin :
Configurer le répertoire de sauvegarde sur les deux (dans Gérer Jenkins -> ThinBackup -> Paramètres)
Sur Sourse Jenkins, accédez à ThinBackup -> Sauvegarder maintenant
Si certains plugins ou jobs manquent, copiez le contenu de la sauvegarde directement dans le JENKINS_HOME cible.
Si vous aviez une authentification utilisateur sur le Jenkins source, et maintenant verrouillé sur le Jenkins cible, modifiez Jenkins config.xml, définissez-le
<useSecurity>
sur false, et redémarrez Jenkins.la source
Cela a fonctionné pour moi pour passer d'Ubuntu 12.04 (Jenkins ver. 1.628) à Ubuntu 16.04 (Jenkins ver. 1.651.2). J'ai d'abord installé Jenkins à partir des référentiels .
Copiez
JENKINS_HOME
(par exemple / var / lib / jenkins) de l'ancien serveur vers le nouveau. À partir d'une console du nouveau serveur:rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
Démarrez votre nouveau serveur Jenkins
Tu n'as peut-être pas besoin de ça, mais je devais
Manage Jenkins
etReload Configuration from Disk
.Configure System > Jenkins Location
, leJenkins URL
est correctement affecté au nouveau serveur Jenkins.la source
/configureSecurity
je reçoisjava.lang.AssertionError: InstanceIdentity is missing its singleton
Automatisation du serveur Jenkins:
Étape 1:
Configurez un référentiel pour stocker la maison Jenkins (tâches, configurations, plugins, etc.) dans un dépôt local GitLab ou sur un dépôt privé GitHub et tenez-le à jour régulièrement en poussant toute nouvelle modification dans les tâches Jenkins, les plugins, etc.
Étape 2:
Configurez un groupe d'hôtes / rôle Puppet pour Jenkins qui peut être utilisé pour lancer de nouveaux serveurs Jenkins. Effectuez toute la configuration de base dans une recette Puppet et assurez-vous qu'elle installe la dernière version de Jenkins et configure un répertoire / montage séparé pour
JENKINS_HOME
.Étape 3:
Faites tourner une nouvelle machine en utilisant la configuration Jenkins-puppet ci-dessus. Lorsque tout est installé, récupérez / clonez la configuration Jenkins du référentiel Git vers le répertoire de base Jenkins et redémarrez Jenkins.
Étape 4:
Accédez à l'URL Jenkins, Gérer Jenkins → Gérer les plugins et mettez à jour tous les plugins qui nécessitent une mise à jour.
Terminé
Vous pouvez utiliser Docker Swarm ou Kubernetes pour mettre à l'échelle automatiquement les nœuds esclaves.
la source
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 d'API Jenkins REST pour installer des plugins et des travaux d'une instance Jenkins à une autre.
Pour la migration du plugin:
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
vous obtiendrez la liste des plugins installés avec leur version.Vous pouvez envoyer une requête POST avec les paramètres suivants pour installer ces plugins.
Pour la migration d'emploi:
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
.J'ai créé un utilitaire piloté par menu en Python qui demande à l'utilisateur de démarrer la migration du plugin ou de Jenkins et utilise les appels de l'API REST Jenkins pour le faire.
Vous pouvez faire référence au JenkinsMigration.docx à partir de cette URL JenkinsjenkinsmigrationJenkinsrestapi
la source