Jenkins本地搭建权限问题解决 for Mac

2022-05-09 21:28:39 浏览数 (1)

背景

在使用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 命令的输出,为一堆路径)

使用成果

调用本地脚本,终于可以正常执行了

0 人点赞