容器化部署Jenkins实战

#############################################

安装docker====https://www.cnblogs.com/poloyy/p/13921450.html

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

 

前言

虚拟机安装 centos 7.x 教程:https://www.cnblogs.com/poloyy/p/13921798.html

 

OS 安装环境要求

  • 要安装 Docker Engine,需要 CentOS 7 的维护版本,不支持或未测试存档版本(一句话:需要正常迭代版本的 Centos 7 系统,其他系统都不行)
  • 必须启用 centos-extras 存储库,该存储库默认情况下处于启用状态,但是如果已禁用它,则需要重新启用它
  • 建议使用 overlay2 存储驱动程序

 

重点记下大佬说的话

  • CentOS 6 因内核太旧,即使支持安装 docker,但会有各种问题,不建议安装
  • CentOS 7 的 extras 源虽然可以安装 docker,但包比较旧,建议从官方源或镜像源站点下载安装 docker
  • CentOS 8 有新技术 podman 代替 docker
  • 因此建议在 CentOS 7 上安装 docker

 

卸载旧版本 Docker

 

 

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

如果出现下图就可以了

容器化部署Jenkins实战_第1张图片

 

注意

  •  /var/lib/docker/ 下的内容(包括 images,containers,volumes,networks)被保留
  • Docker Engine 软件包现在称为 docker-ce 

 

安装 Docker

有两种方式,可供选择

  • 从 Docker 的 repositories 安装,即 yum 的方式(推荐)
  • 手动下载并安装 rpm 软件包,需要完全手动管理升级版本

 

通过 yum 的方式安装

配置 Docker Repository

在主机上首次安装 Docker Engine之前,需要设置 Docker Repository,之后可以从 Repository 安装和更新 Docker

 

 

# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息,国内 Repository 更加稳定 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新 sudo yum makecache fast

 

安装最新版本的 Docker Engine 和 Container

 

 

sudo yum install docker-ce docker-ce-cli containerd.io

注意

  • 如果提示接受GPG密钥,请验证指纹是否与 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 匹配,如果是,可接受
  • 安装成功后不代表 Docker 已成功,且 Docker 组虽已创建,但没有用户添加到该组

 

安装指定版本的 Docker Engine

查找 docker-ce 的版本列表

 

 

sudo yum list docker-ce --showduplicates | sort -r

容器化部署Jenkins实战_第2张图片

 

安装指定版本的语法格式

 

 

sudo yum install docker-ce- docker-ce-cli- containerd.io

 

来个栗子

 

 

sudo yum install docker-ce-19.03.13-3.el7 docker-ce-cli-19.03.13-3.el7 containerd.io

注意: 3:  是不用加的哈

 

启动 Docker

 

 

sudo systemctl start docker

 

验证 Docker Engine 是否已正确安装

通过运行 hello-world 映像来验证

 

 

sudo docker run hello-world

容器化部署Jenkins实战_第3张图片

 

注意

建议使用 sudo 运行上面的命令,以便非特权用户运行 Docker 命令以及其他可选配置 步骤

 

yum 的安装方式二

可能官网的yum源太慢,下面使用阿里云的Yum源进行安装

 

 

rm -rf /etc/yum.repos.d/* wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum clean all sudo yum install docker-ce docker-ce-cli containerd.io systemctl enable --now docker

 

更新 Docker Engine

直接指定最新版本的方式去安装即可

 

下载 rpm 包的安装方式

下载地址

  • 官方rpm包下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
  • 阿里镜像下载地址:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/

 

安装 rpm 包

将 下好的 rpm 包放到 Linux 任意目录下

 

 

sudo yum install /root/package.rpm

 

启动 Docker

 

 

sudo systemctl start docker

 

更新 Docker Engine

  1. 下载对应的 rpm 包
  2. 通过 yum -y upgrade package.rpm 去更新

 

配置 Docker 镜像加速

直接看下一篇文章:https://www.cnblogs.com/poloyy/p/13922074.html

 

卸载 Docker Engine

 

 

sudo yum remove docker-ce docker-ce-cli containerd.io

备注:主机上的 Images、containers、volumes、自定义配置文件不会被删除

 

若要删除执行下面命令

 

 

sudo rm -rf /var/lib/docker

 

 

__EOF__

##############################################

部署Jenkins====https://www.jb51.net/article/192077.htm

使用码云搭建Git代码存储仓库

https://gitee.com/login

  • 使用码云创建私有私有git仓库
  • 将本地springboot项目上传到git仓库中

基于Docker安装Jenkins环境

1.使用docker 安装jenkins

1

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

2.访问jenkins地址 8080

容器化部署Jenkins实战_第4张图片

注意:第一次启动的时候正在加载jenkins大概会等待3-10分钟。

3.解锁jenkins

容器化部署Jenkins实战_第5张图片

容器化部署Jenkins实战_第6张图片

1

2

3

docker exec -it 7f485bd95c3b /bin/bash 进入jenkins容器

 

cat /var/jenkins_home/secrets/initialAdminPassword

容器化部署Jenkins实战_第7张图片

大概需要等待3-10分钟

创建新的用户

容器化部署Jenkins实战_第8张图片

容器化部署Jenkins实战_第9张图片

Jenkins全局工具配置

进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址

JDK环境安装

容器化部署Jenkins实战_第10张图片

Maven环境安装

容器化部署Jenkins实战_第11张图片

安装Jenkins对应Maven插件

找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本

插件名称 Maven Integration

容器化部署Jenkins实战_第12张图片

容器化部署Jenkins实战_第13张图片

Jenkins实现Springboot项目自动部署新建一个发布任务

容器化部署Jenkins实战_第14张图片

配置任务git账号密码

容器化部署Jenkins实战_第15张图片

3.项目打包

容器化部署Jenkins实战_第16张图片

1

clean install

点击立即构建

第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包

Jenkins启动成功之后执行shll脚本

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

#!/bin/bash

#服务名称

SERVER_NAME=springboot

# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行

JAR_NAME=springboot-0.0.1-SNAPSHOT

# 源jar路径

#/usr/local/jenkins_home/workspace--->jenkins 工作目录

#demo 项目目录

#target 打包生成jar包的目录

JAR_PATH=/var/jenkins_home/workspace/springboot/target

# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建

JAR_WORK_PATH=/var/jenkins_home/workspace/springboot/target

  

echo "查询进程id-->$SERVER_NAME"

PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`

echo "得到进程ID:$PID"

echo "结束进程"

for id in $PID

do

kill -9 $id

echo "killed $id"

done

echo "结束进程完成"

  

#复制jar包到执行目录

echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"

cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH

echo "复制jar包完成"

cd $JAR_WORK_PATH

#修改文件权限

chmod 755 $JAR_NAME.jar

Nohub java -jar $JAR_NAME.jar

加nohub 指的是后台运行,或者使用nohub &

容器映射8081端口

1. 重启容器

1

systemctl restart docker

2. 清空未运行的容器

1

docker rm $(sudo docker ps -a -q)

1

docker run -p 8080:8080  -p 8081:8081  -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

到此这篇关于基于Docker+Jenkins实现自动化部署的文章就介绍到这了,更多相关Docker+Jenkins实现自动化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

#############################################

配置Jenkins====https://www.cnblogs.com/poloyy/p/13955641.html

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

 

搭建 Jenkins 容器

就是实战第一篇文章:https://www.cnblogs.com/poloyy/p/13954637.html

 

Jenkins 初始化流程

访问 Jenkins

查看本机 IP

 

 

ifconfig

 

查看容器运行端口

 

 

docker ps

我的是用主机 80 端口映射到容器的 8080 端口

 

浏览器访问 Jenkins

 

 

http://ip:80

 

查看管理员密码

进入到页面

容器化部署Jenkins实战_第17张图片

 

查看密码有两种方式

 

第一种:查看容器日志

 

 

docker logs jenkins1

容器化部署Jenkins实战_第18张图片

打码那一行就是密码哦

 

第二种: 去文件夹查看

 

 

cat /var/jenkins_node/secrets/initialAdminPassword

  • 因为我创建 Jenkins 容器时,将主机的 /var/jenkins_node 目录映射了容器的 /var/jenkins_home 目录
  • 所以可以直接在主机查到管理员密码,而无需进入容器再查看

 

初始化流程

容器化部署Jenkins实战_第19张图片

 

创建管理员用户

自己配啥记住就行了,没啥特别要求

容器化部署Jenkins实战_第20张图片

 

实例配置

默认会给一个地址的,不改也可以

容器化部署Jenkins实战_第21张图片

 

配置完成

容器化部署Jenkins实战_第22张图片

 

进入主界面

容器化部署Jenkins实战_第23张图片

 

下载插件

需要的插件 gitlab、gitlab hook、allure

容器化部署Jenkins实战_第24张图片

容器化部署Jenkins实战_第25张图片

容器化部署Jenkins实战_第26张图片

容器化部署Jenkins实战_第27张图片

 

在它安装完后,自己重启 Jenkins 容器

 

 

docker restart jenkins1

 

将插件源切换国内源

直接看这个教程:https://www.cnblogs.com/poloyy/p/12785401.html

 

Jenkins 汉化

直接看这个教程:https://www.cnblogs.com/poloyy/p/13955209.html

 

Jenkins 全局工具设置

容器化部署Jenkins实战_第28张图片

 

配置 JDK

容器化部署Jenkins实战_第29张图片

 

配置 Git

容器化部署Jenkins实战_第30张图片

 

配置 allure

容器化部署Jenkins实战_第31张图片

应用保存!即可!

 

Jenkins 邮件功能测试

容器化部署Jenkins实战_第32张图片

 

配置 Extended E-mail Notification

 

自定义电子邮=件通知的默认收件人列表

容器化部署Jenkins实战_第33张图片

  • 可以在项目中使用 $DEFAULT_RECIPIENTS ,来包含此默认收件人列表(下面创建项目时讲到这个变量)
  • 若要向某人抄送或密件抄送,不是将其放在“收件人”列表中,请在电子邮件地址之前添加 cc: 或密件抄送 bcc: (例如:cc:[email protected],bcc:[email protected]

 

配置邮箱通知

 

使用 Jenkins 实现自动化测试

将项目放到主机映射到容器的目录下

通过  xftp 将项目上传到主机

这是我自己的一个 pytest 项目

 

验证项目能正常跑

进入容器内,在项目文件夹爱内执行 pytest 命令

 有 28 个测试用例都跑通了哦

 

Jenkins 创建任务工程

新建任务

容器化部署Jenkins实战_第34张图片

容器化部署Jenkins实战_第35张图片

 

Jenkins 任务配置构建后操作

在完成系统设置后,还需要给需要构建的项目进行邮件配置

容器化部署Jenkins实战_第36张图片

容器化部署Jenkins实战_第37张图片

容器化部署Jenkins实战_第38张图片

重点:这里就有 $DEFAULT_RECIPIENTS ,上面也有讲到这个环境变量,默认收件人列表,如果需要添加新的收件邮件,需要用 , 隔开

 

容器化部署Jenkins实战_第39张图片

 

邮件模板

直接复制粘贴到内容框就行

 

 

${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志

本邮件由系统自动发出,无需回复!
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
构建结果 - ${BUILD_STATUS}

构建信息

失败用例


$FAILED_TESTS

最近提交(#$SVN_REVISION)


    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: ${PROJECT_URL}changes

 

容器化部署Jenkins实战_第40张图片

容器化部署Jenkins实战_第41张图片

容器化部署Jenkins实战_第42张图片

容器化部署Jenkins实战_第43张图片

容器化部署Jenkins实战_第44张图片

 

最后保存

 

进行第一次构建

容器化部署Jenkins实战_第45张图片

 

查看控制台输出

容器化部署Jenkins实战_第46张图片

容器化部署Jenkins实战_第47张图片

 

邮件发送成功!!

 

Jenkins 任务配置构建操作

主要两个任务

  1. 配置 pytest 命令
  2. 生成 allure 报告

 

配置 pytest 命令

容器化部署Jenkins实战_第48张图片

容器化部署Jenkins实战_第49张图片

 

 

#!/bin/bash cd /var/jenkins_home/waimai pytest -s -q --alluredir=${WORKSPACE}/allure-reports --clean-alluredir exit 0

 

生成 allure 报告

容器化部署Jenkins实战_第50张图片

容器化部署Jenkins实战_第51张图片

这张图是重点哦

 

保存!!就成功了!

 

进行第二次构建

容器化部署Jenkins实战_第52张图片

 

查看 allure 报告

容器化部署Jenkins实战_第53张图片

 

 

################################################

CICD等Jenkins实战
https://blog.csdn.net/wzh1070/article/details/80853277
https://blog.51cto.com/lizhenliang/2159817
https://blog.csdn.net/jackyzhousales/article/details/81713004
https://www.cnblogs.com/xyou/p/10674774.html

容器化部署Jenkins
安装docker====https://www.cnblogs.com/poloyy/p/13921450.html
部署Jenkins====https://www.jb51.net/article/192077.htm
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

7ce7f30f2eac4e1b82fc49b15da09298

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************
docker exec -it 1e293dd77dde /bin/bash

问题:

jenkins配置https://www.cnblogs.com/poloyy/p/13955641.html
qq邮箱密码 iuyhzsdxeeeijhfd
解决邮件发送错误:503 Error: need EHLO and AUTH first
https://blog.csdn.net/lingfeian/article/details/96731620
501 mail from address must be same as authorization user
https://blog.csdn.net/qq_33801641/article/details/107195879

你可能感兴趣的:(实战,Jenkins,docker)