web-dev-qa-db-ja.com

JenkinsはWindowsでGit / SSHを介してGitリポジトリを複製できません

Windows 2008 32ビット上のGit/SSHを介してJenkinsでGitリポジトリを正常にクローンしました。 Windows 2008 64ビットで同じことをしようとすると、Console Outputページがここでスタックします:

Démarré par l'utilisateur anonymous
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Using strategy: Default
Last Built Revision: Revision 5d7ce4ae23c91fb201ee005e6db17bcd795ca965 (Origin/HEAD, Origin/master)
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Cloning the remote Git repository
Cloning repository Origin

ビルドを停止すると(そこで数分スタックした後)、残りのエラーメッセージが表示されます。

ERROR: Error cloning remote repo 'Origin' : Could not clone [email protected]:zeljkofilipin/watirbook.git
ERROR: Cause: Error performing command: C:\Git\bin\git.exe clone --progress -o Origin [email protected]:zeljkofilipin/watirbook.git C:\Jenkins\workspace\book
null
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:1042)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:968)
    at hudson.FilePath.act(FilePath.Java:785)
    at hudson.FilePath.act(FilePath.Java:767)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:968)
    at hudson.model.AbstractProject.checkout(AbstractProject.Java:1193)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.Java:567)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:455)
    at hudson.model.Run.run(Run.Java:1404)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
    at hudson.model.ResourceController.execute(ResourceController.Java:88)
    at hudson.model.Executor.run(Executor.Java:230)
  • Gitの読み取り専用URL経由でリポジトリを複製できますgit://github.com/zeljkofilipin/watirbook.git両方のマシンのジェンキンスから
  • Git/SSH URL [email protected]:zeljkofilipin/watirbook.git両方のマシンのコマンドラインから
  • 32ビットマシンではJenkinsからGit/SSH URLを使用してクローンできますが、64ビットマシンではできません。

2台のマシン(1台はラップトップの仮想マシンであり、もう1台はスイスの実マシンであるとはみなされません)の唯一の違いは、最初のマシンが32ビットで、2番目のマシンが64ビットであることです。

それが関連しているかどうかはわかりませんが、32ビットマシンの場所はクロアチアに、64ビットマシンはスイスに設定されています(フランス語のGit出力からわかるように)。

詳細については、私のブログ投稿を参照してください: Jenkins、Windows、Git

20
Željko Filipin

私は最近これらの痛みを経験しました。特にイライラするのは、このシナリオでエラーログが不足していることです。おそらく、MSysgitが回復しようとするとコンソールでユーザーにプロンプ​​トを表示するためです。

ここでの私の経験に基づいて、注意すべきいくつかの重要な要素があります。

  1. msysgitとCygwinの両方がインストールされている場合:MSysgitの方がうまく機能しましたが、それも使用していると思います
  2. 一部の人々は<MSYSGIT_ROOT>\cmd\git.cmdより<MSYSGIT_ROOT>\bin\git.exe
  3. スレーブが同じユーザーとして実行されていることを確認します(サービスベースのインストールではデフォルトではありません)。
  4. windowsスレーブのHOME変数を明示的に設定する
  5. 基本的に、ジェンキンスの下で同じ.sshキーに到達することを確認してください。
  6. デバッグのために、SCMなしでテストジョブを作成すると便利ですが、git clone「シェル/バッチの実行」ビルドステップ。それはもう少し情報を明らかにする必要があります。ところで、同じステップでenvを実行できます。おそらくls %HOME%/.ssh

上記は、gitサポートを備えたWindows 7 64ビットJenkinsスレーブを動作させたものだと思います-これは、64ビットと32ビットではなく、他の細かい設定の詳細と関係があると思いましたとにかく頑張ってください!

27
inger

Gitの最新バージョンでは、%GIT_HOME%/ bin/git.exeではなく%GIT_HOME%/ cmd/git.exeを使用し、jenkinsサービスを実行しているユーザーのホームディレクトリを特定する必要がありました。

6
Shanmu

私が直面した別の問題は、ssh.exeがキーファイルの_%userprofile%/.ssh_フォルダーを見ていなかったことです。代わりに、空のフォルダーC:\Program Files (x86)\Git\.sshを探していました。このフォルダーは、gitリポジトリがあるマシンでssh認証プロンプトが原因でハングします。

_%userprofile%/.ssh_の下のキーファイルをC:\Program Files (x86)\Git\.sshにコピーしただけで、問題は解決しました。

3
mehmet6parmak

ハードレッスンからのメモ。 ssh + gitの名前付きユーザーアカウントとしてJenkinsを実行してsshを動作させるのに問題がありました。

問題を解決するために私がしなければならなかったことは次のとおりです。

  1. Ssh-keygenを使用してキーを生成します(キーの場所に注意してください)
  2. 「HOME」をこの場所に設定します

私はputtygenとGET_SSH = plinkを試してみましたが、それらはすべて非常に悪いが、明確なエラーはありませんでした。

2
dkjkj

私のWindows Jenkinsはスレーブであったため、ingerの説明に従って、binではなくcmdでgitを見つけるようにそのノードを構成する必要がありました。これを行うには、Jenkinsの管理、ノードの管理に移動し、適切なノードをクリックし、構成をクリックして、ツールの場所に移動します。ドロップダウンでgitを見つけ、C:\ Program Files\Git\cmd\git.exeなどのgit.exe(git.exeを含む)へのパスを指定します。

私は、cmd/git.exeがbin/git.exeとは異なる動作をすることを確認しました。コマンドラインと、一時的なジェンキンスジョブではgitコマンドを使用します(scmリポジトリの代わりに)。

0
Cathy

https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin

Ssh対応のユーザーログオンをJenkinsに追加するだけで、スムーズに動作するはずです。

0
Anand Bansal

ユーザーごとの構成ファイルから構成オプションを使用する必要がある場合。 〜/ .ssh/config C:\ Program Files(x86)\ Git\etc\ssh\ssh_configに配置できます。キーファイルはC:\ Program Files(x86)\ Git.sshに配置できます

0
user33994

アカウントがドメインに接続されている場合。次に、Jenkins Slaveが実行されているユーザーを確認する必要があります。目的で開く設定-> プロパティof "Jenkins Slave"-> ログオン。そして必要なものを選択してくださいuser from domain正しい実行のため。

0
AVG