更新时间:2025-05-21 gmt 08:00

tf模板包-j9九游会登录

运维中心集成华为云资源编排服务rfs,用于管理系统资源及服务资源。rfs主要包含模板和资源栈两部分,tf模板是用来创建、更新资源栈的脚本。

研发包结构

service下所有的main.tf文件中的resource实例不能有重叠,否则会导致资源被覆盖或删除。

图1 研发包结构
表1 研发包结构介绍

文件名

说明

service(推荐方式)

按云服务维度的资源模板,整个云服务涉及资源的生命周期都在同一个rfs资源模板中管理。

microservice

按微服务维度的资源模板管理,当一个云服务的每个微服务有单独的资源时使用。

envxname

云服务/微服务部署环境,每个环境的rfs包资源都是与环境配套,每个环境都有单独的资源模板。

package.json

固定名称与格式,发布包版本信息,类型,软件包名称,版本。

{
    "type": "rfstemplate",    // 固定
    "name": "templatename",   // rfs模板名称,服务下唯一
    "envid": "envid1",        // 云服务的环境id
    "version": "1.0.0",       // rfs模板版本号
    "maintf": "main.tf",      // 实际创建资源的tf文件
    "variablestf": "variable.tf"   // 存储参数变量的tf文件
}

main.tf

rfs实际使用的模板文件,通过此文件来管理华为云资源。当前支持的华为云资源有cce、dcs、dns、ecs、kafka、rds及vpc,模板文件样例分别参考cce资源rfs模板文件dcs资源rfs模板文件dns资源rfs模板文件ecs资源rfs模板文件kafka资源rfs模板文件rds资源rfs模板文件vpc资源rfs模板文件

详细的开发规范请参考。

variable.tf

rfs资源模板中涉及到的变量值,可能多个云服务变量名称不一致,提取出来单独设置。样例如下:

cce-name-1234: "cce-cluster-ers"

建议敏感数据不在此文件设置,敏感数据在界面手动输入。

发布包结构

发布包作为package发布,以服务或微服务加上环境名称命名为发布包。
图2 发布包结构

cce资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_cce_cluster": {
			"cce-cluster-yfclf": {
				"vpc_id": "18b117f8-****-****-****-6d022db472a1",
				"name": "cce-cluster-rfs-001",
				"cluster_version": "v1.27",
				"charging_mode": "postpaid",
				"flavor_id": "cce.s2.small",
				"container_network_type": "vpc-router",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a"
			}
		},
		"huaweicloud_cce_node": {
			"cce-node-pmqnn": {
				"name": "cce-node-rfs-001",
				"charging_mode": "postpaid",
				"flavor_id": "c7.large.2",
				"os": "huawei cloud euleros 2.0",
				"runtime": "containerd",
				"root_volume": {
					"size": 50,
					"volumetype": "sas"
				},
				"password": "${var.cce-node-password-u9fi}",
				"cluster_id": "d6eb9020-****-****-****-0255ac1000ac",
				"availability_zone": "cn-north-4c",
				"data_volumes": [{
					"volumetype": "sas",
					"size": 100
				}],
				"storage": {
					"selectors": [{
						"name": "cceuse",
						"type": "evs",
						"match_label_count": 1,
						"match_label_size": 100,
						"match_label_volume_type": "sas"
					}],
					"groups": [{
						"name": "vgpaas",
						"cce_managed": true,
						"selector_names": ["cceuse"],
						"virtual_spaces": [{
							"name": "runtime",
							"size": "90%",
							"runtime_lv_type": "linear"
						}, {
							"name": "kubernetes",
							"size": "10%",
							"lvm_lv_type": "linear"
						}]
					}]
				},
				"depends_on": ["huaweicloud_cce_cluster.cce-cluster-yfclf"],
				"subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a"
			}
		}
	},
	"variable": {
		"cce-node-password-u9fi": {
			"description": "password for cce-node-pmqnn",
			"type": "string",
			"sensitive": true,
			"nullable": false,
			"default": ""
		}
	}
}

dcs资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_dcs_instance": {
			"dcs-cx83b": {
				"charging_mode": "postpaid",
				"availability_zones": ["cn-north-4a", "cn-north-4a"],
				"vpc_id": "18b117f8-****-****-****-6d022db472a1",
				"subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a",
				"maintain_begin": "18:00:00",
				"maintain_end": "22:00:00",
				"engine_version": "5.0",
				"capacity": 1,
				"flavor": "redis.ha.xu1.large.r2.1",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"password": "${var.dcs-password-qvwu}",
				"name": "dcs-rfs-001",
				"engine": "redis"
			}
		}
	},
	"variable": {
		"dcs-password-qvwu": {
			"description": "dcs password for dcs-cx83b",
			"type": "string",
			"sensitive": true,
			"nullable": true,
			"default": null
		}
	}
}

dns资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_dns_zone": {
			"dns-zone-iz7r1": {
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"zone_type": "private",
				"router": {
					"router_id": "c6131e37-****-****-****-5fffa75982f3"
				},
				"name": "exampleninenine.com"
			}
		}
	}
}

ecs资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_compute_instance": {
			"ecs-qh7h5": {
				"name": "ecs-rfs-001",
				"charging_mode": "postpaid",
				"admin_pass": "${var.ecs-password-ia2c}",
				"flavor_id": "s6.small.1",
				"system_disk_type": "sas",
				"availability_zone": "cn-north-4a",
				"network": {
					"uuid": "bef6af2f-****-****-****-9e78ef03eb6a"
				},
				"security_group_ids": ["986d4460-****-****-****-f5f237df42c0"],
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"system_disk_size": 40,
				"image_id": "86405805-****-****-****-09f30b497c98"
			}
		}
	},
	"variable": {
		"ecs-password-ia2c": {
			"description": "ecs password for ecs-qh7h5",
			"type": "string",
			"sensitive": true,
			"nullable": true,
			"default": null
		}
	}
}

kafka资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_dms_kafka_instance": {
			"kafka-gq8ef": {
				"manager_password": "${var.kafka-manager-password-nsbl}",
				"name": "kafka-rfs-001",
				"charging_mode": "postpaid",
				"manager_user": "kafka-manager-rfs",
				"flavor_id": "s6.2u4g.cluster.small",
				"engine_version": "3.x",
				"broker_num": 3,
				"storage_spec_code": "dms.physical.storage.high.v2",
				"availability_zones": ["cn-north-4a"],
				"storage_space": 300,
				"vpc_id": "18b117f8-****-****-****-6d022db472a1",
				"network_id": "bef6af2f-****-****-****-9e78ef03eb6a",
				"security_group_id": "32ed0723-****-****-****-7c0fb748d436",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"retention_policy": "time_base"
			}
		}
	},
	"variable": {
		"kafka-manager-password-nsbl": {
			"description": "manager password for kafka-gq8ef",
			"type": "string",
			"sensitive": true,
			"nullable": false,
			"default": ""
		}
	}
}

rds资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_rds_instance": {
			"rds-instance-yaqsb": {
				"name": "rds-rfs-001",
				"charging_mode": "postpaid",
				"db": {
					"type": "mysql",
					"version": "8.0",
					"password": "${var.rds-password-u6z0}"
				},
				"ha_replication_mode": "async",
				"volume": {
					"size": 40,
					"type": "ultrahigh"
				},
				"vpc_id": "18b117f8-****-****-****-6d022db472a1",
				"subnet_id": "bef6af2f-****-****-****-9e78ef03eb6a",
				"security_group_id": "32ed0723-****-****-****-7c0fb748d436",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"availability_zone": ["cn-north-4c", "cn-north-4c"],
				"flavor": "rds.mysql.c6.large.2.ha"
			}
		}
	},
	"variable": {
		"rds-password-u6z0": {
			"description": "password for rds-instance-yaqsb",
			"type": "string",
			"sensitive": true,
			"nullable": false,
			"default": ""
		}
	}
}

vpc资源rfs模板文件

{
	"terraform": {
		"required_providers": {
			"huaweicloud": {
				"source": "huawei.com/provider/huaweicloud",
				"version": "1.56.0"
			}
		}
	},
	"provider": {
		"huaweicloud": {
			"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3",
			"insecure": true,
			"region": "cn-north-4"
		}
	},
	"resource": {
		"huaweicloud_vpc": {
			"vpc-krkup": {
				"name": "vpc-rfs-001",
				"cidr": "192.168.0.0/16",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d"
			}
		},
		"huaweicloud_vpc_subnet": {
			"vpc-subnet-ppnwk": {
				"name": "subnet-rfs-001",
				"cidr": "192.168.3.0/24",
				"gateway_ip": "192.168.3.1",
				"vpc_id": "c6131e37-****-****-****-5fffa75982f3",
				"depends_on": ["huaweicloud_vpc.vpc-krkup"]
			}
		},
		"huaweicloud_vpcep_endpoint": {
			"vpcep_endpoint-4epnv": {
				"service_id": "ebc591db-****-****-****-15354c9bef25",
				"network_id": "${huaweicloud_vpc_subnet.vpc-subnet-ppnwk.id}",
				"vpc_id": "${huaweicloud_vpc_subnet.vpc-subnet-ppnwk.vpc_id}"
			}
		},
		"huaweicloud_networking_secgroup": {
			"sg-rmo7v": {
				"name": "sg-rfs-all-deny",
				"enterprise_project_id": "2191bb05-****-****-****-96f098494b8d",
				"description": "通用web服务器,默认放通22、3389、80、443端口和icmp协议。 适用于需要远程管理、公网ping及用于网站服务的云服务器场景。",
				"depends_on": ["huaweicloud_vpc.vpc-krkup"]
			}
		},
		"huaweicloud_networking_secgroup_rule": {
			"sg-rule-d28sj": {
				"action": "allow",
				"direction": "ingress",
				"ethertype": "ipv4",
				"protocol": "icmp",
				"remote_ip_prefix": "0.0.0.0/0",
				"priority": 1,
				"security_group_id": "${huaweicloud_networking_secgroup.sg-rmo7v.id}"
			}
		}
	}
}

相关文档

网站地图