docker+jenkins+tomcat 自动更新代码部署测试环境

写在前面:此文记录只为本公司测试环境搭建,可作参考,实际以公司项目为准。java

公司环境:Debian系统环境mysql

  服务器启动:tomcat +Mysql+jdk1.8.0_202 +  maven + warlinux

  项目存放:svnweb

  容器部署:dockersql

  集成:Jenkinsdocker

建立Jenkinsci用户,并加入sudo组apache

  useradd -m jenkinsciubuntu

  password jenkinsci ******浏览器

  adduser jenkinsci sudotomcat

安装Mysql

这里采用的是docker镜像方式安装

准备工做:建立MySQL容器将使用的数据绑定目录

  mkdir -p mysql57/var/lib/mysql

接取镜像:

  sudo docker pull mysql:5.7.25

运行MySQL docker:

  sudo docker run -d -p 3306:3306 --name mysql \

  -e "TZ = Asia\Shanghai" \

  -e "MySQL_ROOT_PASSWORD = ****** " \

  -v $HOME/mysql57/var/lib/mysql :  /var/lib/mysql \

  mysql:5.7.25

-e 向容器传递环境变量TZ,设置时区,前提有默认时区( dpkg-reconfigure tzdata 选择时区设置 )

-e 令root用户的初始口令为******

MySQL docker启停命令:

  sudo docker mysql start

  sudo docker mysql stop

安装JDK8

 在宿主机Debian系统中安装JDK8

 #先加载安装包 software-properties-common以便使用add-apt-repository命令

  sudo apt-get install software-properties-common 

  sudo add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"

  sudo apt-get update

  sudo apt-get install oracle-java8-installer

#确认一下安装是否成功

  javac -version

安装Tomcat

步骤:

1. 建立tomcat组

2. 建立tomcat用户,属于tomcat组

3. 下载和安装Tomcat8,安装目录 /opt/tomcat,命令:

   sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

4. 更新/opt/tomcat访问许可

5. 修改Tomcat8配置:

  Tomcat端口 7080, 7443, 7005, 7009(自行配置未占用可用端口)

   tomcat-users.xml用户配置,内容以下:

  <role rolename="tomcat"/>   

  <role rolename="admin-gui"/>

    <role rolename="manager-gui"/>   

  <role rolename="manager-script"/>   

  <user username="tomcat" password="******"       roles="tomcat,admin-gui,manager-gui,manager-script"/>

  运行Tomcat:

  sudo /opt/tomcat/bin/startup.sh

  中止Tomcat:

   sudo /opt/tomcat/bin/shutdown.sh

 安装Jenkins

 新建子目录:

   mkdir -p jenkins/.m2

  mkdir -p jenkins/jenkins_home

以Docker镜像方式安装Jenkins,下载镜像并运行:

  sudo docker pull jenkins/jenkins:lts

  sudo docker run -u root -d -p 6666:8888 -p 50000:50000 --name jenkins \  #6666,8888分别为容器内外映射端口号

  -e "TZ=Asia/Shanghai" \   

  -v $HOME/jenkins/jenkins_home:/var/jenkins_home \   

  -v $HOME/jenkins/.m2:/root/.m2 \   

  -v /var/run/docker.sock:/var/run/docker.sock \   

  jenkins/jenkins:lts

说明:命令带了3个 -v 参数,这是绑定加载,把容器内的目录映射到宿主机目录,以便容器删除时数据可保留。

参数 -e 向容器传递了环境变量TZ,以设置时区。

访问jenkins容器的命令:

  sudo docker exec -it jenkins bash

查看jenkins容器日志:

  sudo docker logs jenkins

 在日志中查找自动生成的初始管理员密码,复制出来:

 

安装后设置: 打开浏览器,

访问 http://持续集成服务器IP:6666

在首页输入初始管理员密码,继续

下一步安装插件,简单起见就安装建议插件 (Install suggested plugins)

而后建立管理帐号 admin/******。

配置Jenkins

Jenkins的编译环境配置主要是Oracle JDK 8 (update 202)和Maven 3.6.0。

安装更多插件

在浏览器上打开Manage Jenkins - Manage Jenkins,切换到Available标签,

安装以下插件:

Ø Blue Ocean插件

Ø warning-ng插件,插件的显示名称为Warnings Next Generation Plugin

Ø Localization: Chinese (Simplified) 插件

Ø Pipeline Utility Steps插件

Ø Deploy to container插件

插件安装后重启Jenkins。

工具配置

准备:复制Maven设置文件 把Maven全局设置文件复制到/home/jenkinsci/jenkins/.m2 目录。(settings.xml文件)

准备:复制JDK安装文件 把JDK安装文件jdk-8u202-linux-x64.tar.gz复制到/home/jenkinsci/jenkins/jenkins_home 目录。

全局工具配置 (Global Tool Configuration)

在浏览器上打开Manage Jenkins – Global Tool Configuration:

Maven配置

默认全局 settings 提供: 文件系统中的全局 settings 文件

文件路径: /root/.m2

JDK JDK installations,

Name: jdk8

勾选Install automatically

再Add Installer - Extract *.zip/*.tar.gz

Download URL for binary archive: file:/var/jenkins_home/jdk-8u202-linux-x64.tar.gz

Subdirectory of extracted archive: jdk1.8.0_202

特别注意:Subdirectory 内容必填,不然编译 时PATH的JDK/bin 路径会错,以至找不到java程序!

Maven

Maven installations,

Name: Maven 3.6.0 勾选Install automatically,并在Install from Apache下拉框中选择3.6.0。

系统设置 (Configure System)

在浏览器上打开Manage Jenkins – Configure System,填写以下内容:

Global properties 勾选Environment variables

添加属性JAVA_HOME: /var/jenkins_home/tools/hudson.model.JDK/jdk8/jdk1.8.0_202/

添加属性TOMCAT_DEPLOY_URL: http://IP:端口/manager/text/deploy?update=true&path=    #(要设置的服务器IP和端口)

Locale

Default Language: zh_CN

Subversion

Subversion Workspace Version: 1.8

 

凭据(Credential)

添加tomcat用户凭据,

输入/选择:

Scope: Global

Username: tomcat

Password: ******

ID: tomcat-user

注意,上面输入的Username和Password要与“安装Tomcat”一节的配置相同。

添加SVN用户凭据(有项目svn权限的用户名密码)

Scope: Global

Username:***

Password: ***

ID: svn-user

管理用户

在浏览器上打开系统管理 – 管理用户:

新建Jenkins用户,分配项目权限。

 

建立流水线任务

以后就是使用Jenkins新建项目拉取svn项目代码自动编译部署项目了

在开始界面上,新建任务,再输入任务名称,选择多分支流水线,点击肯定。图示以下:

接下来,填写任务参数:

General – 显示名称:多分支例子项目

分支源 (Branch Sources),点击“增长源”,选择 Subversion,输入:

Project Repository Base: http://IP/svn/test/

Credentials: <SVN用户凭据>

Include branches: trunk/**/*,branches/*,branches/**/*,tags/*,sandbox/*

注意,Include branches填写内容根据例子项目test的实际目录结构而来。

任务参数配置后,Jenkins会自动进行初次扫描,执行任务。首次执行时会下载项目依赖JAR,比较耗时,多等一下子。

初次扫描和任务执行后,查看项目状况以下,有3个分支,点击“图例”连接会打开图标说明帮助页:

 

运行流水线任务

点击项目分支,进入页面,再点击“当即构建”连接,开始运行流水线任务。页面会即时显示任务运行状况。要查看详细状况,可点击打开构建历史下面的条目。

 

参考:Jenkins官方文档 (中文版)

查看CheckStyle报告

打开项目的构建历史条目,再打开CheckStyle Warnings,查看CheckStyle报告。在报告页面下方有详情 (Details),可按不一样维度查看检查结果,如按包(packages)、文件 (Files)、类型(Types)或问题(Issues)。

 

下载制品

项目正常编译后,要手工下载WAR包,打开构建历史条目,点击Workspaces - <分支路径>:

进入Workspace,打开target子目录,点击WAR包下载:

 

自动部署

例子项目test的测试分支的Jenkinsfile脚本配置了Deploy阶段,用于把制品WAR包自动部署到Tomcat。Deploy阶段的脚本片断以下:

脚本中的部分变量在“配置Jenkins – 工具配置”章节中有定义。变量APP是拟部署应用的名称,在部署后使用该名称访问应用。如上面的脚本片断指明了部署应用名为app,则部署后访问地址为 http://Tomcat测试服务器/app 。

Jenkinsfile截图(步骤可注释跳过)

 

  

相关文章
相关标签/搜索