Terraform でリストに定義したパラメータ通りに ACI を設定するサンプル
Terraform でリストに定義したパラメータに従い、ACI 上に設定を行うサンプルをメモしておきます。
VRF を作成するサンプル
locals として定義した VRF 名に従い、複数の VRF を作成するサンプルは以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | locals {
vrfs = ["Vrf1", "Vrf2", "Vrf3"]
}
# Tenant
resource "aci_tenant" "tenant" {
name = "Tenant1"
}
# VRF
resource "aci_vrf" "vrf1" {
count = length(local.vrfs)
tenant_dn = aci_tenant.tenant.id
name = local.vrfs[count.index]
}
|
BD / BD Subnet を作成するサンプル
リストとして定義した BD 名 / BD Subnet に従い、複数の BD を作成するサンプルは以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | variable "fvBDs" {
type = list(object({
name = string
subnet = string
}))
default = [
{ name = "Bd1", subnet = "10.0.1.254/24"},
{ name = "Bd2", subnet = "10.0.2.254/24"},
{ name = "Bd3", subnet = "10.0.3.254/24"},
]
}
# Tenant
resource "aci_tenant" "tenant" {
name = "Tenant1"
}
# VRF
resource "aci_vrf" "vrf1" {
tenant_dn = aci_tenant.tenant.id
name = "Vrf1"
}
# BD
resource "aci_bridge_domain" "bd" {
count = length(var.fvBDs)
tenant_dn = aci_tenant.tenant.id
name = var.fvBDs[count.index].name
relation_fv_rs_ctx = aci_vrf.vrf1.id
}
resource "aci_subnet" "bd_subnet" {
count = length(var.fvBDs)
parent_dn = aci_bridge_domain.bd[count.index].id
ip = var.fvBDs[count.index].subnet
preferred = "yes"
scope = ["private"]
}
|