web-dev-qa-db-ja.com

jenkinsでRSYNCコマンドを実行する

コードをリモートサーバーに展開しようとしています。これまでに試しました

  • 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 [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]

ここで私が間違っていることはありますか?

6
JAT2007

まあ、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 [email protected]

それはあなたにこれを提示します

[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.

次に、テスト目的でこれを行いました:

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

そしてそれはパスワードか何かを尋ねることなく通過した。私はまだジェンキンスとしてログインしていることに注意してください。

したがって、ビルドの一部としていくつかのシェルコマンドを使用してJenkinsジョブを作成すると、期待どおりに機能します。D

3
JAT2007
Host key verification failed.

Jenkinsを実行しているアカウントのssh先のマシンのホストキーの値が不適切である可能性があります~/.ssh/known_hosts.

同様の問題がありました。

私の場合、jenkinsは予期されたユーザー(jenkins)でrsyncを実行していませんでしたが、別の(私の場合はjboss)で 'whoami'をスクリプトに追加し、ssh verboseを使用しています。

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

問題を見つけるのに役立ちました。

0
fonkap