-
Notifications
You must be signed in to change notification settings - Fork 0
Home
简介:此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
配置为:
用户名 加密密码 ip地址 连接端口
### 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
### 数据库主机名 ####
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 '升级记录表';