Git+Jenkins(实战一)

Git+Jenkins(实战一)

技能目标:

  • 了解目前主流网站部署流程
  • 会利用 Jenkins 自动化部署 Tomcat 应用
  • 会利用 Jenkins 自动化部署 PHP 应用

案例概述

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

案例前置知识点

1. 传统网站部署的流程

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

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

目前主流网站部署方法:通过 Jenkins 工具实现全自动部署+测试,Jenkins 是一个可扩展的持续集成引擎,属于开源软件项目,旨在提供一个开放易用的软件平台,使软件的持 续集成变成可能。Jenkins 非常易于安装和配置,简单易用。主流网站部署流程如下图所示。
在这里插入图片描述
在网站部署过程中,各人员的分工与特点如下所示。

  • 开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在SVN、Git 仓库即可。

  • 运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更 新等操作。

  • 测试人员:可以通过 Jenkins 进行简单的代码及网站测试。

案例环境

1. 本案例实验环境

本案例共使用三台服务器,每台服务器划分为不同的角色,最后通过配置 Jenkins 实现自动打包部署 Java 项目和 PHP 项目。具体实验环境如下表所示。

主机名 系统 IP地址 配置 主要软件
jenkins CentOS7.9 192.168.10.101 2C/4G Jenkins、JDK、Tomcat、maven、git
web CentOS7.9 192.168.10.102 1C/1G JDK、Tomcat
version CentOS7.9 192.168.10.103 1C/1G git

2. 案例拓扑

案例拓扑图如下图所示
在这里插入图片描述

3. 案例需求

(1) 配置 Jenkins 持续集成持续交付工具,完成 Java 监控项目自动打包部署。

(2) 模拟线上真实的 Web 环境发版部署,Jenkins 通过 SVN 拉取 Web 代码到相关目录,通过 Jenkins 构建后的脚本实现将代码同步到线上环境。

4. 案例实现思路

(1) 准备部署环境。

(2) 部署 Jenkins 自动打包监控系统。

(3) 部署 Jenkins 结合 Ansibe 发布 PHP 应用代码。

案例实施

准备 Jenkins 与Tomcat 基础环境

1. 准备系统环境,所有主机操作

对所有主机进行主机名配置

#192.168.10.101主机操作
hostnamectl set-hostname jenkins
su

#192.168.10.102主机操作
hostnamectl set-hostname web
su

#192.168.10.103主机操作
hostnamectl set-hostname version
su

防火墙与 SELinux 的配置

systemctl stop firewalld && systemctl disable firewalld
systemctl stop NetworkManager && systemctl disable NetworkManager
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
setenforce 0

#配置时间同步
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
chronyc sources -v 

yum -y install lrzsz net-tools vim git wget

2. 上传下载好的开源监控系统并上传到本地代码仓库,version主机操作

#上传解压psi-probe.tar.gz包
tar zxvf psi-probe.tar.gz

useradd git
passwd git
更改用户 git 的密码 。
新的 密码:                    #输入git的密码自定义
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

su - git
mkdir probe.git
cd probe.git/
git --bare init
初始化空的 Git 版本库于 /home/git/probe.git/

exit
登出

git clone git@192.168.10.103:/home/git/probe.git
正克隆到 'probe'...
The authenticity of host '192.168.10.103 (192.168.10.103)' can't be established.
ECDSA key fingerprint is SHA256:2fQLgiER9lL5D2sIHiKrcE9C9lAc3IRuu4+kyZIGMR4.
ECDSA key fingerprint is MD5:14:58:01:3a:bb:1c:72:e1:1f:21:14:4e:ba:b5:ba:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.103' (ECDSA) to the list of known hosts.
git@192.168.10.103's password: 
warning: 您似乎克隆了一个空版本库。

cp -rf psi-probe/* probe/
cd probe/
git add .
git config --global user.email "admin@admin.com"
git config --global user.name "admin"
git commit -m "all probe"

git push origin master      #默认 push 到 master 主干
git@192.168.10.103's password:           #git密码
Counting objects: 1164, done.
Compressing objects: 100% (1117/1117), done.
Writing objects: 100% (1164/1164), 2.01 MiB | 0 bytes/s, done.
Total 1164 (delta 398), reused 0 (delta 0)
To git@192.168.10.103:/home/git/probe.git
 * [new branch]      master -> master

3. 安装部署 JDK 和 Tomcat,jenkins主机操作

将提前下载好的 JDK 与 Tomcat 软件包,上传到 Jenkins 服务器上。

#上传解压 jdk-8u202-linux-x64.tar.gz apache-tomcat-8.5.56.tar.gz apache-maven-3.6.0-bin.tar.gz
tar zxvf jdk-8u202-linux-x64.tar.gz
mv jdk1.8.0_202/ /usr/local/java/

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


source /etc/profile
java -version
java version "1.8.0_202"
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lxiaoyouyouj

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

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

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

打赏作者

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

抵扣说明:

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

余额充值