web-dev-qa-db-ja.com

Jenkinsエラー、リモートリポジトリ 'Origin'、スレーブノードの複製

私はここでいくつかの助けが必要です、それは私がこの問題に取り組んでいる週であり、何が起こっているのか分かりません。スレーブノード(Jenkins)からgitリポジトリを複製することはできません。 sshキー、ホスト、およびスレーブを追加しました(すでに仮想キーとホストごとに1つのキーと1つのキーを生成しようとしました)。

ジェンキンスについて:

  • url:[email protected]:<リポジトリ>
  • 資格情報:ここでは、ユーザー名/パスワード、sshファイルのユーザー名、sshキーのユーザー名、および-none-で試しました。

コンソール(スレーブ、ホストの両方)からリポジトリを手動で複製できるため、認証の問題があるようには見えません。私も接続できます

ssh -T [email protected]

sshキーは問題ありませんが、ビルドするとコンソールに表示されます:

ワークスペースC:\ Users\IEUser\Desktop\<folder>のIE10Win7でリモートでビルドする

最初にワークスペースを消去します。

リモートGitリポジトリの複製

リポジトリ[email protected]のクローン:<repo> .git

git init C:\ Users\IEUser\Desktop\<folder>#timeout = 10

エラー:リモートリポジトリ 'Origin'の複製中にエラーが発生しました

エラー:リモートリポジトリ 'Origin'の複製中にエラーが発生しました

ビルド後タスクを実行しています...

誰にもアイデアがありますか?誰かが私に手がかりを与えてくれることを願っています、ありがとう!

23
Nicolas Amabile

スレーブノードのツールパスを設定し、gitを選択してその値を

C:\Program Files (x86)\Git\bin\git.exe

場所:構成Node-ツールの場所

20
starlying

最近、いくつかのjenkinsプラグインを更新しましたが、更新後にこの問題が発生しました。 gitプラグインをロールバックしても効果はありませんでしたが、それを機能させるために他のいくつかのことをしました。ここに3つすべてをリストしましたが、おそらく(2)が問題を修正しました。どうやらgit実行可能ファイルはデフォルトにリセットされたようです。そのため、特定のプロジェクト内でgit実行可能ファイルを構成するだけで十分でした。ただし、他のアイテムも役に立つかもしれません。

(1)jenkins Linuxインストールのデフォルトgitは、/ usr/libを指すのが一般的です... Windowsバージョンを指す別のGitForWindowsを指定する必要があります。

Manage Jenkins
Configure System
Under Git - Git Installations
    Add Git -> Git
    Give it a name to be referenced in projects
      (mine is WindowsGit)
    Set Path to Git Executable
      (mine is "C:\Program Files (x86)\Git\bin\git.exe")
      (for recent git the path is "C:\Program Files\Git\bin\git.exe")

(2)特定のプロジェクトでgitを構成します。

Select the project
Select Configure
Under Source Code Management - Git
    Select Git Executable as configured in 1)
    Set credentials or add new (ssh keys, etc)

(3)特定のユーザーとして実行するためのjenkinsスレーブサービスの更新:

Go to Windows Services on the slave -- StartMenu, type "services"
Select the Jenkins Slave service in the list on the right
Right-click and select "Properties" of the Jenkins Slave service
Select the "Log On" tab
Update the username and password used in manual tests
    Domain login can be specificied with <DOMAIN>\<USERNAME>
    Local logins just use <USERNAME>
OK to save and exit
Right-click again and select "Restart" to make the changes active.
11
dhj

私の場合、適切な回避策が見つかりました。 git cloneコマンドは常にプロセス所有者を継承します。これにより、Jenkins(SYSTEM)とcmd(USER)の2人の所有者がシステム上で同じ権限を持っているように見える場合でも、違いが生じることがあります。他のすべての構成は同じでした(キー、既知のホスト、Gitクライアントバージョン)。

したがって、私が見る限り、git cloneは、リモートをUSERとして呼び出すため成功しますが、git clone Jenkinsから呼び出された場合、リモートをSYSTEMとして呼び出すため、拒否される場合があります。通常、GUIを介してJenkinsを起動するサービスでは、サービスを別のユーザーとして実行するように構成できます(サービスを右クリック->プロパティ->ログオン)。 USER @ DOMAINのように配置する必要がありました。 [email protected]など。 cmdパラメーターがどのように見えるかはわかりませんが、あると思われます。

また、Jenkinsでは、SYSTEMとUSERがシステム全体で同じ権限を持つように構成されており、当然、リモートでは「Jenkins」として認識されるため、この回避策が最終的にどのような違いをもたらすかはわかりません。それでも、それは私のためのトリックを行います。より深い洞察を歓迎します。

4
Sir Jane

上記のほとんどを試しました:

Gitの場所を指定します。サービスユーザーを設定します。管理者として実行。

どれも機能しませんでした。最終的にgit64をアンインストールしてgit32をインストールすることにしました... gitパスを新しい場所(x86 Program Files内)に変更しました。そして、すべてがうまくいきました。

0
Trev M

最近、この問題に遭遇しました。

PATH EVには、WiniumとSeleniumをJenkinsインスタンスに接続しようとしたときに追加したアイテムがいくつかありました。

これらのアイテムを削除しましたが、ジェンキンスはまだ値を保持しているようです。少しトラブルシューティングした後:Jenkinsを再起動します。 Jenkinsサーバーを再起動します。ノードレベルでEVを設定します。など、WindowsスレーブでJenkins JNLPサービスを再起動しました

彼らは末永く幸せに暮らしました。

0
Chris Giddings

私の場合、ビルドマシンのsomeでGitを1.9.4から2.5.0に(Chocolatey経由で "git.install"パッケージを使用して)更新すると、この正確なエラーが発生し始めました。古い1.9.4インストールは32ビットパッケージでしたが、新しいものは64ビットパッケージであるため、デフォルトのインストール場所はC:\ Program Files(x86)\ GitからC:\ Program Files\Gitに切り替わりました。 Jenkinsマスターで64ビットパスを構成しました(新しいGitバージョンがあるため)が、一部のスレーブには古い32ビットバージョンがインストールされているため、スレーブは誤ったパスを使用しようとしました。個々のスレーブのGitパスをオーバーライドすることもできましたが、よりクリーンなソリューションは、すべてのスレーブを新しい64ビットバージョンにアップグレードすることでした。

0
Nick Jones

私は同様の問題に直面していたので、WindowsベースのスレーブのPATH環境変数にgitを追加する必要があることがわかりました。この場合、@ dhjの提案2も同様に機能すると思います。

Jenkins Jira。 でこの回避策を見つけました

0
sttaq