Jenkins:「WindowsサービスとしてこのWindowsスレーブを制御」がうまくいかんときの解決法
Jenkinsで分散ビルドです。
まず、管理するPC(マスター)にJenkinsを入れておけばよく、実際にビルドを行う他のマシン(スレーブ?スレーヴ?)にはJenkinsは勿論特別なソフトは入れなくて良い。
上記「WindowsサービスとしてこのWindowsスレーブを制御」をマスター側でノードに設定すると、自動的に「slave agent」をスレーブに設定してくれるんですって。まじ便利。
さて。
ただマスターに設定しただけでは、やはり動きませんでした。
でもちゃんとログに「このサイト見ろ」と丁寧に書いてあったので、飛ぶ。
まあ親切に1つずつ丁寧に説明しています。
それがこれ。
Windows slaves fail to start via DCOM - 日本語 - Jenkins Wiki
だけれども、これじゃあ、自分のwindows 7 64bit環境では動きませんでした。
さらにググり続けて解決方法を調べると。。ありましたよ。同じ説明の英語版に。
http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM#comment-thread-5432945
二回連続なので、これが解決方法の定石かと思うことにする。
ちなみに、差分はこれです。これを追加でやったら通信できるようになりました。
- Launch 'regedit.exe' as 'Administrator'
- Find the following registry key: 'HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}'
- Right click and select 'Permissions'
- Change owner to administrators group.
- Change permissions for administrators group. Grant Full Control.
- Change owner back to TrustedInstaller (user is "NT Service\TrustedInstaller")
- Restart Remote Registry Service
日本語だとこんな感じ
英語版のJenkinsヘルプ?だと、説明を読んで失敗した人が、そのままそこで議論してるから、かなりわかりやすい。