Centos7中通过Docker部署Jenkins,并完成持续集成

目录

一、Jenkins简介

二、其他软件使用及安装配置

三、Jenkins安装

四、使用Jenkins完成项目的持续集成,持续部署

( 一 ) Jenkins 初始化

( 二 ) Jenkins配置( Manage Jenkins )

( 三 ) Jenkins持续集成( CI )


 

一、Jenkins简介

官网链接:https://jenkins.io/zh/

用户手册:https://jenkins.io/zh/doc/

Jenkins下载:https://jenkins.io/download/

Jenkins 是一款开源 CI&CD 软件,是基于Java开发的一种持续集成工具,用于自动化各种任务,包括构建、测试和部署软件。

Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

二、其他软件使用及安装配置

1、系统及软件版本使用情况

名称 版本 安装方法
操作系统 CentOS 7 ISO镜像安装
jdk 1.8.0_201 CentOS安装
maven 3.6.3 CentOS安装
svn 1.7.14 CentOS安装
Jenkins docker.io/jenkins/jenkins:lts Docker 安装
Tomcat 7 Docker 安装

本次使用的版本控制工具为 svn, Web 应用服务器为 Tomcat 7 , 

2、jdk 安装

下载并安装jdk, ( 安装位置视个人情况而定,对应修改JAVA_HOME )

设置环境变量:JAVA_HOME =  /opt/software/jdk1.8.0_201

3、maven 安装

下载并安装maven, ( 安装位置视个人情况而定,对应修改MAVEN_HOME)

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

设置环境变量:MAVEN_HOME = /opt/software/apache-maven-3.6.3

4、设置环境变量的方法为:

打开编辑profile文件

vim /etc/profile

在文件的末尾添加jdk和maven的安装位置

export MAVEN_HOME =/opt/software/apache-maven-3.6.3                                                        
export PATH=$PATH:${MAVEN_HOME}/bin

export JAVA_HOME=/opt/software/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

结束编辑并保存文件

:wq

执行文件

source /etc/profile

修改文件后,最好重启Docker.

5、tomcat的配置与用户的添加

 (1) 修改 server.xml ,添加 URIEncoding="UTF-8", 设置编码集

(2) 修改 tomcat-users.xml, 添加用户





6、svn的安装配置与用户的添加

(1) 安装svn

yum install subversion 

(2) 检查是否安装成功

svnserve --version

(3) 创建仓库目录创建名为project的仓库

svnadmin create /home/svn/project/

 (4) 启动svn服务

svnserve -d -r /home/svn/project/

(5) 查看启动服务

netstat -tnlp |grep 3690

(6) 进入仓库 conf 设置 svnserve.conf 文件 ( 注意 : 行首不能有空格 ), 如图所示

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

Centos7中通过Docker部署Jenkins,并完成持续集成_第1张图片

(7) 设置 passwd 文件,添加user, 如图所示

dzp = dzp

Centos7中通过Docker部署Jenkins,并完成持续集成_第2张图片

(8) 设置 authz 文件, 其中 [/] 表示所有权限, 如图所示:

[groups]
adminGp = dzp
    
[/]
@adminGp = rw
* = r

Centos7中通过Docker部署Jenkins,并完成持续集成_第3张图片

7、 mysql, redis等的安装视项目情况而定,具体安装详见之前的博客:

https://blog.csdn.net/DZP_dream/article/details/104670943

三、Jenkins安装

本次采用Docker安装Jenkins容器的方式

1、拉取jenkins镜像

docker pull jenkins/jenkins:lts

2、查看已经安装的jenkins镜像 

docker images

3、查看是否是最新版 

docker inspect ba607c18aeb7

4、创建一个jenkins目录 

mkdir /home/jenkins_home

5、启动一个jenkins容器 

docker run -d --restart=always -p 8060:8080 -v /home/jenkins_01:/home/jenkins_01 -v /opt/software/jdk1.8.0_201:/opt/software/jdk1.8.0_201 -v /opt/software/apache-maven-3.6.3:/opt/software/apache-maven-3.6.3 --name jenkins_01 jenkins/jenkins:lts

6、查看jenkins服务 

docker ps | grep jenkins

7、进入容器内部

docker exec -it jenkins_01 bash

8、创建并启动成功,在可视化界面出现端口号为8060的jenkins容器

四、使用Jenkins完成项目的持续集成,持续部署

( 一 ) Jenkins 初始化

1、访问 http://IP地址:8060,跳转至解锁页面

2、执行以下命令,得到密码并粘贴过去,进行解锁, 并继续

[root@local ~]# docker exec -it jenkins_01 bash
jenkins@daa92a050df6:/$ cat /var/jenkins_home/secrets/initialAdminPassword
008fc9166eca49d0a8da7f6fe06c7cb7
jenkins@daa92a050df6:/$ 

3、自定义Jenkins, 插件安装,选择安装推荐的插件,进行安装

4、安装完成后,进入创建用户界面, 可以使用admin账户继续, 也可以创建用户.

5、开始使用Jenkins

( 二 ) Jenkins配置( Manage Jenkins )

1、全局安全配置(Configure Global Security)

为防止忘记用户名密码, 所以勾选 允许用户注册. 勾选 任何用户可以做任何事,点击保存,如图所示:

2、全局工具配置(Global Tool Configuration)

Maven 配置, 修改默认 settings 提供和默认全局 settings 提供, 选择文件系统中的settings文件,并输入文件路径:

/opt/software/apache-maven-3.6.3/conf/settings.xml

JDK 安装, 进行新增JDK, 取消勾选自动安装, 进行命名, 并输入JAVA_HOME的路径:

/opt/software/jdk1.8.0_201

Maven 安装, 进行新增Maven, 取消勾选自动安装, 进行命名, 并输入MAVEN_HOME的路径:

/opt/software/apache-maven-3.6.3

修改完成并保存, 如下图所示:

3、插件管理

搜索并安装插件:  Deploy to container Plugin 和 Subversion Plug-in 插件

Centos7中通过Docker部署Jenkins,并完成持续集成_第4张图片

( 三 ) Jenkins持续集成( CI )

1、在Eclipse中创建项目, 并将项目svn初始化导入

Centos7中通过Docker部署Jenkins,并完成持续集成_第5张图片

Centos7中通过Docker部署Jenkins,并完成持续集成_第6张图片

Centos7中通过Docker部署Jenkins,并完成持续集成_第7张图片

2、在Jenkins中新建任务并进行配置

(1) 名称与项目同名, 选择自由风格项目, 并创建

Centos7中通过Docker部署Jenkins,并完成持续集成_第8张图片

(2) 源码管理

选择Subversion, 输入Repository URL  ( 注意:路径到项目名 )

svn://192.168.189.130/svn/project/Pear 

添加 用户名和密码, 在前边进行选中用户名.操作顺序入下图所示:

Centos7中通过Docker部署Jenkins,并完成持续集成_第9张图片

(3) 构建

选择:调用顶层maven目标

 maven版本选择 : myMaven

目标 : 进行 clean install

Centos7中通过Docker部署Jenkins,并完成持续集成_第10张图片

操作完成后可以手动进行构建.  构建过程中可以点击时间右侧箭头,查看控制台输出.

Centos7中通过Docker部署Jenkins,并完成持续集成_第11张图片

Centos7中通过Docker部署Jenkins,并完成持续集成_第12张图片

首次构建较慢, 下载项目所需jar包等操作. 直至出现Finished: SUCCESS, 说明构建成功. 

Centos7中通过Docker部署Jenkins,并完成持续集成_第13张图片

(4) 构建触发器

 触发远程构建 (例如,使用脚本) : DZP_TOKEN

Centos7中通过Docker部署Jenkins,并完成持续集成_第14张图片

使用JENKINS_URL/job/apple/build?token=TOKEN_NAME, 拼接后即

    http://192.168.189.130:8060/job/pear/build?token=DZP_TOKEN

可以在浏览器访问路径, 便可以自动进行构建, 并查看控制台输出.

 访问tomcat 地址:http://192.168.189.130:8090/pear/, 说明成功

(5) 构建后操作

 选择 : deploy war/ear to a container

war files : target/Pear-0.0.1-SNAPSHOT.war

context path : pear (便于通过tomcat访问)

containers :选择 tomcat7, 并填写之前设置的 用户名 密码

                    url : 填写 tomcat 的地址

Centos7中通过Docker部署Jenkins,并完成持续集成_第15张图片

(6) 钩子程序拼接

Linux 的 curl 命令用来发送HTTP请求:

-X 参数: 指定请求方式

-v 参数: 显示响应结果

-u 参数: 携带用户名/密码

-H 参数: 携带请求消息头信息

格式为 : curl -X post -v -u [Jenkins用户名]:[Jenkins密码] -H "请求消息头"  http://[Jenkins服务器地址]:[Jenkins服务器端口号]/job/[Jenkins项目名]/build?token=[身份验证令牌]

curl -X post -v -u admin:008fc9166eca49d0a8da7f6fe06c7cb7 http://192.168.189.130:8060/job/pear/build?token=DZP_TOKEN

    在命令行中运行以上curl代码, 便可实现自动构建.

Centos7中通过Docker部署Jenkins,并完成持续集成_第16张图片

(7) 钩子程序配置

在svn中仓库下,将/project/hooks下 post-commit.tmpl 进行复制并改名( 注意无后缀名 )

cd home/svn/project/hooks/
cp post-commit.tmpl post-commit

编辑 post-commit 文件, 在文件中添加curl代码.

Centos7中通过Docker部署Jenkins,并完成持续集成_第17张图片

修改 post-commit 文件权限.

chmod 755 post-commit

钩子程序设置完成.

(8) 进行项目提交svn, 测试钩子程序

项目提交svn, Jenkins自动开始构建项目, 访问tomcat服务器地址, 得到最新的提交的页面, 至此Jenkins 持续集成部署完成.

Centos7中通过Docker部署Jenkins,并完成持续集成_第18张图片

 

* 具体配置结合项目进行差异化设置.

 

敬请批评指正.

 

 

 


 

 

你可能感兴趣的:(工具技术)