Problema al implementar el proyecto a través de capistrano 3 con jenkins

Estoy intentando implementar en un server a través de capistrano 3 desde un trabajo de jenkins.

"Cap Environment deploy" funciona perfectamente desde mi mac con mis cnetworkings, pero bajo jenkins, con desplegar cnetworkings, me encuentro con un problema.

Lo que es súper extraño es que los primeros commands de git tienen éxito, pero cuando capistrano llega a "git remote update", el server cuelga con un error de "no autorizado". Lo verifiqué con ssh'ing en el server y ejecutando 'git remote update' en / var / www / repo.

Tengo configurado el reenvío de keys. A continuación se muestra mi trabajo en Jenkins:

eval $(ssh-agent) ssh-add ~/.ssh/keyname.pem cap staging deploy 

No tengo idea de lo que está sucediendo dentro de capistrano que haría que los primeros commands de git tuvieran éxito ('git ls-remote'), pero que fallara la "actualización remota de git". Sí, la key se ha agregado como una key de implementación en github para el repository, y el reenvío de keys está habilitado en deploy.rb y mediante ~ / .ssh / config.

A continuación se muestra un ejemplo de error en el logging de 'implementación de puesta a punto del límite', ejecutándose como usuario de Jenkins en el cuadro de Jenkins:

  INFO [d3e19149] Running /usr/bin/env mkdir -p /tmp/project/ on server.xxxxxyyyy.com DEBUG [d3e19149] Command: /usr/bin/env mkdir -p /tmp/project/ INFO [d3e19149] Finished in 0.943 seconds with exit status 0 (successful). DEBUG Uploading /tmp/project/git-ssh.sh 0.0% INFO Uploading /tmp/project/git-ssh.sh 100.0% INFO [43533553] Running /usr/bin/env chmod +x /tmp/project/git-ssh.sh on server.xxxxxyyyy.com DEBUG [43533553] Command: /usr/bin/env chmod +x /tmp/project/git-ssh.sh INFO [43533553] Finished in 0.052 seconds with exit status 0 (successful). DEBUG [40e092d5] Running /usr/bin/env git ls-remote git@github.com:Organization/project.git on server.xxxxxyyyy.com DEBUG [40e092d5] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/project/git-ssh.sh /usr/bin/env git ls-remote git@github.com:Organization/project.git ) DEBUG [40e092d5] 69a8427388e2958e9b2c67e6048a46cb3a2544a5 HEAD DEBUG [40e092d5] 69a8427388e2958e9b2c67e6048a46cb3a2544a5 refs/heads/master DEBUG [40e092d5] Finished in 1.635 seconds with exit status 0 (successful). INFO [3d9e0765] Running /usr/bin/env mkdir -pv /var/www/shanetworking /var/www/releases on server.xxxxxyyyy.com DEBUG [3d9e0765] Command: /usr/bin/env mkdir -pv /var/www/shanetworking /var/www/releases INFO [3d9e0765] Finished in 0.046 seconds with exit status 0 (successful). INFO [3ef2c63f] Running /usr/bin/env mkdir -pv /var/www/shanetworking/log /var/www/shanetworking/tmp/pids /var/www/shanetworking/tmp/cache /var/www/shanetworking/tmp/sockets /var/www/shanetworking/vendor/bundle /var/www/shanetworking/public/system on server.xxxxxyyyy.com DEBUG [3ef2c63f] Command: /usr/bin/env mkdir -pv /var/www/shanetworking/log /var/www/shanetworking/tmp/pids /var/www/shanetworking/tmp/cache /var/www/shanetworking/tmp/sockets /var/www/shanetworking/vendor/bundle /var/www/shanetworking/public/system INFO [3ef2c63f] Finished in 0.043 seconds with exit status 0 (successful). INFO [a0820d89] Running /usr/bin/env mkdir -pv /var/www/shanetworking/config on server.xxxxxyyyy.com DEBUG [a0820d89] Command: /usr/bin/env mkdir -pv /var/www/shanetworking/config INFO [a0820d89] Finished in 0.050 seconds with exit status 0 (successful). DEBUG [19575759] Running /usr/bin/env [ -f /var/www/shanetworking/config/database.yml ] on server.xxxxxyyyy.com DEBUG [19575759] Command: [ -f /var/www/shanetworking/config/database.yml ] DEBUG [19575759] Finished in 0.063 seconds with exit status 0 (successful). DEBUG [06e522d5] Running /usr/bin/env [ -f /var/www/repo/HEAD ] on server.xxxxxyyyy.com DEBUG [06e522d5] Command: [ -f /var/www/repo/HEAD ] DEBUG [06e522d5] Finished in 0.056 seconds with exit status 0 (successful). INFO The repository mirror is at /var/www/repo DEBUG [062dd56a] Running /usr/bin/env if test ! -d /var/www/repo; then echo "Directory does not exist '/var/www/repo'" 1>&2; false; fi on server.xxxxxyyyy.com DEBUG [062dd56a] Command: if test ! -d /var/www/repo; then echo "Directory does not exist '/var/www/repo'" 1>&2; false; fi DEBUG [062dd56a] Finished in 0.053 seconds with exit status 0 (successful). DEBUG [65e9187e] Running /usr/bin/env cd /var/www/repo && git rev-parse --short HEAD on server.xxxxxyyyy.com DEBUG [65e9187e] Command: cd /var/www/repo && git rev-parse --short HEAD DEBUG [65e9187e] 69a8427 DEBUG [65e9187e] Finished in 0.080 seconds with exit status 0 (successful). INFO [349bd507] Running /usr/bin/env git remote update on server.xxxxxyyyy.com DEBUG [349bd507] Command: cd /var/www/repo && /usr/bin/env git remote update DEBUG [349bd507] Fetching origin DEBUG [349bd507] Fetching origin DEBUG [349bd507] ERROR: Repository not found. DEBUG [349bd507] Fetching origin DEBUG [349bd507] fatal: The remote end hung up unexpectedly DEBUG [349bd507] Fetching origin DEBUG [349bd507] error: Could not fetch origin cap aborted! 

¿Algunas ideas?

Gracias,

Andy

Encontré el mismo problema con mi implementación actual. cap staging deploy --trace el command cap staging deploy --trace y recibí el siguiente resultado:

 Command: cd /var/www/deployment directory/repo && (GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/deployment directory/git-ssh.sh /usr/bin/env git remote update ) DEBUG [520a3953] Fetching origin DEBUG [520a3953] Fetching origin DEBUG [520a3953] ERROR: Repository not found. DEBUG [520a3953] Fetching origin DEBUG [520a3953] fatal: The remote end hung up unexpectedly DEBUG [520a3953] Fetching origin DEBUG [520a3953] error: Could not fetch origin cap aborted! SSHKit::Command::Failed: git stdout: Nothing written git stderr: Nothing written 

Solucioné el error eliminando el directory de implementación

 rm -rf /var/www/deployment directory 

cap staging deploy --trace nuevo y cap staging deploy --trace errores de los Raíles no relacionados y pude implementarlos con éxito.

En retrospectiva, probablemente podría haber eliminado el / var / www / deployment directory / repo y haber obtenido los mismos resultados. Estoy seguro de que mi problema fue que había cambiado mi nombre de proyecto gitlab y que estaba siendo almacenado en el directory repo del server de implementación. El command: Command: cd /var/www/deployment directory/repo && ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/deployment directory/git-ssh.sh /usr/bin/env git remote update ) probablemente esté usando el antiguo URL de repository almacenado en algún file en el server de implementación.

Tuve el mismo problema cuando cambié mi location de repository, pero en lugar de eliminar el directory de implementación:

 /www/deployment directory/repo 

Ejecuté este command dentro del directory / www / deployment directory / repo:

 git remote show origin 

Esto mostró que el origen todavía estaba configurado para el repository anterior, y lo cambié ejecutando este command:

 git remote set-url origin git://new.url.here 

(que aprendí de esta pregunta: Cambiar el URI (URL) para un repository remoto de Git )