Windows Server 2012マシンでJenkinsをセットアップしようとしていますが、多くの困難を抱えています。
私がやったこと:
id_rsa
_および_id_rsa.pub
_を作成しましたknown_hosts
_を使用してbitbucket.orgの_ssh.exe -T bitbucket.org
_ファイルを作成し、ホストの追加を受け入れました。E:
_を追加C:/Windows/SysWOW64/config/systemprofile/.ssh
_および_E:/.ssh
_に追加しました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のセットアップ時にアクセスが拒否されました(公開鍵)
http://computercamp.cdwilson.us/jenkins-git-clone-via-ssh-on-windows-7-x64
同様の問題を修正する方法は次のとおりです。
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
_を指すようにしてお楽しみください!
これは私がそれを解決した方法です:
私は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キーを追加するように求められました。
Windowsでジェンキンスを構成するときに、特にMSIインストーラーを使用するときに特に役立つと感じた別のリンクは次のとおりです。 http://opensourcetester.co.uk/2013/06/28/jenkins-windows-ssh/ =
そしてもう1つ、私が明確に見つけられなかったことは、Githubに接続するときに、デフォルトのhttpsではなくSSHのURLを使用する必要があることです。うまくいけば、誰かの時間を節約できます。
「Originから上流の変更を取得する」でもフリーズを体験してください。
WindowsベースのマシンでJenkinsをサービスとして実行すると、(私が経験したことから)SSLを使用するときに問題が発生するようです。
回避策ソリューション]
このソリューションを選択する理由の詳細]
サーバーを受け入れるように承認されたホストを設定し、サーバーに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
を選択しました。
私のラップトップにも同じ問題があり、解決策を見つけることができましたが、これは、WindowsサービスとしてセットアップされているTomcat WebコンテナーでJenkins戦争を実行している場合にのみ当てはまります。
ローカルシステムではなくWindowsユーザーとしてログオンするようにTomcatサービスを設定する必要がありました。
私にとっては、$ HOME/.sshフォルダーとそのコンテンツに対する権限でした。 Jenkinsは、特定のユーザーグループに対して表示を設定した後、再起動後に変更をフェッチすることができました。
私はこれを理解するために数時間を費やしましたが、リポジトリURLにパスワードを追加すると問題が解決することがわかりました。
https://USERNAME:[email protected]/REPO.git
ユーザー名とパスワードの間の:に注意してください
Windows用Gitクライアントのバージョン2.6.1 はJenkinsのこの問題を修正します。これで、「Originからの上流の変更の取得」に遅延がなくなりました。
私はジェンキンスでgit cmdを使用しています:
C:\ Program Files\Git\cmd\git.exe