接口自动化平台搭建(四),自动化项目Jenkins持续集成

1、Jenkins的优势

一、传统网站部署流程

  通常网站部署的流程 这边是完整流程而不是简化的流程 
需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 
,若是发现外网部署的代码有异常,须要及时回滚,通常是运维来作。git

一、功能测试 二、上线的时间 三、 jenkins 四、运维 五、功能测试shell

二、Jenkins部署流程

  咱们能够经过jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins很是易于安装和配置,简单易用。 
简单来讲方便以下人员:api

  1. 开发人员:写好代码,不须要本身进行源码编译、打包等工做,直接将代码分支存放在SVN、GIT仓库便可。 war 源码多 自动把代码放到服务器上面 
  2. 运维人员:减轻人工干预的错误率,ansible 一键完成了 同时解放运维人员繁杂的上传代码、手动备份、更新
  3. 测试人员:能够经过jenkins进行简单的代码及网站测试

三、持续集成的意义 增长工做效率

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减小重复过程以节省时间、费用和工做量 
  2. 持续集成保障了每一个时间点上团队成员提交的代码是能成功集成的。换言之,任什么时候间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能 
  3. 持续集成还能利于软件自己的发展趋势,这点在需求不明确或是频繁性变动的情景中尤为重要,持续集成的质量能帮助团队进行有效决策,同时创建团队对开发产品的信心 

四、持续集成的组件

    1. 一个自动构建过程,包括自动编译、分发、部署和测试
    2. 一个代码存储库,即须要版本控制软件来保障代码的可维护性,同时做为构建过程的素材库,例如SVN、GIT代码库
    3. 一个jenkins持续集成服务器就是一个配置简单和使用方便的持续集成服务器

二.部署项目

1.建立Jenkins项目服务器

  登陆Jenkins,点击新建项目  运维

 

2.丢弃旧的构建 (保留7天,最大构建的最大数100)工具

 

 

 

3.码云获取HTTP地址  http://172.16.1.161/auto_test/byxf_qa.git测试

 

 

4.Jenkins中配置码云中的地址,并添加登陆名密码网站

 

 

 

三.Jenkins脚本

1.登陆部署项目服务器spa

 

2.执行脚本.net

 

 

 

 

3.脚本内容以下

pwd
cd /root/

mv -f /root/api_auto/static /root/static (移动static下面的全部内容,主要为了保存上传服务器的文件,图片,excel等 )
rm -rf api_auto/* (删除api_auto文件夹下全部内容)
a=`netstat -apn|grep 9000`  (执行shell命令并获取结果)
echo $a
if [ -n "$a" ]; then  (判断若是有返回值)
echo "端口不为空 匹配端口杀掉进程"
port=`netstat -apn|grep 9000|awk '{ print $7 }'|awk -F/ '{ print $1 }' `  (获取匹配到端口的进程id)
echo $port
kill -9 $port  (杀掉进程)


fi
pwd
echo "api_auto目录已被清空"

 

4.将代码拉倒项目目标服务器上

 

5.继续登陆139服务器,启动服务便可

 

当咱们在终端或控制台工做时,可能不但愿因为运行一个做业而占住了屏幕,由于可能还有更重要的事情要作,好比阅读电子邮件。对于密集访问磁盘的进程,咱们更但愿它可以在天天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程可以在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

  • &  
    当在前台运行某个做业时,终端被该做业占据;能够在命令后面加上& 实现后台运行。例如:sh test.sh & 
    适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行做业时要小心:须要用户交互的命令不要放在后台执行,由于这样你的机器就会在那里傻等。不过,做业在后台运行同样会将结果输出到屏幕上,干扰你的工做。若是放在后台运行的做业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
  • 1

这样,全部的标准输出和错误输出都将被重定向到一个叫作out.file 的文件中。

PS:当你成功地提交进程之后,就会显示出一个进程号,能够用它来监控该进程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号)

  • nohup 
    使用&命令后,做业被提交到后台运行,当前控制台没有被占用,可是一但把当前控制台关掉(退出账户时),做业就会中止运行。nohup命令能够在你退出账户以后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的通常形式为: 
  • 1

若是使用nohup命令提交做业,那么在缺省状况下该做业的全部输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件: 

  • 1

使用了nohup以后,不少人就这样无论了,其实这样有可能在当前帐户非正常退出或者结束的时候,命令仍是本身结束了。因此在使用nohup命令后台运行命令以后,须要使用exit正常退出当前帐户,这样才能保证命令一直在后台运行。

  • ctrl + z 
    能够将一个正在前台执行的命令放到后台,而且处于暂停状态。

  • Ctrl+c 
    终止前台命令。

  • jobs 
    查看当前有多少在后台运行的命令。 
    jobs -l选项可显示全部任务的PID,jobs的状态能够是running, stopped, Terminated。可是若是任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

  • 2>&1解析
  • 1
    1. command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
    2. 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
    3. 试想2>1表明什么,2与>结合表明错误重定向,而1则表明错误重定向到一个文件1,而不表明标准输出;换成2>&1,&与1结合就表明标准输出了,就变成错误重定向到标准输出.

 

 

echo "在139服务了"
cd /root/api_auto/
rm -rf /root/api_auto/static  (删除从git上拉下来的static文件夹)
cp -rf /root/static /root/api_auto/static (复制原来的static文件夹)
rm -rf /root/static (再把原来的删除掉)
pwd
mkdir log (建立日志文件夹)
chmod u+x *.sh
echo "完成"

 

参考博客地址:https://blog.csdn.net/a877415861/article/details/74544086

相关文章
相关标签/搜索