Jenkins 学习记录

创建 Git 仓库(可省略)

1、访问 https://gitee.com/projects/new
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提交记录参考:https://gitee.com/taopanfeng/jenkins-demo/commits/master

项目结构如下:
在这里插入图片描述

本地安装 Maven

2021-03-09 09:14:35

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 1、创建文件夹,并进入
mkdir -p /app ; cd /app

# 2、下载 maven 压缩包
yum -y install wget
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip

# 3、解压 zip,并删除原 zip 文件
yum -y install unzip
unzip apache-maven-3.6.3-bin.zip ; rm -rf apache-maven-3.6.3-bin.zip

# 4、修改解压后目录为 maven,进入目录
mv *maven* maven ; cd maven

# 5、创建文件夹,用于放 maven 本地 jar 包仓库
mkdir repository

# 6、修改 settings.xml 之前,备份一下
cd conf ; cp settings.xml settings.xml.bak

# 7、修改 settings.xml 文件
cat > /app/maven/conf/settings.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/app/maven/apache-maven-3.6.3/repository/</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>java8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
EOF

启动 jenkins 容器

1
2
3
4
5
6
7
8
docker run --name=jenkins01 \
-u root \
-p 8080:8080 -p 50000:50000 \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /app/maven/:/app/maven/ \
-v /app/docker/jenkins:/var/jenkins_home \
-d jenkins/jenkins:lts

初始化 jenkins

1
2
3
4
5
# 浏览器访问
http://192.168.1.1:8080/

# 查看密码
cat /app/docker/jenkins/secrets/initialAdminPassword

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看 jenkins 版本

在这里插入图片描述

修改插件配置

1、修改 default.json

1
2
3
4
5
6
7
# 进入目录,备份一下,再修改
# 官网 -> 清华
# 谷歌 -> 百度
cd /app/docker/jenkins/updates
cp default.json default.json.bak
sed -i 's/http:\/\/updates.jenkins-ci.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

2、访问 http://192.168.1.1:8080/pluginManager/advancedManage Jenkins -> Manage Plugins -> Advanced -> Update Site
在这里插入图片描述

3、修改 URLhttps://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述

4、重启 jenkins 服务,访问 http://192.168.1.1:8080/restart 即可。(jenkins 是 java 写的,支持 rest 风格 api 控制)
在这里插入图片描述

在这里插入图片描述

登录 jenkins

1、访问地址 http://192.168.1.1:8080/login
在这里插入图片描述

安装中文汉化插件

1、访问 http://192.168.1.1:8080/pluginManager/availableManage Jenkins -> Manage Plugins -> Available
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
2、重启 jenkins http://192.168.1.1:8080/restart
在这里插入图片描述

安装插件Credentials Binding

1、搜索Credentials Binding
在这里插入图片描述
2、下载完成,多了一个凭据
在这里插入图片描述

凭据五种类型

在这里插入图片描述
可用凭据有五种:

  • 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 密钥)

安装Git插件

1、搜索 Git
在这里插入图片描述

添加用户密码类型凭据

在这里插入图片描述
在这里插入图片描述

01:测试 git :用户密码凭据

1、创建我的第一个 jenkins 任务:01-freestyle-password-auth-test
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

查看 jenkins 工作空间,确实存在拉到的项目。

1
2
3
4
5
6
7
8
9
10
------------------------cd /app/docker/jenkins/
------------------------ll workspace/
总用量 0
drwxr-xr-x. 4 root root 74 3月 9 09:57 01-freestyle-password-auth-test
drwxr-xr-x. 2 root root 6 3月 9 09:57 01-freestyle-password-auth-test@tmp
------------------------ll workspace/01-freestyle-password-auth-test
总用量 8
-rw-r--r--. 1 root root 1242 3月 9 09:57 pom.xml
-rw-r--r--. 1 root root 128 3月 9 09:57 README.md
drwxr-xr-x. 3 root root 17 3月 9 09:57 src

测试SSH凭据(待整理)

配置容器 maven(非必须)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
------------------------docker exec -it jenkins01 bash
root@5857badccd1f:/# mvn -v
bash: mvn: command not found

root@5857badccd1f:/# echo "export MAVEN_HOME=/app/maven/" >> ~/.bashrc
root@5857badccd1f:/# echo "export PATH=$PATH:/app/maven/bin" >> ~/.bashrc
root@5857badccd1f:/# exit
exit

------------------------docker exec -it jenkins01 bash
root@5857badccd1f:/# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /app/maven
Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/local/openjdk-8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.6.1.el7.x86_64", arch: "amd64", family: "unix"

全局工具配置:maven,jdk(非必须)

1、访问:http://192.168.1.1:8080/configureTools/

2、配置
在这里插入图片描述

系统配置:maven 环境变量(推荐)

1、访问:http://192.168.1.1:8080/configure

2、配置
在这里插入图片描述

02:测试一个 git + maven

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

安装 gitee 插件

在这里插入图片描述

03:测试 git + maven + docker

在代码根路径添加 Dockerfile 文件。

1
2
3
4
5
6
7
FROM adoptopenjdk/openjdk8:centos

LABEL name=TaoPanfeng

COPY target/*.jar /app.jar

CMD java -jar /app.jar

在这里插入图片描述

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
echo "===========mvn============="
mvn clean package

echo "===========build============="
docker build -t jenkins-demo .

echo "===========rm============="
docker rm -f app01

echo "===========run============="
docker run --name app01 -p 18019:18019 -d jenkins-demo

echo "===========rmi============="
# 删除多于的镜像,如果没有镜像要删除,直接退出
remove_image_ids=$(docker images | grep none | awk '{print $3}')
[ -z "${remove_image_ids}" ] && exit
docker rmi -f ${remove_image_ids}

在这里插入图片描述

配置 gitee webhooks(记得要安装上面的 gitee 插件):
在这里插入图片描述

购买服务器:购买(快云科技)VPS(香港服务器)进行翻墙
在这里插入图片描述
此时就配送成功。
1、本地提交代码,push 到 远程仓库(gitee 仓库),触发 gitee webhooks,此时会给你的 Jenkins 地址打一个请求
2、Jenkins 接收到请求,开始构建
3、拉代码,执行 mvn 打包,根据 Dockerfile 制作镜像,删除存在的容器,运行容器,删除多于无用的本地镜像
在这里插入图片描述

关于内网穿透

就是你把你的 本地服务启动,通过配置,暴露一个公网地址,其他人就可以访问你的服务了。

内网穿透:Ngrok(失败)

失败:说启动的人过多,不能再使用免费的了。

https://www.ngrok.cc/
在这里插入图片描述

内网穿透:花生壳(失败)

失败:不可以 http,或 https
在这里插入图片描述

安装 pipeline 流水线 插件

1、搜索 pipeline ,再搜索 A suite,勾选,直接安装
注意:安装会有点久,如果安装失败,就重新搜索,重新安装。
我就是第一次安装,失败好多。第二次又安装,第三次安装,彻底成功的。
在这里插入图片描述