[TOC]
前言
天啊,没遇到问题之前,你永远不知道我下面要讲的这些点是多么多么的重要。你只要稍微不注意,就会导致你所有的正确操作都变成错误。
Jenkins管理员密码忘记的解决办法
首先明确,不管是初始密码,还是找回管理员密码都是从共享--Jenkins--Home
中处理,目录结果如下:
admin密码更改忘记情况
1.删除Jenkins目录下config.xml文件中下面代码,并保存文件。
1 | <useSecurity>true</useSecurity> |
2.重启Jenkins服务 http://localhost:8080/restart
附:重新加载配置信息 http://localhost:8080/reload
3.进入首页>“系统管理”>“Configure Global Security”;
4.勾选“启用安全”;
5.点选“Jenkins专有用户数据库”,并点击“保存”;
6.重新点击首页>“系统管理”,发现此时出现“管理用户”;
7.点击进入展示“用户列表”;
8.点击右侧进入修改密码页面,修改后即可重新登录。
一、文件路径问题
Jenkins脚本中,不能使用桌面路径:
本地cd目录注意:
1 | 错误cd |
二、权限问题
1、问题例子
将在终端中已验证通过的如下脚本,放到Jenkins上执行。
问题例子1:文件修改
1 | cd /Users/lichaoqian/Project/Test/TestScript |
执行后,Jenkins的log如下:
很显然这是个权限问题。
问题例子2:钥匙串Keychain解锁
同理的当你执行钥匙串Keychain的时候也会有权限问题
1 | security unlock-keychain -p "lichaoqian" "/Users/lichaoqian/Library/Keychains/login.keychain" |
执行后,Jenkins的log如下:
1 | [TestScript] $ /bin/sh -xe /Users/Shared/Jenkins/tmp/jenkins2455609193418764900.sh |
很显然这也是个权限问题。
2、权限问题分析
参考文章:iOS开发-自动化打包Jenkins集成的文章开头就有讲到。
原因:Jenkins打开姿势不对!
如果你构建的工程,是在/Users/Shared/Jenkins工作目录下,那么就会有权限问题。
如果你构建的工程,是在/Users/[user name]/.jenkins工作目录下,才不会有权限问题。
- 错误的:有权限问题的Jenkins workspace目录
- 正确的:无权限问题的Jenkins workspace目录
如何验证你当前项目点击构建后的工作目录是哪里呢?
答:直接构建,然后去查看你的项目显示在哪里啊。
3、权限问题解决(正确的启动Jenkins姿势)
在使用正确的启动Jenkins之前,我们先来认识下下面的这个org.jenkins-ci.plist
文件。它的位置 /Library/LaunchDaemons/org.jenkins-ci.plist
如下:
没有权限问题的Jenkins正确的启动方式如下(按下面方式打开,才不会出现权限问题):
1 | sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist |
当你执行完这两行命令的时候,你可以在浏览器上输入http://localhost:8080
来访问Jenkins了。(如果你只执行了第一行,没执行第二行,会出现无法访问)
4、解决后的结果显示
- 4.1、脚本内容
- 4.2、脚本执行结果
至此,你的权限问题已完美解决。
三、其他权限问题
- Jenkins问题解决方案:
解决:进入mac 系统偏好设置 — 用户与群组 — 其他用户 — jenkins ,勾选允许用户管理这台电脑
勾选选项。
四、Jenkins权限问题其他解决方法(未实践)
- 未实践方式1(都未实践):
Jenkins执行脚本提示没有权限的解决办法 未实践,因为已经通过上述正确的启动Jenkins来解决了。所以这里没去实践。不过看内容应该是可行的。后续有时间再补充。
- 未实践方式2(看了应该无效):
提高Jenkins用户权限,详见《Terminal -> 终端命令使用.md》中的用户相关操作。应该无效