CADT命令行交互过程中有几个命令需要指定一个配置文件,例如 apply, step-apply, create-app 等命令,配置文件以YAML文件格式定义,配置文件定义了一个应用创建所需的基本信息。
单个应用的配置文件
单个应用的配置文件定义格式及支持的参数如下所示:
template_id: UG4OSRXVYW55LV40
app_name: UG4OSRXVYW55LV40-0725
instances:
- node_type: vpc
node_name: vpc
id: vpc-bp14jafqpzwf26cr9tnfc
- node_type: vswitch
node_name: vswitch
id: vsw-bp14kpnfhfw70kt76xpn7
variables:
${rds_name}: "RDS主实例-0607"
${rds_storage}: "200"
${rds_ro_name}: "RDS只读实例-0607"
${rds_ro_type}: "mysqlro.n4.medium.c"
${rds_ro_storage}: "200"
${rds_ro_count}: "3"
configuration:
enableMonitor: "0"
enableReport: "0"
output:
rds:
- ConnectionString
- Port
rords:
- ConnectionString
- Port参数说明:
template_id: LKKUIYBDYEKCD
# 模板ID,必填项。模板是应用创建的来源,可以从控制台上查询到模板ID。
app_name_prefix: "app-name-test"
# 创建的应用名前缀,后缀将附上一串10位随机码。
# 例如上述前缀生成的应用名称将是app-name-test-MNCRLIYPLJ
app_name: "app-name-test"
# 创建的应用名称。app_name 和app_name_prefix都定义了的情况下,以app_name为准。
area_id: "cn-hangzhou"
# 模板的地域。一个模板有多个地域的版本,指定area_id可以指定某个地域版本。
resource_group_id: "rg-oiwerlasdfiwer"
# 资源组ID,指定资源组ID可以将生成的CADT应用进行分组。但最终生成的应用内的资源不受此参数影响。instances
# instances实例指定已保有资源的传参,类型为list<map>。
# 以下为例,如果需要替换模板中的vpc为已保有的vpc实例,那么传参的内容如下:
instances:
- node_type: vpc # node_type,已保有实例的类型
node_name: vpc-name # node_name, 模板中该类型实例的节点名称,此例为“vpc-name”
id: vpc-iasdfasdewrqasdf # id,需要传递的已保有实例ID在 CADT 可视化编辑器右侧的专有网络VPC 详情面板中,VPC名字段值即为 instances 传参中的 node_name,购买方式为新购表示该资源为模板中待新建的资源。
variables:
# 模板变量传参。在创建应用过程中,给模板中的变量赋值,类型为 <map>,值均以字符串形式传递。
# 例如clb实例名称被定义为模板变量,那么配置内容格式如下:
variables:
${clb_name}: "clb-test"在模板设计器中,负载均衡 CLB 的实例名称字段被设置为变量 ${slb_name}。
# 例如RDS存储大小被定义成变量,那么配置内容格式如下:
variables:
${rds_storage}: "100" # 例如监听配置被定义成了变量,那么配置内容如下:
variables:
${clb_lp2}:'[{"name":"GW-group02-10021","frontend_port":"10021","protocol":"tcp","scheduler":"sch","acl_status":"false","sticky_session":"false"}]'在 IaC 可视化设计器画布中,双击 CLB 与虚拟服务器组之间的连线可打开右侧属性面板,在添加监听区域的输入框中可看到模板变量(如 ${clb_lp2}),该变量即为监听配置的参数化定义位置。
configuration
# CADT部署过程的参数,例如部署过程不生成report,不开启云监控分组等。
# 具体格式如下:
configuration:
enableMonitor: "0"
enableReport: "0"output
# CADT应用部署成功后,可以通过output配置,指定输出资源的某些属性,例如公网IP等。
# 例如下面配置,将应用部署后所有ECS的IP地址输出。
output:
ecs:
- Private_ip多个应用的配置文件
CADT命令行工具支持同时创建多个应用,按序部署或并发部署。
按序部署多个应用的配置文件
对应CADT的命令step_apply,配置文件以“step”开头,以list<map>格式定义。 列表内每一个map对应一个应用的配置。
step:
- template_id: CFVRAL28AKKUWL4T
area_id: cn-hangzhou
app_name_prefix: "Group-01"
instances:
- node_type: vpc
node_name: vpc
id: vpc-bp14jafqpzwf26cr9tnfc
- node_type: vswitch
node_name: vswitch
id: vsw-bp19zv64bu25hy7kcebys
- node_type: security_group
node_name: security_group
id: sg-bp16rl52hr6pccqpqkuj
variables:
${clb_name}: "slb01"
${clb_lp1}: '[{"name":"GW-group01-10011","frontend_port":"10011","protocol":"tcp","scheduler":"sch","acl_status":"false","sticky_session":"false"}]'
${clb_lp2}: '[{"name":"GW-group01-10012","frontend_port":"10012","protocol":"tcp","scheduler":"sch","acl_status":"false","sticky_session":"false"}]'
${clb_vg1}: "GW-group01-10011"
${clb_vg2}: "GW-group01-10011"
${clb_bp1}: '[{"backend_port":"10011","weight":"100"}]'
${clb_bp2}: '[{"backend_port":"10011","weight":"100"}]'
${ecs01_name}: "GW001"
${ecs02_name}: "GLS001"
${ecs03_name}: "Chat001"
${rds_name}: "RDS001"
${rords_name}: "RORDS001"
${rords_type}: "mysqlro.n2.medium.1c"
${redis_name}: "REDIS001"
- template_id: CFVRAL28AKKUWL4T
area_id: cn-hangzhou
app_name_prefix: "Group-02"
instances:
- node_type: vpc
node_name: vpc
id: vpc-bp14jafqpzwf26cr9tnfc
- node_type: vswitch
node_name: vswitch
id: vsw-bp19zv64bu25hy7kcebysstep:
- template_id:
area_id:
app_name:
instances:
- template_id:
area_id:
app_name:
instances:并行创建多个应用的配置文件
对应CADT命令batch_apply,配置文件以“parallel”开头,以list<map>格式定义。列表内每一个map对应一个应用的配置。
parallel:
- template_id:
area_id:
app_name:
instances:
- template_id:
area_id:
app_name:
instances:该文章对您有帮助吗?