开发自动部署模板
自动部署模板基于Terraform进行开发。Terraform是一个开源的自动化资源编排工具,使用Terraform管理云资源的流程如下图所示。在运行本示例之前,您需要先参考Terraform的快速入门完成Terraform的安装、配置,使用Terraform完成华为云VPC的创建。同时学习华为云资源编排服务RFS,掌握如何创建资源栈、创建执行计划、删除资源栈等。
Terraform支持使用配置文件描述单个应用或整个数据中心。通过Terraform您可以轻松的创建、管理、删除华为云资源,并对其进行版本控制。Terraform支持编排的华为云资源请参考:HuaweiCloud Provider。
自动部署模板的源码位于code目录下,code的目录结构如下图所示。
其中modules下面包含了ecs、eip、evs、rds、elb、vpc等多个模块,分别提供了创建ECS、EIP、EVS、RDS、elb、VPC等云服务的相关功能,您可以根据您的实际业务使用。在solutions中目前包含五个场景化的示例模板,每个场景化示例模板的功能如下:
- ecs-cluster-deployment, ECS集群化部署模板,其中包含了两个ECS、一个RDS、一个ELB和一个EIP。
- ecs-fg-init-deployment,ECS和FunctionGraph的部署模板,在ECS创建完成之后,借助于FunctionGraph执行shell脚本。
-
ecs-ha-deployment,ECS的高可用部署模板,其中包含了两个ECS,每个ECS上绑定了多张网卡,且每张网卡支持绑定不同的安全组。
- single-node-ecs-deployment,新建VPC的ECS单节点部署,其中包含了一个ECS、一个RDS和一个EIP。
- single-node-ecs-deployment-ExistingVPC,基于已有VPC和子网的ECS单节点部署,其中包含了一个ECS、一个RDS和一个EIP。
每个模板的组成包括:.extension、main.tf、outputs.tf、providers.tf、variables.tf和versions.tf,下面分别介绍各个文件的作用,详细的使用方法可参考每个场景化示例模板目录下的README.md。
- .extension,RFS的扩展能力,用户帮助用户更好的配置参数,理解参数,更多信息可参考:Extension简介。
- main.tf,自动部署模板的执行入口,包含了创建云资源的具体代码逻辑。
- outputs.tf,自动部署的输出信息,比如ECS的资源Id。
- providers.tf,huaweicloud provider的配置信息,本地调测的时候,我们推荐您使用环境变量的方式配置ak和sk,不要在providers.tf文件中直接配置ak和sk。
- variables.tf,部署模板中定义的变量,需要部署时手工输入,比如ECS实例的密码。
- versions.tf,huaweicloud provider的版本,我们推荐您采用>=配置provider的版本号,比如version = ">= 1.56.0"。