Jenkins | Jenkins实现半自动化部署

2018-12-10  本文已影响0人  浪漫宇宙与人间日常

作者的话

在我司的基础设施软件中,有一个ecloud平台,能够进行软件开发的持续集成,通过代码上传到svn然后直接同步更新到服务器,同时也是支持docker的,里面涉及技术点很多,我们不妨将其简化,首先来学习其中最为核心的Jenkins这部分,并且通过部署一个自动化测试服务,来感受它的魅力,体会自动化部署持续集成的原理。

Jenkins的安装

Jenkins的官网,下载对应的war文件,通过本地命令行运行java -jar jenkins.war来执行安装Jenkins,最好通过访问localost:8080访问进入相关设置

密码路径

根据提示找到密码,进入下一步安装向导

然后设置选择安装建议插件,最后需要输入自己的账号密码,下一步进入Jenkins的后台页面

Jenkins后台

安装插件

进入系统的插件管理,然后选择可选插件进行安装

插件管理

安装一下方便的 rebuildersafe restart,这两个插件分别是用来重建项目方便和重启系统的方便

基础配置

进入系统管理 ---> 全局安全配置

全局安全配置

然后选择 安全矩阵 ,进行权限设置

添加admin用户组,设置好所有所有权限,然后添加用户

系统管理 ----> 用户管理 -----> 新建用户

新建用户

新建好用户同样需要给这个用户设置权限,一般用户都要需要其他权限,不能给普通用户设置超级管理员权限

设置新增用户权限

注册Linux服务器

我们默认linux服务器上相关服务都安装配置好了

然后我们就开始在Jenkins后台进行相关设置

从系统管理 ---> 节点管理 ---> 新建节点

节点配置

我们通过ssh的root用户访问远程linux服务器,然后保存成功后,我们可以启动代理,连接服务器

创建任务运行

回到jenkins控制台首页,新建任务,绑定到刚才新建的服务器上面,

限制任务运行节点

然后选择运行shell脚本

shell

然后就可以执行构建,运行当前任务,测试是否生效。

构建自动化部署

示意图

我们自动化构建的主要步骤如上图,接着我们开始在jenkins后台构建这个任务

里面通过一个shell脚本来完成这个过程

#!/usr/bin/env bash
#编译+部署order站点

#需要配置如下参数
# 项目路径, 在Execute Shell中配置项目路径, pwd 就可以获得该项目路径
# export PROJ_PATH=这个jenkins任务在部署机器上的路径

# 输入你的环境上tomcat的全路径
# export TOMCAT_APP_PATH=tomcat在部署机器上的路径

### base 函数
killTomcat()
{
    pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
    echo "tomcat Id list :$pid"
    if [ "$pid" = "" ]
    then
      echo "no tomcat pid alive"
    else
      kill -9 $pid
    fi
}
cd $PROJ_PATH/order
mvn clean install

# 停tomcat
killTomcat

# 删除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -f $TOMCAT_APP_PATH/webapps/order.war

# 复制新的工程
cp $PROJ_PATH/order/target/order.war $TOMCAT_APP_PATH/webapps/

cd $TOMCAT_APP_PATH/webapps/
mv order.war ROOT.war

# 启动Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh

这块内容不理解,自己去学习理解吧,我这就不多解释了

然后我们像上面一样新建任务,只需设置一下源码管理

设置svn

然后构建命令,需要区别设置一下

填写shell

这块第一句话 是代表不让 这个jenkins的进出不被kill ,后面设置的环境变量,是给上面的那个文件使用

然后运行我们编写的shell文件,执行构建过程,这样子我们项目就会在服务器上运行起来

下面我们修改好源码的后,只要提交到svn代码库,然后在jenkins的后台再次点击下构建任务,就可以在后台看到我们修改的内容

本次这个过程还是属于半自动化,还需要自己手动点击构建任务。

上一篇下一篇

猜你喜欢

热点阅读