• 沒有找到結果。

在DevCloud部署任务中创建、执行数据库脚本_部署 CloudDeploy_最佳实践_华为云

N/A
N/A
Protected

Academic year: 2022

Share "在DevCloud部署任务中创建、执行数据库脚本_部署 CloudDeploy_最佳实践_华为云"

Copied!
68
0
0

加載中.... (立即查看全文)

全文

(1)

部署

最佳实践

文档版本 18

发布日期 2021-12-21

(2)

版权所有 © 华为技术有限公司 2021。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

目 录

1 Tomcat 应用部署... 1

1.1 创建项目...1

1.2 创建代码仓库... 1

1.3 创建构建任务... 2

1.4 创建主机组... 4

1.5 创建主机...4

1.6 创建部署任务... 6

1.7 创建流水线... 12

1.8 执行流水线... 15

2 SpringBoot 应用部署... 17

2.1 创建项目... 17

2.2 创建代码仓库...17

2.3 创建构建任务...18

2.4 创建主机组... 20

2.5 创建主机... 20

2.6 创建部署任务...22

2.7 创建流水线... 27

2.8 执行流水线... 30

3 实践--基于 haproxy 灰度发布... 32

3.1 导读... 32

3.2 实现方式一:替换 haproxy 配置文件...33

3.2.1 实现原理... 33

3.2.2 操作步骤... 33

3.3 实现方式二:修改 haproxy 配置文件内容... 36

3.3.1 实现原理... 36

3.3.2 操作步骤... 36

4 将多个软件包部署到不同目标主机... 38

5 通过代理机进行内网部署... 42

6 在 DevCloud 部署任务中创建、执行数据库脚本... 46

7 CCE 部署指导...51

7.1 导读... 51

最佳实践 目 录

(4)

7.2 制作 Docker 镜像并推送到 SWR 镜像仓... 51

8 ContainerOps 流水线创建指导... 53 9 通过 ContainerOps 部署 CCE/CCI... 57

最佳实践 目 录

(5)

1 Tomcat 应用部署

1.1 创建项目 1.2 创建代码仓库 1.3 创建构建任务 1.4 创建主机组 1.5 创建主机 1.6 创建部署任务 1.7 创建流水线 1.8 执行流水线

1.1 创建项目

步骤1 登录DevCloud首页。

步骤2 单击“新建项目”,弹出“新建项目”对话框,选择默认项目模板“Scrum”,填写 项目名称(lich-selfproject)和项目描述。

步骤3 单击“新建”,新建完成后,进入到项目“工作 > Backlog”页面。

----结束

1.2 创建代码仓库

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 在顶部菜单栏单击“代码 > 代码托管”,进入代码托管,如下图所示。

最佳实践 1 Tomcat 应用部署

(6)

步骤3 单击“普通新建”,进入“新建代码仓库”页面,如下图所示。

步骤4 设置完所有信息,单击“确定”,仓库创建完成,如下图所示。

步骤5 单击仓库名称,可以查看仓库详情。

----结束

1.3 创建构建任务

步骤1 单击项目名称(lich-selfproject),进入项目。

最佳实践 1 Tomcat 应用部署

(7)

步骤2 在顶部菜单栏单击“构建&发布 > 编译构建”,进入编译构建,如下图所示。

步骤3 单击“新建任务”,进入“新建编译构建任务”页面,如下图所示,选择源码源和已 经创建好的源码仓库,并根据需要选择分支。

步骤4 单击“下一步”,进入“新建编译构建任务-选择构建模板”页面,选择“Maven”模 板,如下图所示。

步骤5 单击“确定”,进入“构建步骤”页面,使用默认配置即可,如下图所示。

最佳实践 1 Tomcat 应用部署

(8)

步骤6 切换到“参数设置”页面,为任务添加如下图所示参数。

步骤7 配置完所有信息,单击“新建”即完成创建。

----结束

1.4 创建主机组

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 进入“主机组管理”页面。

步骤3 单击右上角“新建主机组”,进入新建主机组-基本信息页面。

步骤4 设置完主机组基本信息,单击“保存”,进入“主机信息”页面,可以为主机组添加 主机。

----结束

1.5 创建主机

步骤1 进入“主机组管理”页面,如下图所示。

最佳实践 1 Tomcat 应用部署

(9)

步骤2 找到目标主机组,单击主机组名称,进入“主机信息”页面,如下图所示。

步骤3 单击右上角“添加主机”,弹出“添加主机”对话框,如下图所示。

1-1 添加主机

最佳实践 1 Tomcat 应用部署

(10)

1-1 参数说明

参数项 说明

主机名 必选,可自定义。

IP 必选,可自定义。

操作系统 必选,可自定义,如“Linux”。

授信方式 必须,可自定义,如“密码授信”。

用户名 必选,可自定义,如“root”。

密码 必选,可自定义。

ssh 端口 必选,可自定义,如“22”。

通过 SSH 代 理

可选,如不选。

步骤4 主机参数设置完成后,单击“添加”,添加完成的主机展示在主机信息列表,确保主机 授信成功,如下图所示。

----结束

1.6 创建部署任务

背景说明

将Web应用部署在Tomcat上,通过创建部署任务,使用提供的Tomcat应用模板。

操作步骤

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 在顶部菜单栏单击“构建&发布 > 部署”,进入部署服务,如下图所示。

最佳实践 1 Tomcat 应用部署

(11)

步骤3 单击“新建任务”,进入新建部署任务-基本信息页面,如下图所示。

1-2 参数说明

参数项 说明

任务名称 必选,任务名称,可自定义。

所属项目 任务所属的项目,不可修改。

描述 可选,任务描述,可自定义。

步骤4 设置完基本信息,单击“下一步”。

进入“新建部署任务-选择部署模板”页面,如下图所示。

最佳实践 1 Tomcat 应用部署

(12)

步骤5 选择系统模板“Tomcat应用部署”,单击“确认”,进入“部署步骤”页面,依次配 置如下任务步骤信息。

1. 停止Tomcat服务,信息配置如下图所示。

最佳实践 1 Tomcat 应用部署

(13)

2. 安装JDK,信息配置如下图所示。

3. 安装Tomcat,信息配置如下图所示。

最佳实践 1 Tomcat 应用部署

(14)

4. 选择部署来源,信息配置如下图所示。

5. 启动Tomcat服务,信息配置如所示。

最佳实践 1 Tomcat 应用部署

(15)

6. 执行等待,信息配置如下图所示。

最佳实践 1 Tomcat 应用部署

(16)

7. URL健康测试,信息配置如下图所示。

步骤6 部署步骤配置完后,切换到“参数设置”页面,为模板任务添加需要用到的参数。

步骤7 设置完所有信息,单击“保存”。

----结束

1.7 创建流水线

步骤1 在顶部菜单栏单击“构建&发布 > 流水线”,切换到流水线服务,如下图所示。

步骤2 单击右上角“新建流水线”,按页面提示操作,直到进入“新建流水线”页面,如下 图所示。

最佳实践 1 Tomcat 应用部署

(17)

步骤3 添加部署阶段。

在“发布仓库”阶段后单击 添加新阶段,然后单击该阶段旁的 ,弹出“阶段配 置”页面,信息配置如下图所示。

1-2 阶段配置

信息配置完成后,单击“保存”即可看到添加的阶段。

步骤4 添加阶段任务。

分别为构建阶段和部署阶段添加任务。

● 构建阶段任务

a. 单击构建阶段-任务列表下的“添加任务”,添加一条任务。

b. 单击任务旁的 ,选择“编辑任务”,弹出“任务配置”页面。

选择需要调用的任务并配置相关信息,信息配置如下图所示。

最佳实践 1 Tomcat 应用部署

(18)

1-3 构建阶段任务配置

c. 信息配置完成后,单击“保存”。

● 部署阶段任务

a. 同构建阶段,为部署阶段的默认任务配置任务信息,各信息配置如下图所 示。

最佳实践 1 Tomcat 应用部署

(19)

1-4 部署阶段任务配置

b. 信息配置完成后,单击“保存”即可看到添加的任务和构建任务对应的仓库 信息。

步骤5 配置流水线参数。

单击流水线的“参数”页签,可以根据需要配置参数信息。

步骤6 配置完所有信息,单击“保存”,流水线任务即创建完成。

----结束

1.8 执行流水线

步骤1 在流水线任务列表,单击目标流水线名称,进入“流水线详情”页面。

步骤2 单击“全新执行”,弹出执行对话框。

步骤3 设置完执行参数,单击“确定”,开始执行流水线。

最佳实践 1 Tomcat 应用部署

(20)

步骤4 执行完成后,可以查看任务执行结果。

● 单击任务旁的 ,可以查看仓库信息、复制仓库地址。

● 单击任务旁的 ,可以下载构建包。

● 单击任务旁的 ,可以查看日志信息。

● 单击任务旁的 ,可以单独执行任务。

----结束

最佳实践 1 Tomcat 应用部署

(21)

2 SpringBoot 应用部署

2.1 创建项目 2.2 创建代码仓库 2.3 创建构建任务 2.4 创建主机组 2.5 创建主机 2.6 创建部署任务 2.7 创建流水线 2.8 执行流水线

2.1 创建项目

步骤1 登录DevCloud首页。

步骤2 单击“新建项目”,弹出“新建项目”对话框,选择默认项目模板“Scrum”,填写 项目名称(lich-selfproject)和项目描述。

步骤3 单击“新建”,新建完成后,进入到项目“工作 > Backlog”页面。

----结束

2.2 创建代码仓库

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 在顶部菜单栏单击“代码 > 代码托管”,进入代码托管,如下图所示。

最佳实践 2 SpringBoot 应用部署

(22)

步骤3 单击“普通新建”,进入“新建代码仓库”页面,如下图所示。

步骤4 设置完所有信息,单击“确定”,仓库创建完成,如下图所示。

步骤5 单击仓库名称,可以查看仓库详情。

----结束

2.3 创建构建任务

步骤1 单击项目名称(lich-selfproject),进入项目。

最佳实践 2 SpringBoot 应用部署

(23)

步骤2 在顶部菜单栏单击“构建&发布 > 编译构建”,进入编译构建,如下图所示。

步骤3 单击“新建任务”,进入“新建编译构建任务”页面,如下图所示,选择源码源和已 经创建好的源码仓库,并根据需要选择分支。

步骤4 单击“下一步”,进入“新建编译构建任务-选择构建模板”页面,选择“Maven”模 板,如下图所示。

步骤5 单击“确定”,进入“构建步骤”页面,使用默认配置即可,如下图所示。

最佳实践 2 SpringBoot 应用部署

(24)

步骤6 切换到“参数设置”页面,为任务添加如下图所示参数。

步骤7 配置完所有信息,单击“新建”即完成创建。

----结束

2.4 创建主机组

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 进入“主机组管理”页面。

步骤3 单击右上角“新建主机组”,进入新建主机组-基本信息页面。

步骤4 设置完主机组基本信息,单击“保存”,进入“主机信息”页面,可以为主机组添加 主机。

----结束

2.5 创建主机

步骤1 进入“主机组管理”页面,如下图所示。

最佳实践 2 SpringBoot 应用部署

(25)

步骤2 找到目标主机组,单击主机组名称,进入“主机信息”页面,如下图所示。

步骤3 单击右上角“添加主机”,弹出“添加主机”对话框,如下图所示。

2-1 添加主机

最佳实践 2 SpringBoot 应用部署

(26)

2-1 参数说明

参数项 说明

主机名 必选,可自定义。

IP 必选,可自定义。

操作系统 必选,可自定义,如“Linux”。

授信方式 必须,可自定义,如“密码授信”。

用户名 必选,可自定义,如“root”。

密码 必选,可自定义。

ssh 端口 必选,可自定义,如“22”。

通过 SSH 代

理 可选,如不选。

步骤4 主机参数设置完成后,单击“添加”,添加完成的主机展示在主机信息列表,确保主机 授信成功,如下图所示。

----结束

2.6 创建部署任务

步骤1 单击项目名称(lich-selfproject),进入项目。

步骤2 在顶部菜单栏单击“构建&发布 > 部署”,进入部署服务,如下图所示。

步骤3 单击“新建任务”,选择模板任务,进入新建部署任务-基本信息页面,如下图所示。

最佳实践 2 SpringBoot 应用部署

(27)

2-2 参数说明

参数项 说明

任务名称 必选,任务名称,可自定义。

所属项目 任务所属的项目,不可修改。

描述 可选,任务描述,可自定义。

步骤4 设置完基本信息,单击“下一步”。

进入新建部署任务-选择部署模板页面,如下图所示。

最佳实践 2 SpringBoot 应用部署

(28)

2-2 新建部署任务-选择部署模板

步骤5 选择系统模板“SpringBoot应用部署”,单击“确认”,进入“部署步骤”页面,依 次配置如下任务步骤信息。

1. 停止SpringBoot服务,信息配置如下图所示。

2. 安装JDK,信息配置如下图所示。

最佳实践 2 SpringBoot 应用部署

(29)

3. 选择部署来源,信息配置如下图所示。

4. 启动SpringBoot服务,信息配置如下图所示。

最佳实践 2 SpringBoot 应用部署

(30)

5. 执行等待,信息配置如下图所示。

最佳实践 2 SpringBoot 应用部署

(31)

6. URL健康测试,信息配置如下图所示。

步骤6 部署步骤配置完后,切换到“参数设置”页面,为模板任务添加需要用到的参数。

步骤7 设置完所有信息,单击“保存”。

----结束

2.7 创建流水线

步骤1 在顶部菜单栏单击“构建&发布 > 流水线”,切换到流水线服务,如下图所示。

2-3 流水线

步骤2 单击右上角“新建流水线”,进入“新建流水线”页面,如下图所示。

最佳实践 2 SpringBoot 应用部署

(32)

2-4 新建流水线

步骤3 添加部署阶段。

在“发布仓库”阶段后单击 添加新阶段,然后单击该阶段旁的 ,弹出“阶段配 置”页面,信息配置如下图所示。

2-5 阶段配置

信息配置完成后,单击“保存”即可看到添加的阶段。

步骤4 添加阶段任务。

分别为构建阶段和部署阶段添加任务。

● 构建阶段任务

a. 单击构建阶段-任务列表下的“添加任务”,添加一条任务。

b. 单击任务旁的 ,选择“编辑任务”,弹出“任务配置”页面。

最佳实践 2 SpringBoot 应用部署

(33)

选择需要调用的任务并配置相关信息,各信息配置如下图所示。

2-6 构建阶段任务配置

c. 信息配置完成后,单击“保存”。

● 部署阶段任务

a. 同构建阶段,为部署阶段的默认任务配置任务信息,各信息配置如下图所 示。

最佳实践 2 SpringBoot 应用部署

(34)

2-7 部署阶段任务配置

b. 信息配置完成后,单击“保存”即可看到添加的任务和构建任务对应的仓库 信息。

步骤5 配置流水线参数。

单击流水线的“参数”页签,可以根据需要配置参数信息。

步骤6 配置完所有信息,单击“保存”,流水线任务即创建完成。

----结束

2.8 执行流水线

步骤1 在流水线任务列表,单击目标流水线名称,进入“流水线详情”页面。

步骤2 单击“全新执行”,弹出执行对话框。

步骤3 设置完执行参数,单击“确定”,开始执行流水线。

最佳实践 2 SpringBoot 应用部署

(35)

步骤4 执行完成后,可以查看任务执行结果。

● 单击任务旁的 ,可以查看仓库信息、复制仓库地址。

● 单击任务旁的 ,可以下载构建包。

● 单击任务旁的 ,可以查看日志信息。

● 单击任务旁的 ,可以单独执行任务。

----结束

最佳实践 2 SpringBoot 应用部署

(36)

3 实践--基于 haproxy 灰度发布

3.1 导读

3.2 实现方式一:替换haproxy配置文件 3.3 实现方式二:修改haproxy配置文件内容

3.1 导读

本次实践基于Haproxy的服务名、IP进行分流,实现灰度发布,关于Haproxy的更多信 息请参考haproxy官网 。

说明

● 本文中使用HA-Proxy version 1.5.18,供其他版本参考。

● 本文提供的shell命令仅供参考,具体命令还以用户实际场景为准。

● 本文试例中的test_A、test_B分别指A边用户和B边用户。

● 本文中添加haproxy服务的主机是root用户。(若为其他用户,需添加包含haproxy目录文件 的权限)

最佳实践 3 实践--基于 haproxy 灰度发布

(37)

3.2 实现方式一:替换 haproxy 配置文件

3.2.1 实现原理

● 在本地修改好的haproxy配置文件上传到私有发布仓库中。

● 通过部署任务将发布仓库的haproxy配置文件拷贝到搭建了haproxy的机器上。

● 通过部署平滑的启动haproxy服务。

3.2.2 操作步骤

步骤1 本地修改haproxy配置文件。

● 本地新建haproxy_A.cfg配置文件内容:

#server test_A 10.10.10.10:8080 server test_B 10.10.10.11:8080

haproxy_A.cfg配置文件表示:下线test_A边流量

● 本地新建haproxy_AB.cfg配置文件内容:

server test_A 10.10.10.10:8080

#server test_B 10.10.10.11:8080

haproxy_AB.cfg配置文件表示:上线test_A边流量同时下线test_B边流量

● 本地新建haproxy_B.cfg配置文件内容:

server test_A 10.10.10.10:8080 server test_B 10.10.10.11:8080

haproxy_B.cfg配置文件表示:上线test_B边流量

最佳实践 3 实践--基于 haproxy 灰度发布

(38)

步骤2 将修改后的haproxy配置文件上传至发布仓库中.

1. 登录首页,进入目标项目,单击顶部导航栏“发布”,进入发布详情页面。

2. 点击“上传”按钮,将本地修改好的的配置文件上传到发布中。

步骤3 新建主机组

● 新建主机组 > 添加主机,将部署了haproxy服务的这台机器添加到新建的主机组 中。(如何创建主机组 )

步骤4 新建部署任务

● 新建任务,添加“选择部署来源”和“执行shell命令”部署步骤。(如何创建部 署任务 )

1. 配置“选择部署来源”任务步骤:

– 主机组:选择部署haproxy服务的主机组。

– 选择软件包:选择发布仓库中的haproxy配置文件。(下线A,上线A 下线 B,再上线B)

– 下载到主机的部署目录:填写haproxy.cfg配置文件所在的目录。

最佳实践 3 实践--基于 haproxy 灰度发布

(39)

2. 配置“执行shell命令”任务步骤。

参考命令:

#!/bin/sh

#haproxy_A.cfg为发布仓库的配置文件名称,用户根据实际情况填写 Haproxy_cfg_Name="haproxy_A.cfg"

#/etc/haproxy/为用户安装haproxy服务机器上的haproxy.cfg配置文件的路径,用户根据实际情况填写 Haproxy_cfg_Path="/etc/haproxy"

#serviceName为切流量的服务名称 serviceName="haproxy"

port="1234" #haproxy的监听端口 now_time=`date +%Y%m%d%H%M%S`

cp $Haproxy_cfg_Path/haproxy.cfg $Haproxy_cfg_Path/haproxy.cfg.$now_time /usr/sbin/$serviceName -c -q -f $Haproxy_cfg_Path/$Haproxy_cfg_Name checkflag=$?

if [ "$checkflag" -eq 0 ] then

mv $Haproxy_cfg_Path/$Haproxy_cfg_Name $Haproxy_cfg_Path/haproxy.cfg sudo iptables -I INPUT -p tcp --dport $port --syn -j DROP

sleep 1

service haproxy reload #(参考命令)若已将haproxy注册成服务的形式

# 参考命令(没有注册成服务):/usr/sbin/$serviceName -D -f /etc/$serviceName/$serviceName.cfg - p /var/run/$serviceName.pid -sf $(cat /var/run/$serviceName.pid)

最佳实践 3 实践--基于 haproxy 灰度发布

(40)

sudo iptables -D INPUT -p tcp --dport $port --syn -j DROP else

echo "$Haproxy_cfg_Name 配置文件路径或内容格式错误"

return 1 fi

----结束

3.3 实现方式二:修改 haproxy 配置文件内容

3.3.1 实现原理

● 通过部署任务中的“执行shell命令”步骤修改用户haproxy机器上的配置文件。

● 通过部署任务中的“执行shell命令”步骤平滑的重启haproxy服务。

3.3.2 操作步骤

步骤1 新建主机组

● 新建主机组 > 添加主机,将部署了haproxy服务的这台机器添加到新建的主机组 中。(如何创建主机组 )

步骤2 编辑部署任务

1. 新建任务,添加两个“执行shell命令”部署步骤。(如何创建部署任务 )

2. 配置第一个“执行shell命令”任务步骤:修改用户的haproxy.cfg配置文件。

#!/bin/sh

#/etc/haproxy/为用户安装haproxy服务机器上的haproxy.cfg配置文件的路径,用户根据实际情况填写 Haproxy_cfg_Path="/etc/haproxy"

online_servername="" #上线主机名 offline_servername="" #下线主机名 port="1234" #haproxy的监听端口 now_time=`date +%Y%m%d%H%M%S`

cp $Haproxy_cfg_Path/haproxy.cfg $Haproxy_cfg_Path/haproxy.cfg.$now_time

[[ "$up_servername" != '' ]] && sed -i "/server $up_servername/s/#//g" $Haproxy_cfg_Path/

最佳实践 3 实践--基于 haproxy 灰度发布

(41)

haproxy.cfg

[[ "$down_servername" != '' ]] && sed -i "s/server $down_servername/#&/g" $Haproxy_cfg_Path/

haproxy.cfg

[[ "$up_servername" == '' && "$down_servername" == '' ]] && echo "请输入服务名" && exit echo "配置文件修改成功"

3. 配置第二个“执行shell命令”任务步骤:启动haproxy服务。

#!/bin/sh

#/etc/haproxy/为用户安装haproxy服务机器上的haproxy.cfg配置文件的路径,用户根据实际情况填写 Haproxy_cfg_Path="/etc/haproxy"

port="1234" #haproxy的监听端口

#serviceName为切流量的服务名称 serviceName="haproxy"

/usr/sbin/$serviceName -c -q -f $Haproxy_cfg_Path/$serviceName.cfg checkflag=$?

if [ "$checkflag" -eq 0 ]

then sudo iptables -I INPUT -p tcp --dport $port --syn -j DROP sleep 1

service haproxy reload #haproxy参考命令

# 或参考命令:/usr/sbin/$serviceName -D -f /etc/$serviceName/$serviceName.cfg -p /var/run/

$serviceName.pid -sf $(cat /var/run/$serviceName.pid) sudo iptables -D INPUT -p tcp --dport $port --syn -j DROP echo "切流量成功"

else echo "$serviceName.cfg 配置文件路径、或内容格式错误"

return 1 fi

----结束

最佳实践 3 实践--基于 haproxy 灰度发布

(42)

4 将多个软件包部署到不同目标主机

场景

一个代码仓库可能有多个模块,需要针对多个模块进行部署。

实现原理

● 可以为每个模块创建一个构建任务,构建出多个模块的jar包部署到目标机器上。

● 也可以创建一个构建任务,构建出多个模块的jar包,将每个jar包部署到目标机器 上。

操作步骤

以下是将每个jar包通过“部署服务”部署到用户目标机器的详细步骤:

步骤1 进入部署服务详情页面,点击“新建任务”按页面提示填写任务名称等,点击“下一 步”进入选择模板页面。

最佳实践 4 将多个软件包部署到不同目标主机

(43)

步骤2 在任务模板页面,点击“不使用模板、直接创建”,进入选择任务步骤页面。

步骤3 添加步骤,点击“所有步骤”中的“选择部署来源”。

步骤4 点击“参数设置”,添加动态参数。(静态参数一栏去掉√)

最佳实践 4 将多个软件包部署到不同目标主机

(44)

4-1 参数说明

参数名 参数描述

hostGroup 部署的主机组

releaseVersion 模块的Jar包的发布版本号 Moudle_Name 模块的jar包名称

Path 模块的Jar包的部署路径

步骤5 配置“选择部署来源”步骤中的配置信息。

步骤6 编辑完部署任务后,点击“执行”,根据参数值的不同,分别部署不同版本的软件 包。

最佳实践 4 将多个软件包部署到不同目标主机

(45)

即可实现将对应模块的jar包部署到目标机。

----结束

最佳实践 4 将多个软件包部署到不同目标主机

(46)

5 通过代理机进行内网部署

应用场景

对于拥有公网IP、弹性公网IP的企业,DevCloud-部署服务支持在企业私有云或自建机 房(不能访问公网)上部署应用。

前置准备

需要一台能访问公网的机器作为部署的代理机,其他不能访问公网的机器通过这台代 理机完成应用的部署。

操作步骤

步骤1 创建主机组:

1. 登录首页,进入目标项目。

2. 单击顶部菜单栏“设置 > 通用设置”,进入主机组管理页面。

3. 单击“新建主机组”,进入“新建主机组 > 基本信息”页面。

4. hostGroup主机组创建完成后,点击“添加主机”按钮,在主机组中添加代理机和 主机。

最佳实践 5 通过代理机进行内网部署

(47)

步骤2 在主机组中添加代理机:

1. 在hostGroup主机组中添加代理机,点击选择代理机,根据提示填写信息。

2. 连通性验证通过表示代理机添加成功

步骤3 在主机组中添加部署主机:

1. 在hostGroup主机组中添加部署目标主机。

最佳实践 5 通过代理机进行内网部署

(48)

2. 连通性验证通过表示部署主机添加成功。

步骤4 部署主机,通过代理机访问Internet,详细点击链接了解。

云主机通过代理机访问Internet 非云主机通过代理机访问Internet

步骤5 创建部署任务(将已经编译构建好的软件包,从发布仓库部署到用户的目标主机):

● 添加“选择部署来源”部署步骤:

a. 选择已经创建好的hostGroup主机组。

b. 选择从发布仓库已经编译构建好的软件包。

c. 填写该软件包到目标机的部署路径。

最佳实践 5 通过代理机进行内网部署

(49)

步骤6 执行部署任务:

编辑完部署任务后,点击执行按钮,部署任务执行成功。

----结束

最佳实践 5 通过代理机进行内网部署

(50)

6 在 DevCloud 部署任务中创建、执行数据库 脚本

应用场景

用户在主机上部署服务时,可能存在需要执行数据库脚本的操作,本文档提供一种使 用部署任务执行数据库脚本的方法。

实现原理

把用户自定义的shell脚本(集成数据库命令),从发布仓/代码仓部署到目标主机,并 在目标主机执行shell脚本。

准备工作

● 用户需要提前准备shell脚本,并上传到发布仓/代码仓。

● 用户需要提前准备一台可以连接数据库的主机,并且安装对应数据库客户端。

操作步骤

步骤1 进入部署服务首页,点击“新建任务”,填写任务名称等,单击“下一步”,进模板 选择页面。

最佳实践 6 在 DevCloud 部署任务中创建、执行数据库脚本

(51)

步骤2 在模板选择页面,单击“不使用模板、直接创建”,可进入添加任务步骤页面。

最佳实践 6 在 DevCloud 部署任务中创建、执行数据库脚本

(52)

步骤3 添加步骤,点击“所有步骤”中的“选择部署来源”。

● 任务配置如下图:

最佳实践 6 在 DevCloud 部署任务中创建、执行数据库脚本

(53)

步骤4 添加步骤,点击“所有步骤”中的“执行shell脚本”。

● 任务配置如下图:

最佳实践 6 在 DevCloud 部署任务中创建、执行数据库脚本

(54)

须知

● “下载shell脚本”和“执行shell脚本”需要在同一主机上完成。

● 执行方式选择“普通执行”

● Shell脚本路径填写“下载shell脚本”步骤中的下载目录。

----结束

Shell 脚本样例及说明

${db_connect_command} <<EOF

${test_sql};

`exit`;

EOF

其中:${ db_connect_command } 代表数据库连接命令

${test_sql} 代表数据库语句

最佳实践 6 在 DevCloud 部署任务中创建、执行数据库脚本

(55)

7 CCE 部署指导

7.1 导读

7.2 制作Docker镜像并推送到SWR镜像仓

7.1 导读

须知

此功能目前仅对2020年7月21日前使用过此功能的账号开放。

应用场景

在软件开发平台DevCloud上,将容器应用部署到用户CCE服务的专属kubernetes集群 上。

实现过程

1.

7.2 制作Docker镜像并推送到SWR镜像仓。

2.

Kubernetes部署。

7.2 制作 Docker 镜像并推送到 SWR 镜像仓

须知

此功能目前仅对2020年7月21日前使用过此功能的账号开放。

前置准备

制作Docker镜像需在代码托管服务新建代码仓库,上传制作好的“Dockerfile”文件。

最佳实践 7 CCE 部署指导

(56)

说明

● 代码仓库管理,需了解更多,请参考代码托管 。

● Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新 的镜像,它们简化了从头到尾的流程并极大的简化了部署工作。

● Dockerfile从FROM命令开始,紧接着跟随各种方法,命令和参数。

● Dockerfile制作请参见官网:http://www.docker.org.cn。

操作步骤

创建编译构建任务 创建编译构建任务,选择“制作镜像并推送到SWR仓库”构建步 骤,配置构建任务参数。

说明

详细步骤请参考将镜像推送到SWR镜像仓 。

最佳实践 7 CCE 部署指导

(57)

8 ContainerOps 流水线创建指导

须知

此功能目前仅对2020年7月21日前使用过此功能的账号开放。

1. 登录swr控制台 ,点击“持续交付”按钮,进入一站式容器持续交付

ContainerOps服务 。

2. ContainerOps为计费服务,目前只对在用客户开通(续费需要提工单申请)

3. 创建流水线组:为方便管理,ContainerOps支持创建流水线组完成对流水线的管 理,默认创建名为default的流水线组。

最佳实践 8 ContainerOps 流水线创建指导

(58)

4. 创建流水线:对于CCE/CCI部署,推荐使用自定义方式创建ContainerOps流水 线,如下图所示,点击“自定义模板创建”按钮可以进入流水线编辑界面。

5. 点击“自定义模板创建”按钮进入流水线编辑界面后,按如下步骤操作 a. 输入ContainerOps流水线名称;

b. 选择ContainerOps流水线所在的流水线组;

c. 在拓扑图中通过点击“+”按钮,支持在ContainerOps流水线添加多个步 骤,如下图所示;

d. 上述拓扑图中选定要编辑的步骤后,在阶段类型中选择“部署>正式发布”

(选择后,“阶段配置”将加载出内容);

最佳实践 8 ContainerOps 流水线创建指导

(59)

e. 在“阶段配置>输入资源”中选择要部署的镜像文件;

f. 根据实际需求,选择CCE、CCI两种部署类型。创建方式支持yaml高级创建方 式,支持用户自定义编写工作负载的yaml文件实现高级部署;

g. ContainerOps也支持对工作负载的高级设置,根据实际需求配置, 如下图所 示,配置完点击“提交”按钮;

最佳实践 8 ContainerOps 流水线创建指导

(60)

h. 当看到如下效果 ,说明ContainerOps流水线创建成功。

最佳实践 8 ContainerOps 流水线创建指导

(61)

9 通过 ContainerOps 部署 CCE/CCI

须知

此功能目前仅对2020年7月21日前使用过此功能的账号开放。

背景说明

● 该实践将介绍通过关联ContainerOps流水线,将容器应用部署到CCE/CCI。

● ContainerOps功能及使用指南请参考ContainerOps产品介绍 。

前置准备

1. 创建集群,请参考如何快速创建集群 。 2. 创建命名空间,请参考如何创建命名空间 。

3. 推送镜像到镜像仓库,请参考制作Docker镜像并推送到swr镜像仓。

操作步骤简述

1. 在ContainerOps中创建含有工作负载的ContainerOps流水线,详见创建

ContainerOps流水线指导手册;

2. ContainerOps流水线创建完成后,在Devcloud部署服务中新建“通过 ContainerOps部署CCE/CCI”任务关联创建好的ContainerOps流水线;

3. 工作负载的编辑(容器配置、访问方式更改等)需要在ContainerOps服务中操 作;

4. DevCloud和ContainerOps支持步骤参数化,“通过ContainerOps部署CCE/

CCI”步骤支持将ContainerOps流水线中定义好的变量映射到DevCloud中,通过 动态替换实现DevOps高效部署,操作指南详见请参见:

a.

Devcloud创建部署任务;

b.

ContainerOps参数化部署;

c.

Devcloud参数化部署ContainerOps;

d.

DevCloud流水线对接部署任务。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(62)

Devcloud 创建部署任务

1. 登录首页,搜索目标项目,单击项目名称进入项目。

2. 单击顶部菜单“构建&发布 > 部署”进入项目部署。

3. 单击“新建任务”按钮,进入“新建部署任务-基本信息”页面,如下图所示。

4. 设置完基本信息,单击“下一步”,进入选择部署模板页面,选择“不使用模 板,直接创建”进入步骤选择界面。如下图所示。

5. 在添加步骤界面选择“容器类>通过ContainerOps部署CCE/CCI”,进入任务编辑 界面,如下图所示。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(63)

6. 进入“通过ContainerOps部署CCE/CCI”功能,点击ContainerOps流水线右边的

,选择已创建的ContainerOps流水线。如下图所示。

7. 选定要执行的流水线后,点击下方的“保存并执行”按钮,启动ContainerOps流 水线的运行,实现工作负载的部署。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(64)

8. 执行完成后,点击“实例列表>查看实例详情”查看可以工作负载实例列表启动事 件以及服务列表。如下图所示。

ContainerOps 参数化部署

● 为方便用户在DevCloud中动态修改工作负载的属性配置,DevCloud和 ContainerOps流水线支持参数化机制。

● 下面以镜像名称、镜像版本作为参数化实践的演示示例。

1. 编辑ContainerOps流水线,在“全局变量”中新增名为“imageName”和

“imageVersion”的变量,并赋予初始值。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(65)

2. 在拓扑图中选中需要编辑的步骤,在下方的“阶段配置”中采用“${变量名}”的 方式进行变量替换。如下图所示。

3. 创建方式采用yaml方式,可以替换工作负载的属性值,增大变量替换的灵活性,

最大可能的实现工作负载属性的参数化。如下图所示。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(66)

4. 在DevCloud部署任务中选择“通过ContainerOps部署CCE/CCI”功能,选择已设 置了全局变量的ContainerOps流水线后,ContainerOps流水线变量映射到

“ContainerOps全局变量”中,用户在执行DevCloud部署任务时对变量重新赋值

(蓝框标记为重新赋予的变量值),如下图所示。

5. 工作负载的镜像和CPU申请值都已被修改,如图21所示。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(67)

Devcloud 参数化部署 ContainerOps

1. 部署服务参数设置:在文本框左上角单击 切换到列表形式,增加需 要替换的参数,并赋予默认值。

2. 在部署任务中使用“${参数名}”的方式引用设置好的参数,如下图所示。

DevCloud 流水线对接部署任务

1. 将参数(例如:下图所示的image、version)设为非静态参数,即不勾选“静态 参数”属性。

2. 部署任务对接DevCloud流水线。在流水线中添加任务的类型选择“部署”,选定 关联的部署任务,该任务中的“非静态参数”自动关联到DevCloud流水线,如下 图所示,DevCloud流水线参数使用详见流水线参数化 。

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

(68)

最佳实践 9 通过 ContainerOps 部署 CCE/CCI

數據

表 1-1 参数说明 参数项 说明 主机名 必选,可自定义。 IP 必选,可自定义。 操作系统 必选,可自定义,如“Linux”。 授信方式 必须,可自定义,如“密码授信”。 用户名 必选,可自定义,如“root”。 密码 必选,可自定义。 ssh 端口 必选,可自定义,如“22”。 通过 SSH 代 理 可选,如不选。 步骤4 主机参数设置完成后,单击“添加”,添加完成的主机展示在主机信息列表,确保主机 授信成功,如下图所示。 ----结束 1.6 创建部署任务 背景说明 将Web应用部署在Tomcat上
表 2-1 参数说明 参数项 说明 主机名 必选,可自定义。 IP 必选,可自定义。 操作系统 必选,可自定义,如“Linux”。 授信方式 必须,可自定义,如“密码授信”。 用户名 必选,可自定义,如“root”。 密码 必选,可自定义。 ssh 端口 必选,可自定义,如“22”。 通过 SSH 代 理 可选,如不选。 步骤4 主机参数设置完成后,单击“添加”,添加完成的主机展示在主机信息列表,确保主机 授信成功,如下图所示。 ----结束 2.6 创建部署任务 步骤1 单击项目名称(lich-selfp
表 4-1 参数说明 参数名 参数描述 hostGroup 部署的主机组 releaseVersion 模块的Jar包的发布版本号 Moudle_Name 模块的jar包名称 Path 模块的Jar包的部署路径 步骤5 配置“选择部署来源”步骤中的配置信息。    步骤6 编辑完部署任务后,点击“执行”,根据参数值的不同,分别部署不同版本的软件 包。最佳实践 4 将多个软件包部署到不同目标主机

參考文獻

相關文件

勞動部勞動力發展署桃竹苗分署 15 配管與暖氣 006 廖威辰 臺中市立臺中工業高級中等學校 勞動部勞動力發展署中彰投分署. 15 配管與暖氣

12 建築舖面 施浚澤 明道學校財團法人明道大學 勞動部勞動力發展署中彰投分署 國立秀水高級工業職業學校 12 建築舖面 陳武鑫 國立土庫高級商工職業學校

局部性協定:在拉丁美洲整合協會(ALADI)架構下與 7 個國家簽 署 9

鄭龍全 勞動部勞動力發展署雲嘉南分署 02 工業控制 優勝. 02

12 建築舖面 1 趙昱翔 勞動部勞動力發展署雲嘉南分署 12 建築舖面 2 陳柏任 勞動部勞動力發展署雲嘉南分署 12 建築舖面 3 張伊汶 高雄市立高雄高級工業職業學校 12

(二) 103年9月29日(星期一)上午9時起於勞動部勞動力發展署

勞動部勞動力發展署桃竹苗分署

勞動部勞動力發展署桃竹苗分署