不同HTTP端口上的多个Jenkins守护程序(Mac OS X) [英] Multiple Jenkins daemons on different HTTP ports (Mac OS X)

查看:283
本文介绍了不同HTTP端口上的多个Jenkins守护程序(Mac OS X)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Mac OS X系统的不同HTTP端口(即7070和7071)上运行Jenkins的两个后台程序。



1)创建两个帐户对于每个dameon,包含Jenkins主目录: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配置文件

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

jenkins-dameon-1.plist文件的内容:

 <?xml version =1.0encoding =UTF-8?> 
<!DOCTYPE plist PUBLIC - // Apple // DTD PLIST 1.0 // ENhttp://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>标签< / 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

jenkins-dameon-2.plist文件的内容:

 <?xml version =1.0encoding =UTF- 8→> 
<!DOCTYPE plist PUBLIC - // Apple // DTD PLIST 1.0 // ENhttp://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>标签< / 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)我启动两个Jenkins守护进程

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



我通过httpPort参数的方式似乎不正确,怎么办? >

此solultion仅适用于一个实例:将Jenkins Mac OS X本机包配置为在不同端口运行

解决方案

在我的PLIST文件中,我不再使用jenkins-runner.sh脚本而是使用java可执行文件。



jenkins-dameon-1的内容。 plist文件:

 <?xml version =1.0encoding =UTF-8?& 
<!DOCTYPE plist PUBLIC - // Apple // DTD PLIST 1.0 // ENhttp://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>守护程序< / string>
< key> KeepAlive< / key>
< true />
< key>标签< / 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>
< / dict>
< / plist>

jenkins-dameon-2.plist文件的内容:

 <?xml version =1.0encoding =UTF-8?> 
<!DOCTYPE plist PUBLIC - // Apple // DTD PLIST 1.0 // ENhttp://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>守护程序< / string>
< key> KeepAlive< / key>
< true />
< key>标签< / 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>
< / dict>
< / plist>


How to run two daemons of Jenkins, on different HTTP ports (i.e. 7070 and 7071), on Mac OS X system.

1) I create an two accounts for each dameon, containing Jenkins Home directory : jeankins1, jenkins2

2) I duplicate default dameon configuration file

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) I modify the dameon configuration files

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

Content of jenkins-dameon-1.plist file :

<?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

Content of jenkins-dameon-2.plist file :

<?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) I start the two Jenkins daemons

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

The way I pass httpPort parameter dont't seem correct, how to do ?

This solultion work only for one instance : Configure Jenkins Mac OS X native package to run in a different port

解决方案

In my PLIST files, I don't use anymore jenkins-runner.sh script but java executable.

Content of jenkins-dameon-1.plist file :

<?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>

Content of jenkins-dameon-2.plist file :

<?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>

这篇关于不同HTTP端口上的多个Jenkins守护程序(Mac OS X)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆