前言
在上一節交代,之所以需要維護一張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容器並啓動項目