背景
在使用Jenkins构建本地任务的时候,出现了各种各样的问题,在这里做一个记录。
在官网下载dmg安装包,安装完毕即可在本机搭建jenkins的工作。
但是jenkins不会用本地的用户去构建,任何创建的文件都是“jenkins”用户所有,这会造成很多权限问题,无法调用自己写的脚本,执行shell会出现没有权限的错误。
修改用户权限
查阅了很多资料,都是说修改
/Library/LaunchDaemons/org.jenkins-ci.plist中的用户权限
于是修改该文件中的用户名及群组名
但是在执行Jenkins restart命令时出现权限错误问题,于是各种修改Library文件夹下的权限,失败。这种方法不可行。
修改安装方式
又再次查看大家对Jenkins配置相关的文章,发现这样一句话:
不要从官方下载pkg安装
(1)于是改变策略,先卸载已经安装好的Jenkins:
/Library/Application Support/Jenkins/Uninstall.command
通过brew安装Jenkins
安装Jenkins
brew install jenkins
如果未安装brew,先安装brew
ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)”
安装完成后,执行war包(我的Jenkins版本是2.122,可根据自己的Jenkins版本更换版本号)
java -jar /usr/local/Cellar/jenkins/2.122/libexec/jenkins.war --httpPort=8080
安装完成后,会提示如何开启Jenkins服务,以及如何停止
配置文件
启动后,不要着急打开Jenkins 的web容器。
先去/Library/LaunchDaemons目录下新建一个org.jenkins-ci.plist文件
其中JENKINS_HOME是安装Jenkins的路径。
<?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>StandardOutPath</key>
<string>/var/log/jenkins/jenkins.log</string>
<key>StandardErrorPath</key>
<string>/var/log/jenkins/jenkins.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>JENKINS_HOME</key>
<string>/Users/leon/Documents/FuckingJenkins/Jenkins/Home</string>
</dict>
<key>GroupName</key>
<string>daemon</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>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>jenkins</string>
<key>SessionCreate</key>
<true/>
</dict>
</plist>
启动Jenkins
未避免权限问题,先执行下面的命令行“
sudo chown root /usr/local/Cellar/jenkins/2.122/homebrew.mxcl.jenkins.plist
到这里就可以打开Jenkins的web容器,注册管理员账号,设置全局属性
选择“系统管理”——“系统设置”,进入系统设置界面
全局属性下面,勾选环境变量,增加一对键值对:
PATH = (终端中执行 echo $PATH 命令的输出,为一堆路径)
使用成果
调用本地脚本,终于可以正常执行了