Linux部署_04Jenkins部署前端项目

234 阅读6分钟

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安装

  1. 安装Jdk Jenkins需要依赖JDK,所以先安装JDK1.8

yum install java-1.8.0-openjdk* -y

安装目录为:/usr/lib/jvm

  1. 获取jenkins安装包

下载页面:jenkins.io/zh/download… 安装文件:jenkins-2.190.3-1.1.noarch.rpm

  1. 把安装包上传到192.168.66.101服务器,进行安装

把安装包上传到192.168.66.101服务器,进行安装

  1. 修改Jenkins配置

vi /etc/syscofig/jenkins

修改内容如下:

JENKINS_USER="root" 
JENKINS_PORT="8085"
  1. 启动Jenkins

systemctl start jenkins

  1. 打开浏览器访问

  2. 获取并输入admin账户密码

image.png

cat /var/lib/jenkins/secrets/initialAdminPassword

  1. 跳过插件安装

因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装

image.png

image.png

  1. 添加一个管理员账户,并进入Jenkins后台

一直点击蓝色按钮

image.png

image.png

image.png

image.png

3. jekins插件安装

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用 Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。

3.1 修改Jenkins插件下载地址

Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available

image.png

这个 URL 改成
mirror.xmission.com/jenkins/upd… 或
mirrors.tuna.tsinghua.edu.cn/jenkins/upd…

3.2 安装中文汉化插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"

image.png

重启Jenkins后,就看到Jenkins汉化了!

image.png

  1. jekins简单命令

启动

service jenkins start

1

重启

service jenkins restart

停止

service jenkins stop

3.3 Jenkins用户权限管理

3.3.1 安装插件

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限

image.png

3.3.2 配置

开启权限全局安全配置

image.png

授权策略切换为"Role-Based Strategy",保存

image.png

之后就会出现如下图

image.png

点击"Manage Roles"

image.png

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

image.png

分别创建两个用户:jack和eric

给用户分配角色 系统管理页面进入Manage and Assign Roles,点击Assign Roles

  • eric用户分别绑定baseRole和role1角色
  • jack用户分别绑定baseRole和role2角色

image.png

3.3.4 测试

  • eric用户登录,只能看到itcast01项目
  • jack用户登录,只能看到itheima01项目

3.4 Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便 Jenkins可以和这些第三方的应用进行交互。

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

image.png

安装插件后,系统管理多了"凭证"菜单,在这里管理所有凭证

image.png

可以添加的凭证有5种:

image.png

  • 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插件

image.png

3.5.2 CentOS7上安装Git工具:

yum install git -y 安装 
git --version 安装后查看版本

3.5.3 用户密码类型凭据

  1. 创建凭证

Jenkins->凭证->系统->全局凭证->添加凭证

image.png

image.png

  1. 测试凭证是否可用

创建一个FreeStyle项目:新建Item->FreeStyle Project->确定

image.png

image.png

image.png

image.png

image.png

image.png

3.5.4 SSH密钥类型

  1. 使用root用户生成公钥和私钥

ssh-keygen -t rsa

image.png

  • id_rsa:私钥文件
  • id_rsa.pub:公钥文件
  1. 把生成的公钥放在Gitlab中

以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"

image.png

  1. 在Jenkins中添加凭证,配置私钥

在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复 制过来

image.png

image.png

  1. 测试是否可用

image.png

image.png

4 前端自动化构建

4.1 安装node环境

  1. 下载安装包 wget nodejs.org/dist/v10.20…

  2. 解压压缩包

xz -d node-v14.17.6-linux-x64.tar.xz

tar -xvf node-v14.17.6-linux-x64.tar

  1. 移动安装包

首先修改文件名

mv node-v14.17.6-linux-x64 node-v14.17.6

mv node-v14.17.6 /node

  1. 配置环境变量

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

  1. 创建软连接

ln -s /node/bin/node /usr/local/bin/node

ln -s /node/bin/npm /usr/local/bin/npm

  1. 测试

image.png

4.2 安装插件

4.2.1 安装Publish Over SSH

安装Publish Over SSH用于执行构建后的操作

image.png

4.2.2 安装node插件

image.png

4.3 配置信息

image.png

4.3.1 配置node

image.png

4.4 构建项目

image.png

image.png

image.png

image.png

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 钉钉通知

  1. 安装钉钉插件 image.png

  2. 钉钉客户端配置

image.png

添加一个机器人

image.png

image.png

把添加完对应的webhook,access_tocke ,秘钥 等信息添加到以上Jenkins的钉钉配置中

  1. jekins配置钉钉

在系统中配置钉钉

image.png

image.png

在项目中配置钉钉

image.png

6.2 git提交代码时触发

  1. 安装插件Gitlab Hook和GitLab

  2. Jenkins设置自动构建

等会需要把生成的webhook URL配置到Gitlab中。

image.png

image.png

  1. Gitlab配置webhook
  • 开启webhook功能 使用root账户登录到后台,点击Admin Area -> Settings -> Network 勾选"Allow requests to the local network from web hooks and services"

image.png

  • 在项目添加webhook 点击项目->Settings->Integrations

image.png