目录
一、Jenkins简介
二、其他软件使用及安装配置
三、Jenkins安装
四、使用Jenkins完成项目的持续集成,持续部署
( 一 ) Jenkins 初始化
( 二 ) Jenkins配置( Manage Jenkins )
( 三 ) Jenkins持续集成( CI )
官网链接: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
(7) 设置 passwd 文件,添加user, 如图所示
dzp = dzp
(8) 设置 authz 文件, 其中 [/] 表示所有权限, 如图所示:
[groups]
adminGp = dzp
[/]
@adminGp = rw
* = r
7、 mysql, redis等的安装视项目情况而定,具体安装详见之前的博客:
https://blog.csdn.net/DZP_dream/article/details/104670943
本次采用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容器
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
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 插件
1、在Eclipse中创建项目, 并将项目svn初始化导入
2、在Jenkins中新建任务并进行配置
(1) 名称与项目同名, 选择自由风格项目, 并创建
(2) 源码管理
选择Subversion, 输入Repository URL ( 注意:路径到项目名 )
svn://192.168.189.130/svn/project/Pear
添加 用户名和密码, 在前边进行选中用户名.操作顺序入下图所示:
(3) 构建
选择:调用顶层maven目标
maven版本选择 : myMaven
目标 : 进行 clean install
操作完成后可以手动进行构建. 构建过程中可以点击时间右侧箭头,查看控制台输出.
首次构建较慢, 下载项目所需jar包等操作. 直至出现Finished: SUCCESS, 说明构建成功.
(4) 构建触发器
触发远程构建 (例如,使用脚本) : DZP_TOKEN
使用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 的地址
(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代码, 便可实现自动构建.
(7) 钩子程序配置
在svn中仓库下,将/project/hooks下 post-commit.tmpl 进行复制并改名( 注意无后缀名 )
cd home/svn/project/hooks/
cp post-commit.tmpl post-commit
编辑 post-commit 文件, 在文件中添加curl代码.
修改 post-commit 文件权限.
chmod 755 post-commit
钩子程序设置完成.
(8) 进行项目提交svn, 测试钩子程序
项目提交svn, Jenkins自动开始构建项目, 访问tomcat服务器地址, 得到最新的提交的页面, 至此Jenkins 持续集成部署完成.
* 具体配置结合项目进行差异化设置.
敬请批评指正.