共计 3662 个字符,预计需要花费 10 分钟才能阅读完成。
如何通过云效 Flow 实现自动化部署—主机部署,云效流水线 Flow 是继续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,实现从开发到上线过程的继续交付。通过继续向团队提供及时反馈,让交付过程高效顺畅,Flow 提供了通用的部署能力该篇内容留神解说如何通过云效 Flow 实现自动化部署—主机部署
新建部署工作
为了创立部署组,须要先在流水线中增加「主机部署」工作。用户能够通过以下形式增加部署工作。
- 应用模板新建流水线,抉择蕴含“部署”工作的模板
- 在已有的流水线中,增加新的阶段,并抉择「部署」工作
流水线模版创立
新建流水线时,抉择对应的开发语言,能够查看以后语言下的默认流水线模版,抉择带有“部署”节点的流水线模版,即可疾速应用构建能力。
编排流水线,增加部署工作
一、主机部署
云效 Flow 提供了通用的部署能力,反对业务被部署到不同国家,不同云厂商环境还有你的公有环境的主机中。
云效 Flow 目前反对部署以下的主机类型:
- 阿里云 ECS
二、主机组
主机组是什么?每个 Web 利用,在集成测试的环境(通常称作日常环境)、预发的环境(称作预发环境)、对外提供服务的环境(称作正式环境)等不同的环境里运行。
对应在 Flow 中,咱们把这些环境称之为「主机组」,也就是该利用运行在若干台机器(虚拟机 / 容器)。
前置工作
能够通过两种形式创立主机组:
办法一:通过「主机组治理」增加主机组
办法二:先在流水线中增加「主机部署」工作。用户能够通过以下形式增加部署工作。
- 应用模板新建流水线,抉择蕴含“部署”工作的模板
- 在已有的流水线中,增加新的阶段,并抉择「主机部署」工作
如何应用增加部署工作,可查阅“部署”一节
创立主机组
在部署工作中,点击「新建主机组」,进入新建主机组的流程。
你能够创立三种类型的主机组:
- 阿里云 ECS
部署到阿里云 ECS - 能够出公网的非阿里云主机
部署到公网主机 - 不可拜访公网的非阿里云主机(行将上线)
2、部署到阿里云 ECS
云效流水线 Flow 反对部署到阿里云 ECS。你能够依照以下形式,将你的阿里云 ECS 退出主机组,从而让流水线能对其进行部署。
创立阿里云 ECS 类型主机组
增加形式——间接增加
1)新建主机组,抉择【主机类型】为 “ 阿里云 ECS”。
2)抉择【服务受权】和【地区】,展现【可增加的主机列表】,可【新建服务受权】。
3)抉择你想要增加至主机组的 ECS 主机。
4)编辑主机信息,包含主机组名称、环境、标签;主机组成员权限的配置,创建人默认为企业拥有者;点击保留,即可实现主机组的创立。
5)至此,你可在流水线中抉择应用该主机组了。
对部署权限的阐明,可查看“主机组成员权限”一节
增加形式——通过 ECS 标签增加
同时,主机组反对通过 ECS 标签增加,如果您应用 ECS 标签对 ECS 资源进行分类管理,能够间接在 Flow 中建设主机组和 ECS 标签的关联。
StarAgent
为保障部署通道可用性,进步部署成功率,飞流采纳了云助手 (https://help.aliyun.com/docum…) 和 Staragent 双通道计划,云助手在阿里云 ECS 会默认装置,在新增和批改部署组的时候,飞流会通过云助手主动装置 StarAgent。
StarAgent 介绍
StarAgent 是阿里巴巴团体服务器运维基础设施,承载了全团体的服务器交互工作。StarAgent 是打造全网通,7*24 不间断提供服务,安全可靠,日均亿级调用量,99.995% 的零碎成功率的命令通道。通过阿里巴巴团体平安团队对 StarAgent 进行了平安加固。重置帐号密钥,客户端服务端应用不同的加密形式,在服务器上执行的命令进行全量审计等安全策略为命令通道保驾护航。
StarAgent 根底操作
查看状态:/home/staragent/bin/staragentctl status;
启动:/home/staragent/bin/staragentctl restart;
重启:/home/staragent/bin/staragentctl restart;
卸载:1. /home/staragent/bin/staragentctl stop;
2. rm -rf /home/staragent;
3. rm /usr/sbin/staragent_sn
3、部署到公网主机
通过在对应主机中添装置 Agent 的形式,云效流水线 Flow 反对部署到非阿里云的公网主机(包含其余私有云主机或者能够联通公网的自有主机)。
你能够依照以下形式,将你的公网主机退出主机组,从而让 Flow 能对其进行部署。
创立自在主机类型主机组
1)新建主机组,抉择【主机类型】为“自有主机”。
2)展现【可增加的主机列表】,如果想要增加新的自有主机至【可增加的主机列表】,请复制主机增加指令。
3)请关上你须要增加进主机组部署的主机的命令行,并将前序操作中复制的命令,在你的自有主机上执行(请留神,主机须要能拜访公网)。
4)主机增加指令执行后,期待 1 - 2 分钟后,自有主机会导入【可增加的主机列表】,抉择你想要增加至主机组的自有主机。
5)编辑主机信息,包含主机组名称、环境、标签;主机组成员权限的配置,创建人默认为企业拥有者;点击保留,即可实现主机组的创立。
6)至此,你可在流水线中抉择应用该主机组了。
图 6. 应用主机组
对部署权限的阐明,可查看“流水线成员权限”一节
三、部署配置
在流水线的部署组件中,须要进行部署配置。本篇文档会给出一个示例,供你参考,如何配置。
提前准备
1、从示例代码库新建一个 SpringBoot 代码库:https://code.aliyun.com/code-…。其中蕴含启动脚本 deploy.sh:https://code.aliyun.com/code-…。
2、在部署机装置 Java 运行环境
3、在流水线构建出制品
为了进行部署,首先须要构建出制品。Flow 中的制品是一个 tgz 压缩包,在构建工作中能够指定一个或者多个文件(文件夹),Flow 的制品中就会蕴含这些文件(文件夹)。详情能够参考文档上传到 Flow 的制品库。
在本例中,须要将 target/application.jar 和 deploy.sh 两个文件打包到制品中。因而须要在构建工作中按上面的形式进行配置:
主机部署配置
在主机部署工作中,能够进行部署相干的配置,用于将构建产物在部署机上进行装置。
下载门路
部署配置中的下载门路就是构建物上传步骤产出的压缩包将要被下载到你的主机上的门路,本例中为:/home/admin/app/package.tgz
执行用户
填写执行部署脚本的用户,如 root,或者 admin 等。本例中为 root
部署脚本
因为理论的部署脚本曾经打包到了构建产出的压缩包中,因而部署脚本能够简略的进行解压和执行即可
mkdir -p /home/admin/application
tar zxvf /home/admin/app/package.tgz -C /home/admin/application/
sh /home/admin/application/deploy.sh restart
四、部署策略
实在的上线过程,如果采纳全量公布,会给开发运维团队带来未知的危险,为了缩小公布对线上业务的影响,Flow 提供了灰度公布,分批公布能力,最大限度的防止了不稳固公布对用户的影响,保障业务交付的稳固。
主机分批部署
如果你一次须要公布多台主机,Flow 反对分批公布,您可在主机部署工作中,能够指定对应的部署策略。如果你有 4 台主机,抉择分 2 批公布,则每一批主动公布 2 台主机。
-
暂停形式
- 第一批暂停:第一批公布完后,您可后行验证,点击持续后可执行后续公布。
- 不暂停:每一批公布完后,主动执行后续批次的公布。
- 每批暂停:每一批公布完后,都须要手动确认持续公布。
-
分批数量
- 指定主机分批的数量,指定分批公布的数量,会依照相应的数量进行分批部署。
五、查看部署详情
流水线配置实现,在流水线运行页面,在“主机部署”工作中,能够点击【部署详情】查看部署过程。
部署详情
部署单会显示以后部署的整体状态和状况。
部署状态
部署中:能够执行【终止】操作,及查看日志
暂停中:能够执行【终止】,【持续下一批】操作,及查看部署日志
胜利:能够查看部署日志
失败:能够查看部署日志,并在卡片视图上从新发动部署
机器状态
待部署:无操作
部署中:能够查看部署日志
胜利:能够查看部署日志
失败:能够查看部署日志,并重试单台机器
常见部署问题,可查看“部署常见问题”一节
六、部署历史 和 回滚
用户可在 流水执行记录 —> 部署历史 中,查看到该流水线所有执行的部署历史记录,并可抉择其中任意一条历史记录进行回滚操作。
Flow 会依据过后运行的部署脚本和构建制品从新执行部署工作,以实现回滚的成果。
如何通过云效 Flow 实现自动化部署—主机部署, 云效流水线 Flow 是继续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,实现从开发到上线过程的继续交付。通过继续向团队提供及时反馈,让交付过程高效顺畅,Flow 提供了通用的部署能力该篇内容留神解说通过云效 Flow 实现自动化部署—主机部署。