作者的话
在我司的基础设施软件中,有一个ecloud平台,能够进行软件开发的持续集成,通过代码上传到svn然后直接同步更新到服务器,同时也是支持docker的,里面涉及技术点很多,我们不妨将其简化,首先来学习其中最为核心的Jenkins这部分,并且通过部署一个自动化测试服务,来感受它的魅力,体会自动化部署持续集成的原理。
Jenkins的安装
Jenkins的官网,下载对应的war文件,通过本地命令行运行java -jar jenkins.war
来执行安装Jenkins,最好通过访问localost:8080
访问进入相关设置
根据提示找到密码,进入下一步安装向导
然后设置选择安装建议插件,最后需要输入自己的账号密码,下一步进入Jenkins的后台页面
Jenkins后台安装插件
进入系统的插件管理,然后选择可选插件进行安装
插件管理安装一下方便的 rebuilder
和 safe 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的后台再次点击下构建任务,就可以在后台看到我们修改的内容
本次这个过程还是属于半自动化,还需要自己手动点击构建任务。
网友评论