1. 简介
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动 化构建、测试和部署等功能。官网: jenkins-ci.org/。
Jenkins的特征:
- 开源的Java语言开发持续集成工具,支持持续集成,持续部署。
- 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
- 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
- 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
- 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
- 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven, docker等。
2. Jeckins安装
- 安装Jdk Jenkins需要依赖JDK,所以先安装JDK1.8
yum install java-1.8.0-openjdk* -y
安装目录为:/usr/lib/jvm
- 获取jenkins安装包
下载页面:jenkins.io/zh/download… 安装文件:jenkins-2.190.3-1.1.noarch.rpm
- 把安装包上传到192.168.66.101服务器,进行安装
把安装包上传到192.168.66.101服务器,进行安装
- 修改Jenkins配置
vi /etc/syscofig/jenkins
修改内容如下:
JENKINS_USER="root"
JENKINS_PORT="8085"
- 启动Jenkins
systemctl start jenkins
-
打开浏览器访问
-
获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
- 跳过插件安装
因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装
- 添加一个管理员账户,并进入Jenkins后台
一直点击蓝色按钮
3. jekins插件安装
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用 Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。
3.1 修改Jenkins插件下载地址
Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available
这个 URL 改成
mirror.xmission.com/jenkins/upd… 或
mirrors.tuna.tsinghua.edu.cn/jenkins/upd…
3.2 安装中文汉化插件
Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
重启Jenkins后,就看到Jenkins汉化了!
- jekins简单命令
启动
service jenkins start
1
重启
service jenkins restart
停止
service jenkins stop
3.3 Jenkins用户权限管理
3.3.1 安装插件
我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
3.3.2 配置
开启权限全局安全配置
授权策略切换为"Role-Based Strategy",保存
之后就会出现如下图
点击"Manage Roles"
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Item roles(项目角色): 针对某个或者某些项目的角色 Node roles(奴隶角色):节点相关的权限
我们添加以下三个角色:
- baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑 定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
- role1:该角色为项目角色。使用正则表达式绑定"itcast.*",意思是只能操作itcast开头的项目。
- role2:该角色也为项目角色。绑定"itheima.*",意思是只能操作itheima开头的项目。
3.3.3 创建用户并分配角色
在系统管理页面进入 Manage Users
分别创建两个用户:jack和eric
给用户分配角色 系统管理页面进入Manage and Assign Roles,点击Assign Roles
- eric用户分别绑定baseRole和role1角色
- jack用户分别绑定baseRole和role2角色
3.3.4 测试
- eric用户登录,只能看到itcast01项目
- jack用户登录,只能看到itheima01项目
3.4 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:通过上传证书文件的方式
常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH 密钥)
3.5 安装Git插件和Git工具
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具
3.5.1 安装git插件
3.5.2 CentOS7上安装Git工具:
yum install git -y 安装
git --version 安装后查看版本
3.5.3 用户密码类型凭据
- 创建凭证
Jenkins->凭证->系统->全局凭证->添加凭证
- 测试凭证是否可用
创建一个FreeStyle项目:新建Item->FreeStyle Project->确定
3.5.4 SSH密钥类型
- 使用root用户生成公钥和私钥
ssh-keygen -t rsa
- id_rsa:私钥文件
- id_rsa.pub:公钥文件
- 把生成的公钥放在Gitlab中
以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"
- 在Jenkins中添加凭证,配置私钥
在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复 制过来
- 测试是否可用
4 前端自动化构建
4.1 安装node环境
-
下载安装包 wget nodejs.org/dist/v10.20…
-
解压压缩包
xz -d node-v14.17.6-linux-x64.tar.xz
tar -xvf node-v14.17.6-linux-x64.tar
- 移动安装包
首先修改文件名
mv node-v14.17.6-linux-x64 node-v14.17.6
mv node-v14.17.6 /node
- 配置环境变量
vim /etc/profile
NODE_HOME=/node
PATH=$PATH:$NODE_HOME/bin
NODE_PATH=$NODE_HOME/lib/node_modules export PATH NODE_HOME NODE_PATH
source /etc/profile
- 创建软连接
ln -s /node/bin/node /usr/local/bin/node
ln -s /node/bin/npm /usr/local/bin/npm
- 测试
4.2 安装插件
4.2.1 安装Publish Over SSH
安装Publish Over SSH用于执行构建后的操作
4.2.2 安装node插件
4.3 配置信息
4.3.1 配置node
4.4 构建项目
npm install
npm run build
cd dist
rm -rf dist.tar.gz
tar -zcvf dist.tar.gz *
mv dist.tar.gz /nginxFile/data_base_test/
cd /nginxFile/data_base_test/
tar -zxvf dist.tar.gz
6 构建通知
6.1 钉钉通知
-
安装钉钉插件
-
钉钉客户端配置
添加一个机器人
把添加完对应的webhook,access_tocke ,秘钥 等信息添加到以上Jenkins的钉钉配置中
- jekins配置钉钉
在系统中配置钉钉
在项目中配置钉钉
6.2 git提交代码时触发
-
安装插件Gitlab Hook和GitLab
-
Jenkins设置自动构建
等会需要把生成的webhook URL配置到Gitlab中。
- Gitlab配置webhook
- 开启webhook功能 使用root账户登录到后台,点击Admin Area -> Settings -> Network 勾选"Allow requests to the local network from web hooks and services"
- 在项目添加webhook 点击项目->Settings->Integrations