3_持续集成环境-Jenkins安装
Jenkins安装#
1)安装JDK,Jenkins从需要依赖JDK11,所以先安装JDK11
yum -y install java-11-openjdk
jdk1.8安装方式:
yum install java-1.8.0-openjdk* -y
卸载命令:
yum remove java-1.8.0-openjdk* -y
jdk默认安装目录为:
/usr/lib/jvm
验证:
新版本需要配置环境变量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
2)获取jenkins安装包
下载页面:https://jenkins.io/zh/download/
清华源下载:https://mirrors.tuna.tsinghua.edu.cn/
安装文件为:jenkins-2.414.2-1.1.noarch.rpm
卸载jenkins:
#查看Jenkins
rpm -qa | grep jenkins
#卸载jenkins
rpm -e jenkins
#查看Jenkins的安装文件
rpm -ql jenkins
#彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf
3)将安装包上传到服务器(192.168.211.156)中,进行安装:
rpm -ivh jenkins-2.414.2-1.1.noarch.rpm
4)修改Jenkins配置
vim /etc/syscofig/jenkins
新版本配置文件地址为:
/usr/lib/systemd/system/jenkins.service
修改内容如下:
# 执行jenkins命令的linux用户
User=root
# 端口
JENKINS_PORT=8888
5)启动Jenkins
systemctl start jenkins
6)打开浏览器访问:http://192.168.211.156:8888
注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口
# --permanent 添加的端口号永久生效
sudo firewall-cmd --zone=public --add-port=开放的端口号/协议[tcp/udp] --permanent
# 使新增的端口配置立即生效
sudo firewall-cmd --reload
7)获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
8)暂时跳过插件安装
因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经常会失败,所以我们暂时先跳过插件安装
操作步骤:点击【选择插件来安装】-->选择【无】选项-->选择【安装】
9)添加一个管理员账户,并进入Jenkins后台,选择【保存并完成】
用户名:yangyongjun;密码:5bepADdZ
Jenkins插件管理#
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能都需要依靠插件完成。
修改Jenkins插件下载地址#
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址:
操作步骤:【Jenkins】-->【Manage Jenkins】-->【Manage Plugins】,点击Available
这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址:
操作步骤:【Manage Plugins】-->点击【Advanced】-->【Update Site】栏中修改-->点击【submit】
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在浏览器输入:http://192.168.211.156:8888/restart,重启Jenkins。
下载中文汉化插件#
操作步骤:【Jenkins】->【Manage Jenkins】->【Manage Plugins】,点击Available,搜索【Chinese】:
安装之后重启后,界面如下:
Jenkins用户权限管理#
我们可以使用Role-based Authorization Strategy 插件来管理Jenkins用户权限
安装Role-based Authorization Strategy插件:
开启权限全局安全配置#
操作步骤:点击【Manage Jenkins】-->点击【Configure Global Security】-->修改授权策略切换为【Role-Based Strategy】保存。
创建角色#
操作步骤:点击【Manage Jenkins】--> 点击【Manage and Assign Roles】
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Project roles(项目角色):针对某个或者某些项目的角色
Slave roles(奴隶角色):节点相关的权限
我们添加测试角色:
baseRole全局角色:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。
注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
web_demo_role角色:web_demo项目的角色。
创建用户 #
操作步骤:点击【Manage Jenkins】--> 点击【Manage Users】
新增两个用户【zhangsan】密码:【DmV5p2nK】、【lisi】密码:【PYMQB6Wj】:
直接登录,提示没有权限:
给用户分配角色:
都有【base_role】角色,给张三分配项目【web_demo】角色
并新建web_demo项目:
登录【zhangsan】账号查看项目,用户【lisi】无法查看项目。
Jenkins凭证管理#
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
要在Jenkins使用凭证管理功能,需要安装【Credentials Binding】插件。
可以添加的凭证有5种:
【Username with password】:用户名和密码
【SSH Username with private key】: 使用SSH用户和密钥
【Secret file】:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
【Secret text】:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
【Certificate】:通过上传证书文件的方式
以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证:
安装Git插件和Git工具#
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
Git插件安装:
操作步骤:【Manage Jenkins】--> 【manager plugin】-->【available plugin】中搜索Git并安装。
centOS7Git工具安装:
# 安装git
yum install git -y
# 安装后查看版本
git --version
用户密码类型#
1)创建凭证
操作步骤:【Manage Jenkins】-->选择【Manage Credentials】-->点击【全局】-->点击【Add Credentials】
添加【Username with password】类型全局凭据:
用户名:【jenkinsGitUser】密码:【3k8w2kM0】
2)测试凭证是否可用
在gitlab中新增用户【jenkinsGitUser】并设置密码,配置相关项目的开发者权限。
为项目【web_demo】的构建步骤添加配置信息,添加步骤从仓库中拉去代码:
点击构建开始拉去代码,日志信息显示拉取代码成功:
查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins服务器中。
SSH密钥类型#
SSH免密登录原理图:
1)使用root用户生成公钥和私钥
# 密钥对生成
ssh-keygen -t rsa
在/root/.ssh/目录保存了公钥和使用
id_rsa:私钥文件
id_rsa.pub:公钥文件
2)把生成的公钥放在Gitlab中
操作步骤:【以root账户登录】-->【点击头像】->【Settings】->【SSH Keys】
复制刚才id_rsa.pub文件的内容到这里,点击"Add Key":
3)在Jenkins中添加凭证,配置私钥
在Jenkins添加一个新的凭证,类型为【SSH Username with private key】,把刚才生成私有文件内容复制过来
4)测试凭证是否可用
新建【web
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2019-10-15 drf安装与封装风格 drf请求生命周期 drf五大模块(请求模块,渲染模块,解析模块,异常处理模块,响应模块)
2019-10-15 Vue项目初始化 路由页面跳转 课程与详情页搭建 路由的两种传参 跨组件传参--vue仓库 vue的cookie操作 vue的ajax操作 vue的element--ui插件