выполнение команды RSYNC в jenkins

Я пытаюсь развернуть свой код на удаленном сервере. До сих пор я попробовал

  • Опубликуйте по Плагину SSH: проблема состоит в том, что я не могу сохранить полномочия файла
  • Команда Rsync: это сохраняет полномочия файла, но проблема состоит в том, что я не знаю, как установить пароль для него для работы автоматически

Это - то, что я получаю:

[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 john@192.168.2.10:/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]

Какие-либо идеи, что я делаю неправильно здесь?

6
задан 22 December 2017 в 19:06
3 ответа

Ну, я заменил файлы know_host, но проблемы все еще оставались. поэтому для всех, у кого есть проблемы с файлом know_host, вы должны исправить неправильный ключ, выполнив:

ssh-keygen -R hostnameOfOfendingKey

, и это удалит неправильный ключ, и теперь ваш файл known_host снова работает.

СЕЙЧАС, чтобы решить другую проблему, я нашел ответ в другом месте: https://stackoverflow.com/questions/25755418/executing-rsync-in-jenkins/25770519#25770519

, и это было что я сделал, чтобы решить эту проблему

sudo su jenkins -s /bin/bash

, затем один раз, когда пользователь jenkins скопировал мой ssh-ключ на сервер, на котором я хочу подключать / выполнять команды и т. д.

ssh-copy-id myuser@TheRemoteserver.com

, он затем представит вам это

myuser@TheRemoteserver.com's password: 
Now try logging into the machine, with "ssh 'myuser@TheRemoteserver.com'", and check in:

  .ssh/authorized_keys

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

, затем я сделал это для целей тестирования :

bash-4.1$ rsync -PSauve ssh --exclude=JenkinsBuild /srv/pd/* myuser@TheRemoteserver.com:/srv/pdc/test1  

и прошло без запроса пароля или чего-то еще. Обратите внимание, что я все еще регистрируюсь как jenkins.

Итак, теперь, когда я создал задание Jenkins с некоторыми командами оболочки как часть сборки, оно будет работать, как ожидалось: D

3
ответ дан 3 December 2019 в 00:25
Host key verification failed.

У учетной записи, на которой запущен jenkins, вероятно, неверное значение ключа хоста для машины, на которую вы отправляетесь в ~ /.ssh/known_hosts.

4
ответ дан 3 December 2019 в 00:25

У меня была похожая проблема.

В моем случае jenkins выполнял rsync не с ожидаемым пользователем (jenkins), а с другим (jboss в моем случае). добавление "whoami" в сценарий и использование ssh verbose:

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

помогло найти проблему.

.
0
ответ дан 3 December 2019 в 00:25

Теги

Похожие вопросы