Jenkins配置CICD任务

1 整体规划

1.1 拓扑架构

1.2 基础设置

编号 IP OS 主机名 角色 环境 说明
A 192.168.1.101 CentOS7.4 ddc_node01 Manager Global 运行UCP和Jenkins的节点
B 192.168.1.102 CentOS7.4 ddc_node02 Worker Global 运行DTR的节点
C 192.168.1.103 CentOS7.4 ddc_node03 Worker Data 运行有状态服务容器的节点
D 192.168.1.104 CentOS7.4 ddc_node04 Worker Dev 运行无状态服务容器和GFS Server的节点
E 192.168.1.105 CentOS7.4 ddc_node05 Worker Dev 运行无状态服务容器和GFS Server的节点

1.3 名词说明

名词 说明
Jenkins DevOps工具。
任务视图 Jenkins任务的逻辑分组。
Gitlib源码库 保存相关应用源码的gitlib仓库。
Docker Swarm 基于docker引擎的容器集群编排工具。

1.4 任务清单

一套基础微服务体系结构,包含应用服务,数据库服务,监控服务,磁盘优化服务等。

任务名 所属任务视图 说明
microservice1-app yourcompany-app 构建部署名为microservice1-app的docker service
microservice1-mysql yourcompany-database 构建部署名为microservice1-mysql的docker service
gateway-app yourcompany-app 构建部署名为gateway-app的docker service
gateway-mysql yourcompany-database 构建部署名为gateway-mysql的docker service
jhipster-elasticsearch yourcompany-monitor 构建部署名为jhipster-elasticsearch的docker service
jhipster-logstash yourcompany-monitor 构建部署名为jhipster-logstash的docker service
jhipster-console yourcompany-monitor 构建部署名为jhipster-console的docker service
jhipster-dashboard yourcompany-monitor 构建部署名为jhipster-dashboard的docker service
jhipster-zipkin yourcompany-monitor 构建部署名为jhipster-zipkin的docker service
jhipster-alerter yourcompany-monitor 构建部署名为jhipster-alerter的docker service
jhipster-curator yourcompany-monitor 构建部署名为jhipster-alerter的docker service
jhipster-registry yourcompany-monitor 构建部署名为jhipster-registry的docker service
clean-disk-worker yourcompany-cleanup 清理worker节点的无效image和container
clean-disk-manager yourcompany-cleanup 清理manager节点的无效image和container

2 任务配置

2.1 数据库服务

以microservcie1-mysql为例,类似任务都在yourcompany-app任务视图下。

  • General / 项目名称

    #!/bin/bash

    if [ "$(docker service ls -f 'name=base-uaa-mysql' | grep base-uaa-mysql)" ];
    then
    docker service update --image dtr.devops.rootcloud.com/common/mysql:5 base-uaa-mysql;
    echo 'updated service for base-uaa-mysql.';
    else
    docker service create --name base-uaa-mysql --replicas 1 --network name=rootcloud_base-overlay,alias=base-uaa-mysql --constraint node.labels.rootcloud.node.type==worker --constraint node.labels.rootcloud.node.env==data --env
    MYSQL_ROOT_PASSWORD=my-secret-pw --publish 32800:3306 --mount type=volume,source=base-gateway-mysql,destination=/var/lib/mysql dtr.devops.rootcloud.com/common/mysql:5
    echo 'started service for base-uaa-mysql.';
    fi

  • General / 丢弃旧的构建

    勾选
    策略:
    保持构建的天数:7
    保持构建的最大个数:10

配置模块 配置项 配置内容
General 项目名称 microservcie1-mysql
丢弃旧的构建 勾选 Strategy:
保持构建的天数:7
保持构建的最大个数:10
源码管理 none
构建 Execute shell #!/bin/bash if [ "$(docker service ls -f 'name=base-uaa-mysql' | grep base-uaa-mysql)" ]; then docker service update --image dtr.devops.rootcloud.com/common/mysql:5 base-uaa-mysql; echo 'updated service for base-uaa-mysql.'; else docker service create --name base-uaa-mysql --replicas 1 --network name=rootcloud_base-overlay,alias=base-uaa-mysql --constraint node.labels.rootcloud.node.type==worker --constraint node.labels.rootcloud.node.env==data --env MYSQL_ROOT_PASSWORD=my-secret-pw --publish 32800:3306 --mount type=volume,source=base-gateway-mysql,destination=/var/lib/mysql dtr.devops.rootcloud.com/common/mysql:5 echo 'started service for base-uaa-mysql.'; fi

猜你喜欢

转载自www.cnblogs.com/yorkwu/p/9231111.html