安装Jenkins与Java
确保系统已更新并安装Java(Jenkins依赖Java环境):
sudo yum update -y
sudo yum install java-11-openjdk-devel -y # 推荐使用Java 11及以上版本
添加Jenkins官方仓库并安装Jenkins:
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
sudo yum install jenkins -y
启动Jenkins服务
设置Jenkins开机自启并立即启动:
sudo systemctl enable jenkins
sudo systemctl start jenkins
配置防火墙
允许Jenkins默认端口(8080)的访问:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
创建专用Jenkins用户
为提升安全性,建议使用非root用户运行Jenkins(避免直接以root身份运行服务):
sudo useradd -m jenkinsadmin # 创建用户(-m自动创建家目录)
sudo passwd jenkinsadmin # 设置用户密码
修改Jenkins配置文件
编辑/etc/sysconfig/jenkins,将Jenkins运行用户改为专用用户:
sudo vim /etc/sysconfig/jenkins
找到JENKINS_USER行,修改为:
JENKINS_USER="jenkinsadmin"
JENKINS_GROUP="jenkinsadmin" # 可选:若需指定组
调整目录所有权
将Jenkins关键目录(主目录、缓存、日志、插件)的所有权转移给专用用户:
sudo chown -R jenkinsadmin:jenkinsadmin /var/lib/jenkins # Jenkins主目录(存放配置、作业)
sudo chown -R jenkinsadmin:jenkinsadmin /var/cache/jenkins # 缓存目录
sudo chown -R jenkinsadmin:jenkinsadmin /var/log/jenkins # 日志目录
sudo chown -R jenkinsadmin:jenkinsadmin /var/lib/jenkins/plugins # 插件目录
重启Jenkins服务
应用配置变更:
sudo systemctl restart jenkins
解锁Jenkins
首次启动后,需通过Web界面解锁:
http://<CentOS_IP>:8080,获取/var/lib/jenkins/secrets/initialAdminPassword中的初始密码:cat /var/lib/jenkins/secrets/initialAdminPassword
启用全局安全
进入Jenkins管理界面,点击Manage Jenkins → Configure Global Security:
安装Role-Based Authorization Strategy插件
若未启用,需先安装插件:
配置角色与权限
| 角色名 | 权限 |
|---|---|
| admin | Overall: Administer |
| viewer | Overall: Read |
| 角色名 | 模式(正则表达式) | 权限 |
|---|---|---|
| dev-project-* | dev-.* | Job: Build, Cancel |
| qa-project-* | qa-.* | Job: Read, Workspace |
user1分配到admin角色,user2分配到dev-project-*角色)。创建测试用户
进入Manage Jenkins → Manage Users → Create User,添加用户(如testuser)并设置密码。
分配角色
将testuser分配到对应角色(如viewer),尝试用该用户登录,验证是否能执行对应操作(如viewer只能查看构建历史,无法修改配置)。
/var/lib/jenkins目录(包含所有作业、配置)。通过以上步骤,可在CentOS系统上完成Jenkins的权限设置,实现多用户、细粒度的权限控制,保障Jenkins环境的安全性与规范性。