设计Terraform 的 Variable 时,有时你会想要传入一个复杂类型的对象,例如我们在 Module 中创建一个 Subnet 时,会需要一组有关 Virtual Network 的信息。这时我们可以选择通过一个 Variable 让调用者传入一个对象来传递这些信息,比如这样: variable "virtual_network" { type = object({ id = string name = strin...
例如这是 CloudPosse 的一个 Module 项目,它包含了一个examples文件夹,内含一组样例 Terraform 代码用以向使用者展示该 Module 的用法;另外还包含了一个test文件夹,内含一个examples_complete_test.go文件,是一组使用 TerraTest 框架编写的 Go 自动化测试,调用 Terraform 执行examples中的 Terraform 代码,并加以验证。
Module(模块)模块是一个包含多个资源的集合,用于封装并重用基础设施代码。模块可以是自定义的,也可以...
Terraform Module官网地址 核心业务的混合云/多云互通场景 Github 地址 核心业务的混合云/多云互通场景 示例地址 简单示例地址 复杂示例地址 代码流程: 双物理专线&双接入点:申请2个接入点内的资源,建立2根物理专线连接,专线间可做负载均衡ECMP、可做主备,接入可靠性高、性能好。 基于全动态路由和底层分布式设计的ECR...
Terraform Module官网地址 统一公网出入口设计 Github 地址 统一公网出入口设计 示例地址 示例地址 代码流程: 划分生产、测试、DMZ区环境,在每个环境内创建多个VPC及对应交换机。 创建CEN和TR,通过TR-attachment把VPC加入CEN中。 在TR默认路由表中配置路由,以引导公网流量。 在DMZ VPC中创建网络型负载均衡NLB,NLB后端...
virtual_network = "${module.my_vnet.virtual_network}" subnet_cidr = "10.0.1.0/24" } 这个文件就是调用了两个模块,source 定义了从哪里调用模块,把变量输入进去。需要注意的是第二个模块,变量里面需要输入前一个模块的输出结果,它的调用格式是
module "enterprise_scale" { source = "Azure/caf-enterprise-scale/azurerm" version = ">= 1.0.0" providers = { azurerm = azurerm azurerm.connectivity = azurerm azurerm.management = azurerm } root_parent_id = data.azurerm_client_config.core.tenant_id root_id = var.root_id root_name ...
module "enterprise_scale" { source = "Azure/caf-enterprise-scale/azurerm" version = ">= 1.0.0" providers = { azurerm = azurerm azurerm.connectivity = azurerm azurerm.management = azurerm } root_parent_id = data.azurerm_client_config.core.tenant_id root_id = var.root_id root_na...
$ terraform state show module.roy-azure.azurerm_virtual_machine.hdp-slave[1] ... location = japaneast name = roy-tf0-hdp-slave-02 ... $ terraform state show module.roy-azure.azurerm_network_interface.hdp[0] ... ip_configuration.0.load_balancer_backend_address_pools_ids.# = 0 ip_...
{ type = string default ="Enterprise-Scale"} # Declare the Terraform Module for Cloud Adoption Framework # Enterprise-scale and provide a base configuration. module"enterprise_scale"{ source ="Azure/caf-enterprise-scale/azurerm"version =">= 1.0.0"providers = { azurerm = ...