Jenkins | Jenkins实现半自动化部署

作者的话

在我司的基础设施软件中,有一个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的后台再次点击下构建任务,就可以在后台看到我们修改的内容

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,699评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,124评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,127评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,342评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,356评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,057评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,654评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,572评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,095评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,205评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,343评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,015评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,704评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,196评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,320评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,690评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,348评论 2 358

推荐阅读更多精彩内容