我正在参加「掘金·启航计划」
1. Jenkins 环境安装(Docker)
通过 Docker 快速安装和配置 Jenkins 持续构建系统
核心内容:
- Jenkins 的功能介绍
- Jenkins 的安装演示
功能介绍
Jenkins 是一个能最大程度实现对手工操作进行自动化的任务管理和执行工具。并且它可以通过定时器或事件来自动触发运行这些任务。
安装 Docker
要使用 Jenkins 的话,其实需要安装多个软件,采用传统方式安装会比较复杂。
现在最流行的方式是使用 Docker 进行软件的安装,最为简便方便。
本章 Jenkins 的安装过程基于 Docker ,大家可先自行下载和安装好 Docker ,然后再安装 Jenkins。
Docker 下载地址:www.docker.com/products/do…
# 1、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 2、 查看docker版本,验证是否验证成功
docker -v
配置步骤
-
使用
docker pull命令下载 Jenkins 的镜像文件docker pull jenkins/jenkins:lts-jdk11 -
通过
docker run命令运行 Jenkinksdocker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11运行过程中,控制台中会输出一个用于后续安装步骤的密码,注意获取:
-
可以
后台运行容器docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11 -
更换端口 为
8686docker run -d -p 8686:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11 -
访问:http://localhost:8080,开始进行可视化配置
在打开的页面中输入之前获取的控制台密码:

-
创建
Jenkins管理员账号
比如,账号密码设置为:test1/test1然后登录,进入 Jenkins 主界面:

-
搜索并安装
NodeJS插件,用于在 Jenkins 环境下构建前端项目

-
配置 NodeJS 插件,指定要安装的 NodeJS 版本


-
新建一个自由风格的构建任务:
新建任务-创建属于自己的工程


-
在任务中勾选
Provide Node& npm xxxx来启用 NodeJS(非常重要),并编写测试用的shell命令
测试--下列 shell 脚本用于测试 git 和 node 是否能正常运行:

-
保存配置,运行构建:

构建完毕后,查看构建历史:
- 绿色图标表示构建成功
- 红色表示构建失败

点击一个构建历史中的 ”控制台输出“,可查看该次构建的详细日志。里面包含构建运行的每一步的输出信息:

实现自动拉取代码
实现从 git 代码拉取 -> 打包 -> 上传的全自动过程
核心内容:
- 为运行
Jenkins的容器生成密钥,以便对 Git 进行免密访问 - 配置
Jenkins任务中的构建步骤,实现所有环节的自动化
具体步骤:
-
执行命令,获取运行
Jenkins服务的Docker容器IDdocker ps找到输出信息中的
Jenknis容器ID:
-
使用获取到的容器
ID,通过docker命令进入到运行Jenkins服务的 Docker 容器内部:docker exec -it 容器ID bash进入容器后,通过命令生成容器内的 SSH 密钥:
ssh-keygen -t ed25519 -C "jenkins@mydomain.com"生成的秘钥文件在目录
/var/jenkins_home/.ssh目录下。 -
将生成的公钥文件(id_xxx.pub)内容,配置到 Git 服务器(如 Gitee)账号中。
-
修改之前已创建的 Jenknins 任务配置,添加从 Git 拉取代码的操作:

自动构建代码
实现对之前通过git拉取的前端项目代码
步骤详情
-
添加构建步骤,编写
build前端代码的脚本:
-
保存配置,再次执行任务构建,并在构建的控制台输出中确认是否成功构建:

也可以在”工作空间“中看到当前
Jenkins进行构建工作的目录中的文件情况:
上传代码到服务器
上传构建后的代码到服务器 Nginx 托管目录,完成部署
步骤详情
-
先将
Jenkins容器的SSH公钥添加到服务器的.ssh/authorized_keys文件中 -
再去
Jenkins容器内执行ssh命令,确保能够成功免密远程登录到服务器 -
执行
Jenkins构建任务,构建成功后,确认服务器上的 Nginx 托管目录中是否已包含最新代码
2. Jenkins安装教程 (win10系统)
1.Jenkins下载

2.Jenkins安装


Jenkins默认的端口是8080,但是最好修改端口为18080,在点击Test Port看看端口是否可用




3. 登录Jenkins页面
登录http://localhost:18080来访问jenkins

注意:管理员密码在安装
jenkins目录中的 jenkins.err.log 中

4. 安装推荐插件
5. 创建管理员用户


6. 安装 nodejs 插件


7. 配置nodeJs


8. 构建项目


-
在任务中勾选
Provide Node& npm xxxx来启用 NodeJS(非常重要),并编写测试用的shell命令
-
添加构建步骤 (windows)

-
测试--下列 shell 脚本用于测试 git 和 node 是否能正常运行:

9 添加 git 码源 clone
-
在Repository URL 输入框中 添加 git 地址:地址为 http://xxxxxxxx 开头的地址
-
在
Credentials中添加凭证
10 添加打包的构建命令

11 添加 Publish Over SSH 插件
用于 远程复制代码(添加ssh 认证凭据

12 配置 远程地址及目录
用于 远程复制代码(添加ssh 认证凭据)

注意 Remote Directory 的路径
/usr/local/nginx/html/

13 构建复制至远程代码中


注意:Transfer Set
Source files 路径
dist/**/*

14 jenkins 设置时间
jenkins 安装后时间一直是utc时间,不太方便。
系统管理->脚本命令行 运行:
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

3 Jenkins 自动化部署SpringBoot项目
1 安装 JDK
-
检索可用包
yum search java|grep jdk -
安装
yum install java-1.8.0-openjdk
2 安装 maven 插件

由于 maven 默认的服务器在国外,这里下载会很慢,需要配置 maven 阿里镜像
3 配置 maven 镜像
进到【用户配置文件】目录中,寻找这个settings.xml这个文件
- 然后往下滑找到
<mirrors>这个标记,代表配置文件中的镜像设置 - 把下面的这段复制进去,然后点击Ctrl + s保存即可,这个镜像是阿里的国内源
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4 配置 Pre Steps
构建后 运行 命令
BUILD_ID=dontKillMe
source /etc/profile
nohup java -jar /usr/appl/dhcss/dhcss-user-8903/*.jar >mylog.log 2>&1 &

5 shell 脚本未执行问题
- 问题
jenkins 远程部署一台机器时,jenkins构建显示成功,但是查看服务日志却没有真正执行 sh run.sh 脚本,导致服务并没有启动
- 解决
只需要在命令最上方加上 source /etc/profile 就可以了
4 gitlab钩子自动构建项目
1 触发远程构建

2 下载插件Build Authorization Token Root

3 gitlab配置webhooks
将步骤1的触发远程构建地址,需要将身份验证令牌携带

4.遇见的报错
- 需配置本地网络允许访问
(管理员身份才能配置)

-
如果出现403错误:No valid crumb was included in the request
请在系统管理 –> Configure Global Security中调整设置:
取消“防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)”的勾选。

-
如果依旧出现403错误:Hook executed successfully but returned HTTP 403

- 创建URL 用test账号登录,从右上角点击用户,进入用户设置,点击Show API Token...

-
使用新的URL 根据这些内容,就可以创建一个这样的URL:
http://test:fe20f2d33760fbeec0a362dbbf59cd18@`your-jenkins.com/job/JobName/build? token=`iFdsjS24SDFqp53JGsd9k0Cm -
注意格式
http://(用户名):(Jenkins生成的Token)@(Jenkins的IP地址:端口号)/view/%E5%89%8D%E7%AB%AF/job/%E5%A4%A7%E8%B1%AA%E4%BA%91%E5%8A%9E%E5%85%AC-%E6%B5%8B%E8%AF%95/build?token= (身份验证令牌) -
提示