一、传统的流程
1、传统网站部署的流程
在运维过程中,网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分 析-->原型设计-->开发代码-->提交代码-->内网部署-->内网测试-->确认上线-->备份数据-->外网更新-->外网测试-->发布完成。如果在内网测试时发现代码有异常,返回代码开发人员名字,调整代码;如果在外网测试时发现外网部署的代码有异常,可以及时进行网站回滚。
2、传统代码上线的过程
开发人员发起代码上线的需求(邮件中包含开发做好的WAR包)-->运维人员连接线上负载调度器(Nginx)--> 隔离一组服务器(Tomcat)--> 连接服务器(Tomcat)--> 备份旧代码(tar打包)--> 删除旧代码目录 --> 上传新的WAR包 --> 外网测试 --> 测试不通过则通过备份回滚代码 --> 测试通过则利用rsync的脚本推送代码到其他服务器--> 统一外网测试 -->连接调度器恢复隔离机制 --> 隔离另一组服务器实施上线步骤 --> 上线完成。
二、目前主流的流程
目前主流网站部署方法:通过 Hudson/Jenkins 工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,属于开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins 非常易于安装和配置,简单易用。
- 开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在 SVN、Git 仓库即可。
- 运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更新等操作。
- 测试人员:可以通过 Jenkins 进行简单的代码及网站测试。
Jenkins 的工作原理是先将源代码从 SVN/Git 版本控制系统中拷贝一份到本地,然后根据设置的脚本调用Maven进行 build(构建)。整个系统的关键就是 build 脚本,build 脚本告诉Jenkins 在一次集成中需要执行的任务。
三、安装部署
1、配置git
我的git是系统自带的所以就直接用了
访问https://mirrors.edge.kernel.org/pub/software/scm/git/下载所需要的版本
yum -y install java git需要jdk
useradd git 创建一个git用户
echo "123456" | passwd --stdin git 修改密码
su - git 登录git
mkdir probe.git 创建仓库
cd probe.git 进入仓库
git --bare init 初始化仓库
exit 退出
rz 上传psi-probe.tar.gz
tar xf psi-probe.tar.gz 解压
git clone git@192.168.77.17:/home/git/probe.git 克隆
cp -rf psi-probe/* probe/ 复制
cd probe/
git add . 将当前目录下的所有文件提交到暂存区
git config --global user.email "syh@163.com" 创建邮箱
git config --global user.name "syh" 创建用户
git commit -m "all probe" 将暂存区的所有文件提交到仓库中
git push origin master 将文件推送到远程仓库中
2、配置jenkins
①、添加凭证
创建完成
②、添加 Publish Over SSH 远程主机 (需要在jenkins页面上安装Publish Over SSH插件)
拉到最后点击保存即可
③、配置 Maven、JDK、Git 环境
(1)JDK
(2)maven(需要在jenkins页面安装Maven Integration插件)
在Jenkins安装maven
tar xf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.0 /usr/local/maven
为maven更换阿里云镜像站
vim /usr/local/maven/conf/settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
在Jenkins上操作
(3)git
以上全局基本配置完毕后,拉到最后点击保存即可完成。
3、配置web主机
yum -y install java
tar xf apache-tomcat-8.5.40.tar.gz
mv apache-tomcat-8.5.40 /usr/local/tomcat
发布公钥给jenkins主机
ssh-keygen
ssh-copy-id 192.168.77.18
在jenkins端操作
主机Jenkins默认用jenkins用户去连接git,所以用jenkins用户生成密钥对,并发送给git。
id jenkins
su -s /bin/bash jenkins
ssh-keygen
ssh-copy-id git@192.168.77.17
ssh git@192.168.200.111
exit
ssh-keygen
ssh-copy-id git@192.168.77.17
由于篇幅限制本篇文章分为1和2