web-dev-qa-db-ja.com

Jenkinsが「Originから上流の変更を取得しています」

Windows Server 2012マシンでJenkinsをセットアップしようとしていますが、多くの困難を抱えています。

私がやったこと:

  • パスワードなしの_id_rsa_および_id_rsa.pub_を作成しました
  • _known_hosts_を使用してbitbucket.orgの_ssh.exe -T bitbucket.org_ファイルを作成し、ホストの追加を受け入れました。
  • システム全体のHOME変数に_E:_を追加
  • これらのファイルを_C:/Windows/SysWOW64/config/systemprofile/.ssh_および_E:/.ssh_に追加しました
  • 公開鍵を展開鍵としてBitbucketにリンクしました。
  • すべてのURL、ユーザー名などをトリプルチェックしました。
  • C:/Program Files (x86)/Jenkins/jobs/MyProject/workspace/に初期ベースをセットアップするために、リポジトリから手動でプルすることさえしました

そして、それでもまだハングアップしています

_Building in workspace C:\Program Files (x86)\Jenkins\jobs\MyProject\workspace
Checkout:workspace / C:\Program Files (x86)\Jenkins\jobs\MyProject\workspace - hudson.remoting.LocalChannel@13ca972
Using strategy: Default
Fetching changes from 1 remote Git repository
Fetching upstream changes from Origin
_

私はそれを約20分与えたので、それはレポ問題の速度/サイズではありません。キャンセルした場合、これが返されます。

_ERROR: Problem fetching from Origin / Origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Error performing command: C:\Program Files     (x86)\Git\bin\git.exe fetch -t Origin +refs/heads/*:refs/remotes/Origin/*
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.Java:780)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.Java:739)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.fetch(CliGitAPIImpl.Java:160)
at hudson.plugins.git.GitAPI.fetch(GitAPI.Java:230)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.Java:793)
at hudson.plugins.git.GitSCM.access$000(GitSCM.Java:57)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:976)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:942)
at hudson.FilePath.act(FilePath.Java:865)
at hudson.FilePath.act(FilePath.Java:838)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.Java:942)
at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:1101)
at hudson.model.AbstractProject.checkout(AbstractProject.Java:1364)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.Java:670)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.Java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.Java:575)
at hudson.model.Run.execute(Run.Java:1575)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
at hudson.model.ResourceController.execute(ResourceController.Java:88)
at hudson.model.Executor.run(Executor.Java:237)
Caused by: Java.lang.InterruptedException
at Java.lang.ProcessImpl.waitFor(Native Method)
at hudson.Proc$LocalProc.join(Proc.Java:319)
at hudson.Launcher$ProcStarter.join(Launcher.Java:360)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.Java:769)
... 19 more
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:981)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:942)
at hudson.FilePath.act(FilePath.Java:865)
at hudson.FilePath.act(FilePath.Java:838)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.Java:942)
at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:1101)
at hudson.model.AbstractProject.checkout(AbstractProject.Java:1364)
at     hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.Java:670)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.Java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.Java:575)
at hudson.model.Run.execute(Run.Java:1575)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
at hudson.model.ResourceController.execute(ResourceController.Java:88)
at hudson.model.Executor.run(Executor.Java:237)
_

私はここで私の知恵の終わりにいるので、得ることができるすべての助けに感謝します。ここに私が改善せずに試したいくつかの記事があります。

GithubプライベートリポジトリのJenkins CIを認証する

Jenkinsのセットアップ時にアクセスが拒否されました(公開鍵)

Hudson GitプラグインがWindowsで機能しない

http://computercamp.cdwilson.us/jenkins-git-clone-via-ssh-on-windows-7-x64

31
DTI-Matt

同様の問題を修正する方法は次のとおりです。

Msysgitは2つの_git.exe_をインストールします。 1つはC:\Program Files (x86)\Git\binの下にあり、もう1つはC:\Program Files (x86)\Git\cmdの下にあります。最初のものはJenkinsでは使用できません。それはその仕事を完了した後にハングします。 2つ目は完全に機能します。

Jenkins Git設定を更新して正しい_cmd\git.exe_を指すようにしてお楽しみください!

31
David Gageot

これは私がそれを解決した方法です:

私はsysinternalsツールpsexecを実行して、LocalSystemアカウント(jenkinsサービスと同じアカウントが実行されている)で実行されているCMDを起動しました

PSEXEC -i -s -d CMD

このcmdプロンプトでは、GIT.exeプロセスがハングしているのと同じgitコマンドをワークスペースディレクトリから実行しました。例えば。

d:\ Programs\Jenkins\jobs\jobname\workspace> D:\ Programs\Git\bin\git.exe fetch -t ssh + git://[email protected]:9360/data/gitpub/myRepository。 git + refs/heads/:refs/remotes/Origin /

Et voila:「yes」と入力して、既知のホストの既知のリストにSSHキーを追加するように求められました。

8
Andreas

Windowsでジェンキンスを構成するときに、特にMSIインストーラーを使用するときに特に役立つと感じた別のリンクは次のとおりです。 http://opensourcetester.co.uk/2013/06/28/jenkins-windows-ssh/ =

そしてもう1つ、私が明確に見つけられなかったことは、Githubに接続するときに、デフォルトのhttpsではなくSSHのURLを使用する必要があることです。うまくいけば、誰かの時間を節約できます。

2
Woland

「Originから上流の変更を取得する」でもフリーズを体験してください。

WindowsベースのマシンでJenkinsをサービスとして実行すると、(私が経験したことから)SSLを使用するときに問題が発生するようです。

回避策ソリューション]

  1. ローカルアカウントで実行するようにJenkinsサービスを変更します。
  2. ローカル管理者アカウントがSSHとのGit対話を実行するように構成されていることを確認してください。
  3. Jenkinsを再起動します( 詳細 )。
  4. Jenkinsが起動しない場合、Gitからプルしようとして問題がありました。手動でgitおよびsshプロセスを強制終了し、JenkinsからJava.exeを強制終了して、手動でJenkinsサービスを開始します。

このソリューションを選択する理由の詳細]

サーバーを受け入れるように承認されたホストを設定し、サーバーにJenkinsのキーを登録して接続を許可する前に、他の手順を実行しました。ローカルシステムアカウント(Jenkinsサービスを実行したアカウント)でGitアクションを正常に実行できることを確認しました。それでも、フェッチはフリーズします。 GitとSSLが正しく構成されていることを確認するために、Jenkinsジョブディレクトリの最初に構成されたGitリポジトリに移動して、プルリクエストを正常に実行しました ローカルシステムアカウントの下 。動いた;したがって、キーは正しく設定されています。

これをどこで読んだか忘れてしまいましたが、ローカルシステムでGit/SSHを扱うときに問題が発生すると聞きました。この知識を得て、私はGit環境で遊んでGIT_SSH環境変数を変更して plink を使用しました(サーバーキーを記憶するPuTTY、OpenSSLキーをPuTTYキーに変換するputtygen、およびページェントの組み合わせ)私の鍵を覚えておいてください)いったんplinkで動作させると、使用可能なソリューションであるとは思いませんでした。 plinkを正しく使用するために、ローカルシステムアカウントでページェントも実行して、JenkinsサービスがSSH呼び出しを正しくネゴシエートするようにしました。再起動時にどのように初期状態を正しく設定するかを考えた後、SSH接続を機能させるためだけにこのような努力をしたくありませんでした。

代わりに、Gitサーバーを処理するように構成されているローカル管理者アカウントでJenkinsを実行する方が簡単だと判断しました。ローカルシステムアカウント用に構成されたSSHキーを処理する必要はなく、私のgitアクションはうまくいきました。


注、David Gageotの回答は一部に当てはまる場合があります。 Gitをインストールしたときのように、Git設定を変更する必要はありませんでした。パスをC:\Program Files (x86)\Git\bin\cmd\ディレクトリにマップするオプションRun Git from the Windows Command Promptを選択しました。

2
jdknight

私のラップトップにも同じ問題があり、解決策を見つけることができましたが、これは、WindowsサービスとしてセットアップされているTomcat WebコンテナーでJenkins戦争を実行している場合にのみ当てはまります。

ローカルシステムではなくWindowsユーザーとしてログオンするようにTomcatサービスを設定する必要がありました。

2
Sheparzo

私にとっては、$ HOME/.sshフォルダーとそのコンテンツに対する権限でした。 Jenkinsは、特定のユーザーグループに対して表示を設定した後、再起動後に変更をフェッチすることができました。

1
martoncsukas

私はこれを理解するために数時間を費やしましたが、リポジトリURLにパスワードを追加すると問題が解決することがわかりました。

https://USERNAME:[email protected]/REPO.git

ユーザー名とパスワードの間のに注意してください

0

Windows用Gitクライアントのバージョン2.6.1 はJenkinsのこの問題を修正します。これで、「Originからの上流の変更の取得」に遅延がなくなりました。

私はジェンキンスでgit cmdを使用しています:

C:\ Program Files\Git\cmd\git.exe

0
Thomas T