Jenkins 的容器化 部署

一、Jenkins 容器化 部署

1.1 部署环境说明

IP地址 主机名 网络模式 系统 服务
172.16.91.121 master 桥接 centos7.5 jenkins、docker
172.16.91.222 harbor 桥接 centos7.5 harbor、sonar、docker
13868689-f148fcb7322ba540
centos版本

1.2 版本说明

服务 版本
jenkins 2.150.2
docker 18.06.1-ce

1.3 准备Jenkins依赖的全局工具

为了验证Jenkins是否可以同时支持不同版本的全局工具,添加了mvn3.6,3.3.9, 以及jdk的不同版本。(可以根据自己的需要进行下载)

13868689-4f7ad0579d0fac93
全局工具

通过下面的连接,可以进行下载
https://pan.baidu.com/s/1OcsUcWVOe9oxru9tXPJFNA
如果jenkins的版本不合适的话,可以通过下面的地址,下载合适的war包
http://mirrors.jenkins.io/war-stable/

1.4 容器化部署sonar(非必须)

为了进行语法规则测试,才安装的sonar,
根据自己的实际情况,进行安装。
可以参考下面的链接,进行容器化部署安装:
https://www.jianshu.com/p/d36a12105e9d

1.5 容器化部署harbor(非必须)

可以参考其他博客。

1.6 构建jenkins所需要的Dockerfile

13868689-b114b2d5489adfbe
Dockerfile

构建镜像:

docker build -t jenkins .

1.7 编写启动脚本

(这里的脚本是略有问题,最下面有新的)

13868689-cf61bafc7217b8b7
启动jenkins脚本

为什么这里用了很多挂载呢?

  1. 如果将依赖的工具,全局添加到Dockerfile的话,将来不好维护。每次变化,都需要重新打镜像,势必镜像会越来越大。
  2. 将jenkins的主目录,挂载出来了,可以提高数据的可靠性,方便维护,使用。

使用环境变量的说明

  1. JENKINS_HOME, 必须有这个。不然的话,第一次重启的时候,需要重新设置, 不会用挂载出来的jenkins_home
  2. JAVA_HOME, 因为启动jenkins服务需要使用java命令,当然你可以使用带有java环境的基础镜像。

13868689-97f7bfdc11f1a5da
Dockerfile, 启动脚本

13868689-dd57a8fd0d0da3fb
挂载路径

下面,可以启动jenkins服务。
登陆到页面172.16.91.121:8888/jenkins,按照提示,进行就可以了。

1.8 主要配置文件说明

a. credentials.xml

13868689-b154dcf1cfe684c4
credentials.xml

b. hudson.tasks.Maven.xml
13868689-454d5facf6c7266d
hudson.tasks.Maven.xml.xml

c. config.xml
13868689-815156345c17e683
config.xml

二、设置Jenkins

1. 安装插件

根据自己的需要,安装插件。
系统管理-->插件管理
我这里安装maven,docker,git,github,sonarquber
遇到的问题,插件选项不可用

13868689-ce470160437081b9
插件问题

13868689-c1d9e2abeb1d2f51
解决措施

2. 安装插件的方式

方式一: 参考下面的链接
https://www.jianshu.com/p/3b5ebe85c034
方式二: 参考下面的链接
http://updates.jenkins-ci.org/download/plugins/
下载好插件后,如docker.hpi, 然后,直接copy到plugins目录下,重启jenkins服务就可以了

3. 在系统设置里 配置sonar

13868689-8f5ebe497a6555fd
配置sonarqube servers

13868689-10583ed7574f4be0
在sonar里获取server authentication token

4. 在全局工具里配置

4.1 配置Maven Configuration

13868689-34ce0bbee97d5e9d
配置settings.xml

4.2 配置JDK

13868689-784ca9f9c265e630
配置jdk

4.3 配置git

13868689-aabf9a344d8dea7e
配置git

4.4 配置SonarQube Scanner

13868689-01b2083e3697e627
配置SonarQube Scanner

4.5 配置Maven

13868689-3661e3f0ad15d077
配置maven

4.6 配置docker

13868689-1b38f09fd5c51843
配置docker

二、Jenkins测试

测试的功能包括: 代码托管、编译、构建镜像并上传到私有仓库、语法规则校验

2.1 代码托管

13868689-d2adaccfa69afee3
代码托管

2.2 maven打包

13868689-ed64c268acd2435f
maven

2.3 构建镜像

13868689-97da28c4a37bbae6
构建镜像1

13868689-93126c42e8c0f566
构建镜像2

2.4 语法规则校验

13868689-3152e6efd085da14
语法规则校验

保存后,立即构建,就可以了。

出问题的话,可以从打印日志里,发现问题。
还可以发现运行的命令

13868689-def35e91ca904ab9
maven命令

13868689-b63d55c238b93e29
构建镜像命令

13868689-1058099f974f26b5
push镜像到harbor命令

13868689-26a97aa8edc1124e
语法规则校验命令

可见,可以简单的认为,jenkins,就是将你要做的事情,串行执行,功能都是通过添加插件实现的。

备注:

突然发现,启动脚本中,maven仓库的挂载,忘记修改了。

13868689-d728bb473b990138
jenkins启动脚本

如果这篇文章对你有帮助,请点个赞/喜欢,让我知道我的写作是有价值的,感谢。

猜你喜欢

转载自blog.csdn.net/weixin_34413357/article/details/86833257