executando o comando RSYNC em jenkins

5

Estou tentando implantar meu código em um servidor remoto. Até agora eu tentei

  • Publicar em um plug-in SSH: o problema é que não consigo manter as permissões de arquivo
  • Comando Rsync: mantém as permissões do arquivo, mas o problema é que não sei como definir a senha para que ele funcione automaticamente

Isso é o que eu recebo:

[JenkinsBuild] $ /bin/sh -xe /var/lib/jenkins/tmp/hudson4646064064846581974.sh
+ rsync -PSauve ssh --exclude=JenkinsBuild app bower.json config gruntfile.js karma.conf.js LICENSE.md Makefile node_modules package.json Procfile protractor.conf.js public README README.md server.js [email protected]:/srv/dp/prod
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]

Alguma idéia do que estou fazendo errado aqui?

    
por JAT2007 10.09.2014 / 15:26

3 respostas

2

Bem, substituí os arquivos know_host, mas ainda estava tendo problemas. Assim, para qualquer um que tenha problemas com o arquivo know_host, você consertaria a chave incorreta fazendo um:

ssh-keygen -R hostnameOfOfendingKey

e isso removerá a chave emendada e agora seu arquivo known_host está funcionando novamente.

AGORA para resolver o outro problema, encontrei a resposta neste outro lugar: link

e foi isso que eu fiz para resolvê-lo

sudo su jenkins -s /bin/bash

em seguida, uma vez como usuário jenkins, copie minha chave ssh para o servidor no qual desejo conectar / executar comandos, etc.

ssh-copy-id [email protected]

então você apresentará isso

[email protected]'s password: 
Now try logging into the machine, with "ssh '[email protected]'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

então eu fiz isso para fins de teste:

bash-4.1$ rsync -PSauve ssh --exclude=JenkinsBuild /srv/pd/* [email protected]:/srv/pdc/test1  

e passou sem pedir senha ou qualquer coisa. Observe que ainda sou log como jenkins.

Agora, quando criei o trabalho do Jenkins com alguns comandos do shell como parte da construção, ele funcionará como esperado: D

    
por 10.09.2014 / 22:05
3
Host key verification failed.

A conta que está executando jenkins provavelmente tem um valor ruim para a chave do host da máquina para a qual você está enviando ~/.ssh/known_hosts.

    
por 10.09.2014 / 15:43
0

Eu tive um problema semelhante.

No meu caso, o jenkins não estava executando o rsync com o usuário esperado (jenkins), mas com outro (jboss no meu caso) adicionando ' whoami ' ao script e usando ssh verbose:

rsync -e "ssh -v" .......

ajudou a encontrar o problema.

    
por 22.03.2017 / 11:44