31

Windows Server 2012 マシンで Jenkins をセットアップしようとしていますが、非常に困難です。

私がやったこと:

  • パスワードなしの を作成しid_rsaid_rsa.pub
  • ホストの追加を使用して受け入れknown_hosts、bitbucket.orgのファイルを作成しました。ssh.exe -T bitbucket.org
  • E:システム全体の HOME 変数に追加
  • これらのファイルを追加しましC:/Windows/SysWOW64/config/systemprofile/.sshE:/.ssh
  • 公開キーをデプロイ キーとして Bitbucket にリンクしました。
  • すべての URL、ユーザー名などを 3 回確認しました。
  • リポジトリから手動でプルして、最初のベースをセットアップしました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 のセットアップ時に許可が拒否されました (publickey)

Hudson Git プラグインが Windows で動作しない

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

4

8 に答える 8

8

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

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://gitpub@my.server.com:9360/data/gitpub/myRepository. git +refs/heads/ :refs/remotes/origin/

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

于 2014-04-10T14:17:51.947 に答える
2

「オリジンからアップストリームの変更をフェッチする」でもフリーズを体験してください。

Jenkins を Windows ベースのマシンでサービスとして実行すると、(私が経験したことから) 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 にplinkを使用するようにしました (Putty を使用してサーバー キーを記憶し、puttygen を使用して OpenSSL キーを Putty キーに変換し、pageant を使用してキーを記憶します)。 . plink で動作するようになると、それが使用可能なソリューションであることがわかりませんでした。plink を正しく使用するには、Jenkins サービスが SSH 呼び出しを正しくネゴシエートできるように、ローカル システム アカウントで pageant も実行する必要がありました。再起動時に初期状態を正しく設定するにはどうすればよいかを考えた結果、SSH 接続を機能させるためだけにこれだけの労力を注ぎたくありませんでした。

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


David Gageotの答えはいくつかに当てはまることに注意してください。Run Git from the Windows Command PromptGit をインストールしたときに、パスをディレクトリにマップするオプションを選択したため、Git の設定を変更する必要はありませんでしたC:\Program Files (x86)\Git\bin\cmd\

于 2013-08-09T20:51:17.543 に答える
0

Windows 用 Git クライアントのバージョン 2.6.1 では 、Jenkins でこの問題が修正されています。これで、「オリジンからアップストリームの変更をフェッチする」に遅延がなくなりました。

私はJenkinsでgit cmdを使用しています:

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

于 2015-10-14T12:53:38.190 に答える