Git+Jenkins 实战(一)(Practical Use of Git+Jenkins Part 1)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

自动化运维之Git+Jenkins 实战(一)
技能目标:
- 了解目前主流网站部署流程
- 会利用 Jenkins 自动化部署 Tomcat 应用
- 会利用 Jenkins 自动化部署 PHP 应用

简介

在自动化运维的实践中,Git和Jenkins的结合被广泛用于实现软件的持续集成和持续部署(CI/CD)。Git作为一个分布式版本控制系统,用于管理代码的版本和变更;而Jenkins则是一个开源的自动化服务器,用于自动化各种任务,包括构建、测试和部署软件。通过将这两者结合,可以实现代码的自动化构建、测试以及快速部署到生产环境,从而提高软件开发和运维的效率。

在实际操作中,首先需要将代码上传到版本库中,然后通过配置Jenkins与版本库的连接地址,获取到源代码。接着,Jenkins通过调用构建工具(如Maven、Ant或Gradle)进行编译和打包。最后,生成的软件包可以通过ssh插件上传到远程服务器中,并通过shell脚本自动发布项目。这个过程不仅提高了开发效率,还减少了人为错误,是现代软件开发和运维中的重要实践‌

3.1 案例分析

3.1.1 案例概述

在前面课程中,已经学习了关于 Jenkins 自动打包部署开源博客系统及各个组件和工具
的介绍。本章将以实战为主,阐述通过 Jenkins 自动打包部署 Java 项目及 PHP 项目。

3.1.2 案例前置知识点

1. 传统网站部署的流程

网站部署是运维常见的工作之一。传统的网站部署流程大致分为:需求分析原型设计
开发代码提交代码内网部署内网测试确认上线备份数据外网更新外网测
发布完成。如果在内网测试时发现代码有异常,返回到代码开发人员,调整代码;如果
在外网测试时发现外网部署的代码有异常,可以及时进行网站回滚。部署流程如图 3.1 所示。
3.1 传统网站部署流程

2. 目前主流网站部署的流程

目前主流网站部署方法:通过 Jenkins 工具实现全自动部署+测试,Jenkins 是一个可
扩展的持续集成引擎,属于开源软件项目,旨在提供一个开放易用的软件平台,使软件的持
续集成变成可能。Jenkins 非常易于安装和配置,简单易用。主流网站部署流程如图 3.2
示。
图 3.2 主流网站部署流程
在网站部署过程中,各人员的分工与特点如下所示。
开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在
SVNGit 仓库即可。
运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更
新等操作。
测试人员:可以通过 Jenkins 进行简单的代码及网站测试。

3.1.3 案例环境

1. 本案例实验环境

本案例共使用三台服务器,每台服务器划分为不同的角色,最后通过配置 Jenkins 实现
自动打包部署 Java 项目和 PHP 项目。具体实验环境如表 3-1 所示。
主机操作系统主机名/IP 地址主要软件及版本
服务器CentOS 7.3-x86_64jenkins/192.168.9.91Jenkins/Tomca
服务器CentOS 7.3-x86_64web/192.168.9.92Tomcat/Nginx
服务器CentOS 7.3-x86_64version/192.168.9.93Git/SVN

表 3-1 案例实验环境

2. 案例拓扑

案例拓扑图如图 3.3 所示。 3.3 实验拓扑

3. 案例需求

1)配置 Jenkins 持续集成持续交付工具,完成 Java 监控项目自动打包部署。
2)模拟线上真实的 Web 环境发版部署,Jenkins 通过 SVN 拉取 Web 代码到相关目
录,通过 Jenkins 构建后的脚本实现将代码同步到线上环境。

4. 案例实现思路

1)准备部署环境。
2)部署 Jenkins 自动打包监控系统。
3)部署 Jenkins 结合 Ansibe 发布 PHP 应用代码。

3.2 案例实施

3.2.1 准备 Jenkins Tomcat 基础环境

1. 准备系统环境

对所有主机进行主机名、防火墙与 SELinux 的配置,三台主机上都执行如下命令。
[root@localhost ~]# hostnamectl set-hostname jenkins //不同主机需要配置的主机名不同
[root@localhost ~]# bash
[root@jenkins ~]# systemctl stop firewalld && systemctl disable firewalld
[root@jenkins ~]# systemctl stop NetworkManager && systemctl disable NetworkManager
[root@jenkins ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@jenkins ~]# setenforce 0

[root@jenkins ~]# yum -y install lrzsz net-tools vim git wget

2. 下载开源监控系统并上传到本地代码仓库

[root@version ~]# git clone https://github.com/psi-probe/psi-probe
Cloning into 'psi-probe'...
remote: Enumerating objects: 94, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 47866 (delta 53), reused 9 (delta 4), pack-reused 47772
Receiving objects: 100% (47866/47866), 30.34 MiB | 42.00 KiB/s, done.
Resolving deltas: 100% (32814/32814), done.
[root@version ~]# useradd git
[root@version ~]# passwd git
Changing password for user git.
New password:
//输入 git 用户密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.[root@version ~]# su - git
[git@version ~]$ mkdir probe.git
[git@version ~]$ cd probe.git/
[git@version probe.git]$ git --bare init
Initialized empty Git repository in /home/git/probe.git/
[git@version probe.git]$ exit
logout
[root@version ~]# git clone git@192.168.9.93:/home/git/probe.git
Cloning into 'probe'...
The authenticity of host '192.168.9.93 (192.168.9.93)' can't be established.
ECDSA key fingerprint is ad:1e:04:8d:58:db:1b:8f:f5:98:ca:9f:64:86:e4:66.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.9.93' (ECDSA) to the list of known hosts.
git@192.168.9.93's password:
warning: You appear to have cloned an empty repository.
[root@version ~]# cp -rf psi-probe/* probe/
[root@version ~]# cd probe/
[root@version probe]# git add .
[root@version probe]# git config --global user.email "admin@example.com"
[root@version probe]# git config --global user.name "admin"
[root@version probe]# git commit -m "all probe"
[root@version probe]# git push origin master //默认 push master 主干
git@192.168.9.93's password:
//输入 git 对应密码
Counting objects: 1168, done.
Compressing objects: 100% (1121/1121), done.
Writing objects: 100% (1168/1168), 2.01 MiB | 3.20 MiB/s, done.
Total 1168 (delta 398), reused 0 (delta 0)
To git@192.168.9.93:/home/git/probe.git
* [new branch]
master -> master

3. 安装部署 JDK 和 Tomcat

将提前下载好的 JDK Tomcat 软件包,部署到 Jenkins 服务器上。
[root@jenkins ~]# tar zxvf jdk-8u202-linux-x64.tar.gz
[root@jenkins ~]# mv jdk1.8.0_202/ /usr/local/java/
[root@jenkins ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
[root@jenkins ~]# tar zxvf apache-tomcat-8.5.56.tar.gz
[root@jenkins ~]# mv apache-tomcat-8.5.56 /usr/local/tomcat
[root@jenkins ~]# tar zxvf apache-maven-3.6.0-bin.tar.gz
[root@jenkins ~]# mv apache-maven-3.6.0 /usr/local/maven
[root@jenkins ~]# cd /usr/local/tomcat/bin/
[root@jenkins bin]# sh startup.sh

4. 安装 Jenkins

Jenkins 服务器上创建 SSH 密钥,并将公钥上传到 Git 服务器中,实现 Jenkins
Git 免交互 SSH 密钥认证。
[root@jenkins ~]# ssh-keygen
[root@jenkins ~]# ssh-copy-id git@192.168.9.93
The authenticity of host '192.168.9.93 (192.168.8.93)' can't be established.
ECDSA key fingerprint is ca:0f:4c:c3:f5:2a:8e:30:94:77:b1:44:00:8e:84:fd.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already
installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install
the new keys
git@192.168.9.93's password:
Number of key(s) added: 1
Now try logging into the machine, with:
"ssh 'git@192.168.9.93'"
and check to make sure that only the key(s) you wanted were added.
将从官网下载的 Jenkins 软件包上传至 Tomcat 服务的/usr/local/tomcat/webapps 目录
下,并启动 Tomcat 服务。在浏览器中输入 http://192.168.9.91:8080/jenkins,开始部署
Jenkins,如图 3.4 所示。
3.4 解锁 jenkins
根据页面中提示,执行 cat /root/.jenkins/secrets/initialAdminPassword 命令获取管理
员密码。
[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
a0b0af309a2f46b9a69a38e4fc0a8d8e将获取的密码填写至管理员密码配置框中,单击继续按钮,进入自定义 Jenkins
界面,如图 3.5 所示。在该页面选择安装推荐的插件
3.5 安装推荐的插件
安装完插件后,需要创建一个管理员账号,如图 3.6 所示。
3.6 创建管理员用户
创建完管理员用户后,单击保存并完成”→“开始使用 Jenkins”,进入 Jenkins 首页,如
3.7 所示。  Jenkins 首页

5. 配置 Jenkins

Jenkins 进行基础配置。本案例的配置主要包括以下几个步骤:

(1)安装 Jenkins 必要插件

Jenkins 首页中,单击左侧的“Manage Jenkins”→“Manage Plugins”→“可选插件
入插件安装界面,如图 3.8 所示。在过滤搜索框中,输入要安装的 Publish Over SSH Maven
Integration 插件,并勾中其左侧的复选框,单击直接安装按钮,开始插件安装操作。
3.8 插件安装

(2)添加 Publish Over SSH 远程主机

web 主机上,创建远程目录。
[root@web ~]# mkdir /data
Jenkins 首页中,单击“Manage Jenkins”→“Configure System”→“Publish over
SSH”→“SSH Servers”→“增加选项按钮,添加 SSH 远程主机,如图 3.9 所示。
输入 NameHostnameUsername 等必要信息后,单击高级选项按钮勾选“Use
Password authentication,or use a different key”选项输入远程主机登录密码”→“Test
Configuration”测试远程主机配置。测试远程主机配置成功后,单击保存按钮。
3.9 添加 SSH 远程主机

(3)配置 Maven、JDK、Git 环境

Jenkins 首页中,单击“Manage Jenkins”→“Global Tool Configuration”→“JDK”→“
JDK”。设置“JDK 别名“JDK1.8”,去掉自动安装选项,设置“JAVA_HOME”为本案例
JDK 实际安装路径“/usr/local/java”,如图 3.10 所示。
3.10 新增 JDK 配置
找到“Maven”配置选项,单击新增 Maven”按钮,并设置别名为“Maven3.6”
MAVEN_HOME “/usr/local/maven”,如图 3.11 所示。
3.11 新增 Maven 配置
Git 的配置使用默认设置值,以上全局基本配置完毕后,单击“保存”按钮。
Jenkins 配置完成后,推荐重启下 Jenkins 服务,重启命令如下所示。
[root@jenkins ~]# cd /usr/local/tomcat/bin
[root@jenkins bin]# sh shutdown.sh
[root@jenkins bin]# sh startup.sh
3.2.2 Jenkins 自动打包部署监控系统
1. 构建 Tomcat probe 监控系统项目
web 主机上,安装 Tomcat 服务。
[root@web ~]# tar zxvf jdk-8u202-linux-x64.tar.gz
[root@web ~]# mv jdk1.8.0_202 /usr/local/java
[root@web ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@web ~]# source /etc/profile
[root@web ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
[root@web ~]# tar zxvf apache-tomcat-8.5.56.tar.gz
[root@web ~]# mv apache-tomcat-8.5.56 /usr/local/tomcat
[root@web ~]# ssh-keygen
//一路回车
[root@web ~]# ssh-copy-id 192.168.9.91
The authenticity of host '192.168.9.91 (192.168.9.91)' can't be established.
ECDSA key fingerprint is 20:cd:ee:32:7c:13:bb:9f:b4:de:2e:e8:bb:69:e1:46.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already
installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install
the new keys
root@192.168.9.91's password:
Number of key(s) added: 1
Now try logging into the machine, with:
"ssh '192.168.9.91'"and check to make sure that only the key(s) you wanted were added.
Jenkins 首页,选择新建任务,然后输入任务名称“probe”,并选中构建一个 maven
项目,单击页面下方的确定按钮,如图 3.12 所示。
3.12 新建 probe 任务
源码管理模块选中“Git”,配置“Repositories URL”
“git@192.168.9.93:/home/git/probe.git”,如图 3.13 所示。
3.13 源码管理配置
选择“Build”模块,“Goals and options”输入框里填写“clean package”,如图 3.14 所示。
3.14 Build 编译配置
选择构建后操作中的“send build artfacts over SSH”,并进行如图 3.15 所示配置。
3.15 构建后操作配置
“Exec command”中,执行命令的含义是:在自动部署前先杀掉 Tomcat 进程,然后删
war 包,使用 scp 远程拷贝命令将 Jenkins 自动打包好的项目 war 包拷贝到当前 Tomcat
应用目录。然后,重启 Tomcat。具体命令如下所示。
source /etc/profile && /usr/local/tomcat/bin/shutdown.sh
rm -rf /usr/local/tomcat/webapps/probe*
scp 192.168.9.91:/root/.jenkins/workspace/probe/psi-probe-web/target/probe.war
/usr/local/tomcat/webapps
/usr/local/tomcat/bin/startup.sh
以上全部配置完成后,单击“保存”按钮。在正式开始项目构建之前,还存在一个问题,
就是默认编译构建时使用的是 Maven 中央仓库,由于 Maven 中央仓库保存在国外,下载速
度较慢,可将其地址改为国内阿里的 Maven 仓库地址,编辑 Maven 的配置文件
“/usr/local/maven/conf/settings.xml”,修改方法如下所示。
<mirrors>
//注意原文件内注释的位置,避免以下内容加入到注释从而导致不生效
<mirror>
<id>aliyun</id>
<mirrorOf>*</mirrorOf>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
最后,单击立即构建按钮,直至项目构建完成。构建过程可以在控制台输出中查看。
当控制台中出现如图 3.16 所示内容时,说明构建成功。
3.16 项目构建成功
2. 验证拷贝过去的目录
web 主机上,查看 probe 目录是否被拷贝到/usr/local/tomcat/webapps 目录下,查
询结果如下所示。
[root@web ~]# ll /usr/local/tomcat/webapps/
总用量 25780
drwxr-x--- 14 root root
4096 9
4 15:38 docs
drwxr-x--- 6 root root
83 9
4 15:38 examples
drwxr-x--- 5 root root
87 9
4 15:38 host-manager
drwxr-x--- 5 root root
103 9
4 15:38 manager
drwxr-x--- 7 root root
88 9
4 16:55 probe
-rw-r----- 1 root root 26393698 9
4 16:55 probe.war
drwxr-x--- 3 root root
306 9
4 15:38 ROOT
从以上结果来看,Jenkins 已把打好的 probe.war 包拷贝过来。
3. 验证 Jenkins 自动打包部署结果
从构建后的执行命令可以看出,Tomcat 服务已经重新启动,通过浏览器可以直接访问
probe 监控系统。在浏览器中输入 http://192.168.9.92:8080/probe,访问结果如图 3.17
示。
3.17 访问 probe
至此,Jenkins 自动打包部署完毕。
3.2.3 Jenkins 结合 Ansible 自动发布 Web 应用
1. 准备基础环境
Jenkins 主机上,安装 Ansible 并配置主机组。
[root@jenkins ~]# yum -y install epel-release //三台机器都需要安装
[root@jenkins ~]# yum -y install ansible
//三台机器都需要安装
[root@jenkins ~]# vim /etc/ansible/hosts
//修改主机及组配置
[kgc-web]
192.168.9.92
配置 SSH 无密钥认证,并将公钥文件 id_rsa.pub 同步到目标主机。
[root@jenkins ~]# ssh-keygen -t rsa
//一路回车,覆盖原有证书
[root@jenkins ~]# ssh-copy-id 192.168.9.92
2. 创建 kgc-web 虚拟主机
[root@web ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@web ~]# yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
[root@web ~]# yum -y install docker-ce
[root@web ~]# systemctl start docker
[root@web ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to
/usr/lib/systemd/system/docker.service.
[root@web ~]# mkdir /var/vhost
[root@web ~]# docker run -itd --name=kgc-web --mount
type=bind,src=/var/vhost/,dst=/usr/share/nginx/html -p 83:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
be8881be8156: Pull complete
65206e5c5e2d: Pull complete
8e029c3e2376: Pull complete
Digest: sha256:1b109555ad28bb5ec429422ee136c5f5ab5ee6faaeb518836a5c9a3b6436a1bd
Status: Downloaded newer image for nginx:latest
d153bfae3c4c170f4ab2539f5b6b443847c53dddf65624268f8203692c895ae5
[root@web ~]# docker ps -a
CONTAINER ID
IMAGE
COMMAND
CREATED
STATUS
PORTS
NAMES
d153bfae3c4c
nginx
"nginx -g 'daemon of…"
15 hours ago
Up
15 hours
0.0.0.0:83->80/tcp
kgc-web
3. 安装部署 Subversion
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统。Subver
sion 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同
样是一个丰富的开发者和用户社区的一部分。
相对于 RCSCVSSVN 采用了分支管理系统,它的设计目标就是取代 CVS。互联网
上免费的版本控制服务多基于 Subversion。说得简单一点,SVN 就是用于多个人共同开发
同一个项目,共用资源的目的。
下面是安装并部署 Subversion 的具体操作。
[root@version ~]# yum install -y subversion
//jenkins 主机也执行
[root@version ~]# mkdir -p /kgc/svn
[root@version ~]# svnadmin create /kgc/svn
[root@version ~]# vim /kgc/svn/conf/passwd
kgc-test=benet.com
[root@version ~]# vim /kgc/svn/conf/authz
[/]
kgc-test=rw
[root@version ~]# vim /kgc/svn/conf/svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = /kgc/svn
[root@version ~]# cat /kgc/svn/conf/svnserve.conf | grep -v "^#" | grep -v "^$"
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = /kgc/svn
[sasl]
[root@version ~]# svnserve -d -r /kgc/svn
//启动 SVN
创建分支,模拟提交代码。
[root@jenkins ~]# svn mkdir svn://192.168.9.93/product-station -m "mkdir by zsk create
2020-07-06"
Authentication realm: <svn://192.168.9.93:3690> /kgc/svn
Password for 'root':
//输入 root 用户密码
Authentication realm: <svn://192.168.9.93:3690> /kgc/svn
Username: kgc-test
Password for 'kgc-test':
//输入 kgc-test 用户密码
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<svn://192.168.9.93:3690> /kgc/svn
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Committed revision 1.
[root@jenkins ~]# svn list svn://192.168.9.93
product-station/
[root@jenkins ~]# svn checkout svn://192.168.9.93/product-station
取出版本 1
[root@jenkins ~]# cd product-station/
[root@jenkins product-station]# vim index.html
kgc-web-version1
[root@jenkins product-station]# svn add index.html
A
index.html
[root@jenkins product-station]# svn commit -m 'commit'
Adding
index.html
Transmitting file data .Committed revision 2.
4. 创建发布脚本
[root@jenkins ~]# mkdir /root/shell/
[root@jenkins ~]# vim /root/shell/kgc_web_jenkins.sh
###课工场测试环境版本发布工具
#!/bin/bash
#定义路径
path=$(cd $(dirname "$0"); pwd);
svnRoot="svn://192.168.9.93/product-station";
kgcdir="/var/vhost/kgc_web";
mkdir -p ${kgcdir}
kgcbackup="/var/vhost/kgc_backup"
mkdir -p ${kgcbackup}
#先备份上一次应用代码
cp -r ${kgcdir} ${kgcbackup}
#检出 svn 应用代码到发布目录
svn co ${svnRoot} "${kgcdir}";
chmod -R 755 /var/vhost/kgc_web/
#echo "确认要发布的是 kgc-web 环境?";
ansible kgc-web -m synchronize -a 'src=/var/vhost/kgc_web dest=/var/vhost/ delete=yes
compress=yes'
if [ $? -eq 0 ]; then
echo "kgc-web 节点同步代码完成"
else
rm -rf ${kgcdir}/*
cp -r /var/vhost/kgc_backup/kgc_web/* ${kgcdir}
ansible kgc-web -m synchronize -a 'src=/var/vhost/kgc_web dest=/var/vhost/ delete=yes
compress=yes'
fi
[root@jenkins ~]# chmod +x /root/shell/kgc_web_jenkins.sh
5. 构建 Web 发布项目
在以上配置完成后,在 Jenkins 首页选择新建任务,然后输入一个任务名称“kgc-web”
并选择构建一个自由风格的软件项目,单击当前页面下方的确定按钮,如图 3.18 所示。
3.18 创建 kgc-web 项目
找到构建配置选项,单击增加构架步骤”→选择执行 shell”。根据 Shell 所在路径,输
入发布脚本的所在位置,如图 3.19 所示。
3.19 jenkins 内执行 shell 配置
以上配置全部完成后,单击保存按钮。然后,单击立即构建按钮,直至项目构建完
成。在控制台输出中,可以查看执行过程,如图 3.20 所示。
3.20 kgc-web 项目构建
从图 3.23 中,可以看到 kgc-web 工程项目已构建成功。
6. 验证 Docker Web 环境
在浏览器输入 http://192.168.9.92:83/kgc_web/index.html 地址,可查看结果,如图3.21
所示。
图 3.21 第一次浏览器输出结果
变更代码并提交到 SVNJenkins 再次执行构建操作,具体操作如下所示。
[root@jenkins product-station]# vim index.html
kgc-web-version2
[root@jenkins product-station]# svn commit -m 'commit'
Sending
index.html
Transmitting file data .
Committed revision 3.
Jenkins kgc-web 项目下,单击立即构建按钮,再次完成项目构建。
然后,再次在浏览器输入 http://192.168.9.92:83/kgc_web/index.html 地址,查看结果,
如图 3.22 所示。
3.22 第二次浏览器输出结果
至此,通过 Jenkins 发布 Web 程序的实验已经完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值