2012-08-16 38 views
2

如何在Mac OS X系統上的不同HTTP端口(即7070和7071)上運行Jenkins的兩個守護進程。不同HTTP端口上的多個Jenkins守護進程(Mac OS X)

1)我創建兩個賬戶對每個dameon,含詹金斯主目錄:jeankins1,jenkins2

2)我複製默認dameon配置文件

sudo cp /Library/LaunchDaemons/org.jenkins-ci.plist /Library/LaunchDaemons/jenkins-dameon-1.plist 
sudo cp /Library/LaunchDaemons/org.jenkins-ci.plist /Library/LaunchDaemons/jenkins-dameon-2.plist 

3)我修改dameon配置文件詹金斯-dameon-1.plist文件的

sudo vi /Library/LaunchDaemons/jenkins-dameon-1.plist 

內容:

詹金斯-dameon-2.plist文件
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
     <key>EnvironmentVariables</key> 
     <dict> 
       <key>JENKINS_HOME</key> 
       <string>/Users/jenkins1/Jenkins/Home</string> 
     </dict> 
     <key>GroupName</key> 
     <string>wheel</string> 
     <key>KeepAlive</key> 
     <true/> 
     <key>Label</key> 
     <string>org.jenkins-ci</string> 
     <key>ProgramArguments</key> 
     <array> 
       <string>/bin/bash</string> 
       <string>/Library/Application Support/Jenkins/jenkins-runner.sh</string> 
       <string>--httpPort=7070</string> 
     </array> 
     <key>RunAtLoad</key> 
     <true/> 
     <key>UserName</key> 
     <string>jenkins1</string> 
     <key>SessionCreate</key> 
     <true /> 
</dict> 

sudo vi /Library/LaunchDaemons/jenkins-dameon-2.plist 

內容:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
     <key>EnvironmentVariables</key> 
     <dict> 
       <key>JENKINS_HOME</key> 
       <string>/Users/jenkins2/Jenkins/Home</string> 
     </dict> 
     <key>GroupName</key> 
     <string>wheel</string> 
     <key>KeepAlive</key> 
     <true/> 
     <key>Label</key> 
     <string>org.jenkins-ci</string> 
     <key>ProgramArguments</key> 
     <array> 
       <string>/bin/bash</string> 
       <string>/Library/Application Support/Jenkins/jenkins-runner.sh</string> 
       <string>--httpPort=7071</string> 
     </array> 
     <key>RunAtLoad</key> 
     <true/> 
     <key>UserName</key> 
     <string>jenkins2</string> 
     <key>SessionCreate</key> 
     <true /> 
</dict> 

4)我開始兩個詹金斯守護進程

sudo launchctl load /Library/LaunchDaemons/jenkins-dameon-1.plist 
sudo launchctl load /Library/LaunchDaemons/jenkins-dameon-2.plist 

我傳遞的方式HTTPPORT參數dont't似乎正確, 怎麼做 ?

這solultion工作只爲一個實例:Configure Jenkins Mac OS X native package to run in a different port

回答

2

在我的PLIST文件,我不再使用jenkins-runner.sh腳本,但Java可執行文件。詹金斯-dameon-2.plist文件的

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>EnvironmentVariables</key> 
    <dict> 
     <key>JENKINS_HOME</key> 
     <string>/Users/jenkins1/Jenkins/Home</string> 
    </dict> 
    <key>GroupName</key> 
    <string>daemon</string> 
    <key>KeepAlive</key> 
    <true/> 
    <key>Label</key> 
    <string>jenkins1</string> 
    <key>ProgramArguments</key> 
    <array> 
       <string>/usr/bin/java</string> 
       <string>-jar</string> 
       <string>/Applications/Jenkins/jenkins.war</string> 
       <string>--httpPort=7070</string> 
       <string>--ajp13Port=-1</string> 
    </array> 
    <key>RunAtLoad</key> 
    <false/> 
    <key>UserName</key> 
    <string>jenkins1</string> 
     <key>SessionCreate</key> 
    <true /> 
</dict> 
</plist> 

內容:詹金斯-dameon-1.plist文件的

內容

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>EnvironmentVariables</key> 
    <dict> 
     <key>JENKINS_HOME</key> 
     <string>/Users/jenkins2/Jenkins/Home</string> 
    </dict> 
    <key>GroupName</key> 
    <string>daemon</string> 
    <key>KeepAlive</key> 
    <true/> 
    <key>Label</key> 
    <string>jenkins2</string> 
    <key>ProgramArguments</key> 
    <array> 
       <string>/usr/bin/java</string> 
       <string>-jar</string> 
       <string>/Applications/Jenkins/jenkins.war</string> 
       <string>--httpPort=7071</string> 
       <string>--ajp13Port=-1</string> 
    </array> 
    <key>RunAtLoad</key> 
    <false/> 
    <key>UserName</key> 
    <string>jenkins2</string> 
     <key>SessionCreate</key> 
    <true /> 
</dict> 
</plist> 
1

有作爲安裝的一部分創建3個文件爲OSX用於啓動:

  1. /Library/Preferences/org.jenkins-ci.plist
  2. /庫/應用程序\支持/詹金斯/ jenkins-runner.sh
  3. /Library/LaunchDaemons/org.jenkins-ci.plist

要正確地做到這一點,你需要做的所有3個副本文件並編輯它們。

文件1是您可以設置端口的位置。爲此,您需要使用此處所述的defaults命令(將文件名更改爲副本):https://wiki.jenkins-ci.org/display/JENKINS/Thanks+for+using+OSX+Installer

文件2是啓動Jenkins並讀取默認值的shell腳本。編輯您的文件的副本,以指向默認=行中的文件1副本(減去.plist擴展名)。

文件1控制守護程序的啓動。你將它編輯到:

  • 點到文件2而不是原來的shell腳本
  • 點的副本,爲不同的日誌目錄的標準出來,如果需要的
  • 點爲標準不同的日誌目錄犯錯如果需要
  • 點到不同的目錄JENKINS_HOME
  • 更改標籤,以反映新的文件名
  • 要指定一個不同的用戶如果需要

然後,您應該擁有在不同端口上啓動2個不同守護程序所必需的一切。

+0

只要確保所有3個文件和JENKINS_HOME具有相同的所有者和組。 – 2013-12-27 12:31:47