配置文件说明

更新时间:
复制 MD 格式

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-bp19zv64bu25hy7kcebys
step:
  - 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: