【gitlab+jenkins+docker】第五节 docker信息明细表设计与实现(含收集脚本)

【gitlab+jenkins+docker】手把手教你搭建基于gitlab+jenkins+docker的项目的自动化部署流程

前言

在上一节交代,之所以需要维护一张docker容器信息表,是为了做到ip和port等信息的统一分发与管理。

SQL语句

话不多说,直接贴创建语句:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for dockers_detail
-- ----------------------------
CREATE DATABASE `devops`;
USE `devops`;
DROP TABLE IF EXISTS `dockers_detail`;
CREATE TABLE `dockers_detail`  (
  `UPDATE_TIME` datetime NOT NULL COMMENT '更新日期',
  `IMAGE` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'docker镜像',
  `DOCKER_VERSION` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'docker版本',
  `HOST_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'docker容器主机名',
  `CONTAINER_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'docker容器名',
  `NETWORK_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'network名',
  `IP` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'docker ip',
  `C_PORT` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '容器端口号',
  `CPU` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分配docker容器core数',
  `MEMORY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分配docker容器内存',
  `HOST` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '宿主机',
  `D_PORT` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '宿主机端口号',
  PRIMARY KEY (`CONTAINER_NAME`, `IP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'docker容器信息明细表' ROW_FORMAT = Compact;

SET FOREIGN_KEY_CHECKS = 1;

将以上语句直接在命令行或其他远程连接软件(如navicat)中执行一遍即可。

布置脚本

可以在我的资源页面中找到“gitlab+jenkins+docker自动化部署脚本”,然后拖到opt目录下解压:
在这里插入图片描述
可以看到automation和jdk1.8.0_191两个文件夹,我们先赋予jdk1.8.0_191权限(一定要做):

[root@JackRoy opt] chmod -R 777 jdk1.8.0_191

再将上节配置的mysql ip修改一下,执行:

[root@JackRoy ~]# vim /opt/automation/docker_job/docker_ssh.sh

修改IP为宿主机IP,密码修改为自己设置的root密码:
在这里插入图片描述
执行:

[root@JackRoy ~]# vim /opt/automation/docker_job/deploy/start.sh

修改IP为宿主机IP,密码修改为自己设置的root密码:
在这里插入图片描述
执行:

[root@JackRoy ~]# vim /opt/automation/deploy/cleanTable.sh

修改IP为宿主机IP,密码修改为自己设置的root密码:
在这里插入图片描述
可能你在观察这个目录结构和文件分布会觉得很冗余,笔者在这里解释一下,因为这个自动化部署分了联机版(多台机器部署)和单机版,所以在一开始就有主从的设计在里面,这里只介绍单机版即主、从的代码放在一起了。

信息收集

依次执行:

pip install mysql
sh /opt/automation/docker_job/docker_ssh.sh

去往navicat上查看:
在这里插入图片描述
docker容器信息收集成功,So你可以将“sh /opt/automation/docker_job/docker_ssh.sh”配置到crontable中,定时收集

后记

下一节将介绍项目自动化部署脚本逻辑。

跳转

第一节 基础环境介绍与准备
第二节 docker版gitlab安装和配置
第三节 docker版jenkins安装和配置
第四节 docker版mysql安装和配置
第五节 docker信息明细表设计与实现(含收集脚本)
第六节 docker容器自动化生成脚本
第七节 自动生成docker容器并启动项目

发布了31 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Jack_Roy/article/details/103765093
今日推荐