技能目标:
· 熟悉项目发布流程
· 熟悉Jenkins应用场景
4.1 案例分析
4.1.1 案例概述
在前面的课程中讲过Jenkins+Git基本使用,及Jenkins+Git实站一,更多强调是的使用和部署项目,那在本章将结合新项目来实现自动化构建及发布,并将项目打包成镜像上传到私有仓库,来实现一键发布和回滚等操作。
4.1.2 案例前置知识点
1.Jenkins介绍
Jenkins,原名Hudson,2011年改为现在的名字,它是一个开源的实现持续集成的软件工具。官方网站:https://jenkins.io/。
Jenkins 能实施监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式直观地展示项目构建的趋势和稳定性。
2.Maven介绍
Maven项目对象模型(Project Object Model,POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
3.Docker介绍
Docker 是一个的应用容器引擎,让开发者可以打包他们的应用及依赖包到任意一个可移植的镜像中,然后发布到任何流行的 机器上。
4.Ansible介绍
Ansible是一种自动化运维工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。
4.1.3 案例环境
1. 本案例环境
本章案例一共使用三台服务器,每台服务器但任不同的服务角色,最后通过配置Jenkins实现自动打包部署Java项目。本案例环境如表4-1所示。
表4-1 Git+Jenkins基本环境
2. 案例拓扑
本章案例拓扑图,如图4.1所示。
图4.1
如图4.1所示,开发者将开发完成的代码提交到Git代码版本仓库,Jenkins自动拉取编译构建,并自动部署到Web服务器。
3. 案例需求
开发者将开发完成的代码提交到Git代码版本仓库后,点击Jenkins任务按钮自动拉取代码编译构建,并自动部署到Web服务器,用户可访问最新项目版本。
4. 实现思路
1) 通过Git版本控制系统存放项目代码;
2) 使用Jenkins自动化部署项目;
3) 基于Docker引擎创建项目容器;
4) 使用Ansible集中管理Web服务器。
4.2 案例实施
4.2.1 准备Git仓库
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理, 是目前企业中使用最为广泛的代码版本管理系统。
1. 使用yum安装Git并配置
1)安装Git
[root@repository ~]# yum install git -y
2)创建Git用户并设置密码
[root@repository ~]# useradd git
[root@repository ~]# passwd git
2. 配置Jenkins主机免交互拉取Git仓库
在Jenkins主机上创建密钥对,将id_rsa.pub内容追加到Git服务器上的/home/git/.ssh/authorized_keys文件中。
[root@jenkins ~]# ssh-keygen # 一路回车即可
[root@jenkins ~]# ssh-copy-id [email protected]
测试免交互登录:
[root@jenkins ~]# ssh [email protected]
4.2.2 准备Jenkins环境
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于代码编译、部署、测试等工作。 Jenkins也是一个跨平台的集成工具,大多数主流的平台都支持,而且安装很简单,这里将以部署war包方式安装。
官网下载地址:,点击下载最后一个Generic Java Package(war),如图4.2所示。
图4.2
1)在安装前需要具备Java环境。
JDK环境的安装方式如下:
[root@jenkins ~]# tar zxf jdk-8u45-linux-x64.tar.gz
[root@jenkins ~]# mv jdk-8u45-linux-x64 /usr/local/jdk1.8
设置Java环境变量。配置如下:
[root@jenkins ~]# vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8
PATH=$PATH:$JAVA_HOME
export JAVA_HOME PATH
[root@jenkins ~]# source /etc/profile
2)在192.168.0.217主机安装Jenkins,下载Tomcat二进制包,将war包拷贝到webapps下即可。部署如下:
[root@jenkins ~]# wget
[root@jenkins ~]# wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
[root@jenkins ~]# tar zxf apache-tomcat-8.5.33.tar.gz
[root@jenkins ~]# mv apache-tomcat-8.5.33 /usr/local/tomcat-jenkins
[root@jenkins ~]# rm /usr/local/tomcat-jenkins/webapps/* -rf
[root@jenkins ~]# unzip jenkins.war -d /usr/local/tomcat-jenkins/webapps/ROOT
[root@jenkins ~]# cd /usr/local/tomcat-jenkins/bin/
[root@jenkins ~]#./startup.sh
[root@jenkins ~]# tail ../logs/catalina.out -f
...
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
a5f1f7c167fd4b8ab62f9497d32d97db
This may also be found at: /root/.jenkins/secrets/initialAdminPassword ...
日志中出现上述"a5f1f7c167fd4b8ab62f9497d32d97db"密码说明部署成功,用浏览器访问Jenkins:http://ip:8080,初次访问出现如图4.3所示页面。
图4.3
输入上面日志输出的密码:a5f1f7c167fd4b8ab62f9497d32d97db,或者从本机/root/.jenkins/secrets/initialAdminPassword文件获取,如图4.4所示。随后,点击"继续"按钮。
图4.4
3)点击"选择插件来安装