Skip to content
guanghua.fan edited this page Jan 12, 2017 · 7 revisions


简介:此shell发布平台配合jenkins 发布,实现各类容器代码的发布包括切不局限于weblogic/websphere/tomcat/等。也可以发布php等类似的代码、相比ansible或者salt更加轻量级且可以根据自己需要进行开发。目前实现功能有:自动发布、自动回滚、服务管理等。

对应单个应用的发布,简单直接、安装方便、调试简单。



功能简介:

控制台端(server端):

功能如下:

1、用户输入检查,错误需要有明确提示;

2、脚本怎么运行? 需要 –help 能够查看;

3、配置文件配置的检查,配置错误需要提示;

4、从FTP取应用包,并且尝试解压是否正常,将客户端运行程序和应用包压缩打包发送至客户端。

5、远程解压包,并且调用客户端程序,进行环境运行的检查,同时进行日志的远程获取和远程结果获取(客户端检查OK 后,回传检查后的结果文件);有结果后,表示server端和client端连接及运行环境正常;

6、执行远程调用对应的用户输入的步骤,如:check(应用环境检查)、backup(应用备份)、upgrade(应用的发布)、start、stop、rollback、upgrade_serial、start_serial、rollback_serial等等,同时仍然不断的等待和获取远程结果和日志。



client端:

1、执行对应的操作,如:check/backup/upgrade/start/stop等等上面的步骤,首先是要进行检查配置文件和本机是否对应,如应用的目录、操作用户、备份目录等等。

2、每执行一步需要将结果写入到表中,记录当前进度;

3、需要进行各个客户端之间进行同步,比如现在进行发布操作,应用部署了2个节点,现在一个节点应用检查时候就已经报错,另一个节点却在进行发布操作,这样会导致同一个应用程序不一致或者需要手工对单个节点回滚。所以执行下一个步骤之前,必须等到其他节点也执行完了这个步骤。

4、执行完成(成功、失败)需要将结果反馈到服务端,并且写入到记录表中,这样,其他节点就能同步状态。

5、发布完成后,需要进行临时文件的清理,以免占用磁盘空间;



安装:


交流qq群:304668217


简易安装:

客户端:

yum -y install mysql

yum -y install expect

yum -y install openssh-clients

yum -y install zip unzip

## 备份目录需要自己创建一个

服务端:

yum -y install expect

yum -y install openssh-clients

yum -y install zip unzip

yum -y install svn

yum -y install dos2unix

 appdetailconfig.conf  需要配置


allconnect.conf 文件配置

配置为:

用户名 加密密码 ip地址 连接端口

 

sftp.conf 文件配置

###  sftp IP地址 配置为jenkins 机器的IP地址 ###

SFTP_HOST_IP=10.80.2.230

 

###  sftp 用户名 不需要变动 #####

SFTP_USER=root

 

####  sftp 用户密码 只要不为空即可 ####

SFTP_PASS='8'

 

###  sftp 主机存放对应的包目录 不需要配置  ###

SFTP_FILE_DIR=/root/.jenkins/jobs/jenkins_project_name1/workspace/target

 

db.conf 文件配置

###  数据库主机名 ####

dbhost=10.80.6.150

 

###  数据库用户名  ###

dbuser=root

 

#### 数据库密码 #####

dbpassword=root

 

####  数据库名  #####

dbdatabase=mantence

 

这个配置文件可以根据自己创建的数据库进行更改,创建库的sql如下:

DROP TABLE IF EXISTS `upgrade_record_table`;

CREATE TABLE `upgrade_record_table` (

    `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

    `begin_time`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '发布开始的时间,每个任务只有唯一的一个time',

    `package_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '发布的包名称',

    `env_type` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '环境类型名称如tomcat',

    `action_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '运行发布的action 名称',

    `ip` VARCHAR(32) NOT NULL COMMENT '升级节点的IP地址,记录对应节点IP地址',

    `check_flag` TINYINT DEFAULT 0 COMMENT '升级步骤检查标识,0 未执行,1:执行中,2:执行成功 -1:执行失败',

    `backup_flag` TINYINT DEFAULT 0 COMMENT '升级步骤备份标识,0 未执行,1:执行中,2:执行成功 -1:执行失败',

    `upgrade_flag` TINYINT DEFAULT 0 COMMENT '升级步骤升级成功标识,0 未执行,1:执行中,2:执行成功 -1:执行失败',

    `rollback_flag` TINYINT DEFAULT 0 COMMENT '升级步骤升级成功标识,0 未执行,1:执行中,2:执行成功 -1:执行失败',

    `rollback_to_version` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '如果是回滚,则此处为回滚的版本号,与begin_time 值类似',

    `restart_flag` TINYINT DEFAULT 0 COMMENT '重启步骤,重启成功标识,0 未执行,1:执行中,2:执行成功 -1:执行失败'

) ENGINE=MYISAM DEFAULT CHARSET=utf8 COMMENT '升级记录表';