2017-06-28 14 views
0

Je voudrais automatiser notre processus de sauvegarde Jenkins avec un travail Jenkins. J'ai créé un travail freestyle dans Jenkins comme le travail pour effectuer la sauvegarde. L'objectif est de sauvegarder le répertoire personnel de Jenkins sur Bitbucket.Jenkins freestyle job pour les sauvegardes Jenkins

  • Le travail est limité à s'exécuter sur le nœud maître.
  • Le répertoire de base Jenkins a été initialisé en tant que référentiel git.
  • La clé SSH de l'utilisateur root sur la machine sur laquelle Jenkins est installé a été ajoutée à la liste des clés SSH pour un compte Bitbucket ayant accès au référentiel de sauvegarde.

Il y a une étape de construction unique définie pour ce poste:

cd /var/lib/jenkins 
git add --all 
git commit -m "Jenkins automated backup change" || true 
git push 

Lorsque je construis le travail, je reçois ce qui suit dans la sortie de la console pour le travail a échoué:

Started by user anonymous 
Building on master in workspace /var/lib/jenkins/jobs/JenkinsBackup/workspace 
[workspace] $ /bin/sh -xe /tmp/hudson7036134295202405264.sh 
+ cd /var/lib/jenkins 
+ git add --all 
+ git commit -m Jenkins automated backup change 

*** Please tell me who you are. 

Run 

    git config --global user.email "[email protected]" 
    git config --global user.name "Your Name" 

to set your account's default identity. 
Omit --global to set the identity only in this repository. 

fatal: empty ident name (for <[email protected](none)>) not allowed 
+ true 
+ git push 
warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

    git config --global push.default matching 

To squelch this message and adopt the new behavior now, use: 

    git config --global push.default simple 

When push.default is set to 'matching', git will push local branches 
to the remote branches that already exist with the same name. 

In Git 2.0, Git will default to the more conservative 'simple' 
behavior, which only pushes the current branch to the corresponding 
remote branch that 'git pull' uses to update the current branch. 

See 'git help config' and search for 'push.default' for further information. 
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 
'current' instead of 'simple' if you sometimes use older versions of Git) 

Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
Build step 'Execute shell' marked build as failure 
Warning: this build has no associated authentication, so build permissions may be lacking, and downstream projects which cannot even be seen by an anonymous user will be silently skipped 
Finished: FAILURE 

Cela semble être une erreur étrange car lorsque j'exécute la commande git config -l alors que dans le répertoire de base de Jenkins, les informations suivantes sont générées:

[email protected] 
user.name=Jenkins Automated Backup 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.url=ssh://[email protected]###.##.##.###:7999/at/jenkinsbackup.git 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

Que se passe-t-il ici? Le message d'erreur fourni dans la sortie de la console pour le travail n'est pas très clair quant à la cause exacte du problème.

Merci d'avance pour toute aide!

Répondre

0

Est-il possible que vous exécutiez votre instance Jenkins avec un utilisateur différent (par exemple, root)? Vous pouvez revérifier la variable user.name au http://<yourJenkinsURL>/systemInfo.

+0

Wow c'est une super information! Dans la résolution de ce problème, l'une des impasses dans laquelle je me trouvais était comment dire à quel utilisateur mon serveur Jenkins essayait d'exécuter les commandes du shell. Je vais enquêter maintenant que j'ai cette information et de poster avec les résultats! – J0991

+0

En guise de question de suivi, comment pourrais-je localiser les clés SSH que cet utilisateur utiliserait lorsqu'il tentait d'exécuter une commande Git? Je pense que la clé SSH pour cet utilisateur spécifique peut être le problème ici. – J0991