jenkins搭建自动构建权限管理
一、jenkins搭建system:centos 7.8 1.下载依赖
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- 导入秘钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
如果遇到导入**太慢,可以手动打开网站用浏览器下载好文件,然后导入文件
- 安装
|
yum install jenkins #等待安装时间较长,约25min |
jenkins安装完毕
- 启动前检查是否已安装jdk
|
java #显示java参数即证明已安装jdk |
- 查找jenkins安装路径
|
rpm -ql jenkins |
jenkins相关目录释义: (1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。 ( 2 )
/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。 (4)/var/log/jenkins/jenkins.log:jenkins日志文件。
- 配置jenkins (1)查找jenkins端口
|
vim /etc/sysconfig/jenkins JENKINS_PORT="8089"找到jenkins端口进行修改 |
查找到jenkins端口为8080
- 查看其他端口占用情况
|
netstat -ntlp |
显示已被占用端口
被占用端口与jenkins端口8080无冲突,即可进入下一步启动jenkins
- 启动jenkins
|
systemctl restart jenkins |
- 修改jenkins端口 若默认8080端口未被占用,可不修改 若端口已被占用,则修改端口为其他端口,并将对应端口开放
|
#端口改为8899 |
|
systemctl restart jenkins #启动 |
启动完成
- 验证jenkins能否打开 在宿主机浏览器输入http://IP:Port 我这里输入:http://192.168.114.128:8080 (修改端口后输入:http://192.168.114.128:8899)
进入jenkins解密界面
|
cat /var/lib/jenkins/secrets/initialAdminPassword |
[email protected]:[/]cat /var/lib/jenkins/secrets/initialAdminPassword 264784b9b70e40bd968298304540b3c2 [email protected]:[/]
- 安装完需要优化的部分
首页 --> configure --> Manage Jenkins --> Advanced --> Update Site(页面最下方‘升级站点’) 替换URL为 清华大学仓库地址:
https: //updates .jenkins.io /update-center .json
改为 https: //mirror .tuna.tsinghua.edu.cn /jenkins/updates/update-center .json 或者
http: //mirror .xmission.com /jenkins/updates/update-center .json
按照提示安装需要的插件,至此安装完成!!! 二、jenkins配置构建发布
首先创建一个项目
触发器设置,用的是gitlab+jenkins,所以这里就是gitlab勾子
我们再看一下这里配置gitlab需要配置什么
我们需要新增一个勾子,usrl是我们在jenkins触发器哪里看到的URL
需要安装插件才能有这项功能,就是对于构建时的名称做修改,方便记录
user build vars 此插件用于设置用户构建变量:jenkins用户名和ID等。
Build Name and Description Setter 此插件用于修改构建的显示名称(修改之前为默认的#1,#2,#3…)
我这里构建用的都是脚本,配合批量工具进行代码发布和备份的
vim /etc/ansible/playbook/kaifa_rsync.yml
---
- hosts: kaifa
remote_user: root
tasks:
- name: sync_kaifa_cone (--exclude-file)
synchronize: src=/var/lib/jenkins/workspace/Mdk_admin/ dest=/data/web/MdkAdmin/
三、jenkins的权限管理
1、首先我们需要安装jenkins权限管理的插件:Role-based Authorization Strategy
然后,在插件管理模块中,检查Role-based Authorization Strategy 插件是否已经安装
安装完插件,我们需要关闭到jenjins全局配置中默认的权限管理,在jenkins的全局安全配置功能中,启用安全,并将授权策略设置为Role-Based Strategy。
通过系统管理模块中的 Manage and Assign Roles组件,完成角色配置工作。Global roles 用于配置全局,设置admin角色和’view’角色即可。
View就是相当于一个非管理员的群组,用来管理部分权限
然后在全局管理中添加需要管理的项目,如果新建用户属于管理员,不用下面的授权,也会有所有的权限
Pattern 的Job扫描规范,按照 .* 进行模糊匹配。
接下来我们新建用户做测试
通过系统管理模块中的管理用户功能,进入用户列表。点击左侧菜单栏中的新建用户按钮,进行账号创建
通过系统管理模块下 Manage And Assign Roles 组件的Assign Roles (分配角色)功能,给用户授予相关项目的任务权限。
首先,给用户授权全局查看权限。在Assign Roles功能的 Global roles 列表中添加该用户,并选择view权限。
Global roles:就是我们将新建的用户加入到组里面,默认会有admin和我们创建view,这里有部分开发人员给的是view的权限,因为不是每个开发都可以构建任何项目,运维人员就是管理员
Item roles:这里可以看到我们在上一个全局权限里面增加了两个项目,所以这里就有两个,我们将需要的用户和项目勾选即可
可以管理员创建了6个构建任务
可以看到我们不在管理员的用户,除了授权的构建任务 其他都看不到,更多权限在全局设置,view里面做更细化的分配