Ir para o conteúdo principal

equinix_network_device (Recurso)

O recurso equinix_network_device permite a criação e o gerenciamento de dispositivos de rede virtual Equinix Network Edge.

Os dispositivos de rede virtuais Network Edge podem ser criados em dois modos:

  • Gerenciado - (padrão) em que a Equinix gerencia a conectividade e os serviços no dispositivo e o cliente obtém acesso limitado ao dispositivo.
  • Autoconfigurado - onde o cliente provisiona e gerencia seus próprios serviços no dispositivo com acesso menos restrito. Alguns tipos de dispositivos são oferecidos somente neste modo.

Além dos modos de gerenciamento, estão disponíveis dois modos de licenciamento de software:

  • Assinatura - onde a Equinix fornece licença de software, incluindo suporte de ponta a ponta, e fatura pelo serviço, respectivamente.
  • BYOL - [traga sua própria licença] onde o cliente traz sua própria licença de software de dispositivo já adquirida. Não há cobranças associadas a tal licença. É o único modo de licenciamento para self-configured dispositivos.

Exemplo de uso​

# Create pair of redundant, managed CSR1000V routers with license subscription
# in two different metro locations

data "equinix_network_account" "dc" {
metro_code = "DC"
}

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "csr1000v-ha" {
name = "tf-csr1000v-p"
throughput = 500
throughput_unit = "Mbps"
metro_code = data.equinix_network_account.dc.metro_code
type_code = "CSR1000V"
self_managed = false
connectivity = "INTERNET-ACCESS"
byol = false
package_code = "SEC"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
hostname = "csr1000v-p"
term_length = 12
account_number = data.equinix_network_account.dc.number
version = "16.09.05"
core_count = 2
secondary_device {
name = "tf-csr1000v-s"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "csr1000v-s"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
}
}
# Create self configured PANW cluster with BYOL license

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "panw-cluster" {
name = "tf-panw"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "PA-VM"
self_managed = true
byol = true
package_code = "VM100"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "10.1.3"
interface_count = 10
core_count = 2
ssh_key {
username = "test"
key_name = "test-key"
}
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
cluster_details {
cluster_name = "tf-panw-cluster"
node0 {
vendor_configuration {
hostname = "panw-node0"
}
license_token = "licenseToken"
}
node1 {
vendor_configuration {
hostname = "panw-node1"
}
license_token = "licenseToken"
}
}
}
# Create self configured single Aviatrix device with cloud init file

data "equinix_network_account" "sv" {
metro_code = "SV"
}

variable "filepath" { default = "cloudInitFileFolder/TF-AVX-cloud-init-file.txt" }

resource "equinix_network_file" "aviatrix-cloudinit-file" {
file_name = "TF-AVX-cloud-init-file.txt"
content = file("${path.module}/${var.filepath}")
metro_code = data.equinix_network_account.sv.metro_code
device_type_code = "AVIATRIX_EDGE_10"
process_type = "CLOUD_INIT"
self_managed = true
byol = true
}

resource "equinix_network_device" "aviatrix-single" {
name = "tf-aviatrix"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "AVIATRIX_EDGE_10"
self_managed = true
byol = true
package_code = "STD"
notifications = ["john@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "6.9"
core_count = 2
cloud_init_file_id = equinix_network_file.aviatrix-cloudinit-file.uuid
acl_template_id = "c06150ea-b604-4ad1-832a-d63936e9b938"
}
# Create self configured single Catalyst 8000V (Autonomous Mode) router with license token

data "equinix_network_account" "sv" {
name = "account-name"
metro_code = "SV"
}

resource "equinix_network_device" "c8kv-single" {
name = "tf-c8kv"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
notifications = ["test@equinix.com"]
hostname = "C8KV"
account_number = data.equinix_network_account.sv.number
version = "17.06.01a"
core_count = 2
term_length = 12
license_token = "valid-license-token"
additional_bandwidth = 5
ssh_key {
username = "test-username"
key_name = "valid-key-name"
}
acl_template_id = "3e548c02-9164-4197-aa23-05b1f644883c"
}
# Create self configured single VSRX device with BYOL License

data "equinix_network_account" "sv" {
name = "account-name"
metro_code = "SV"
}

resource "equinix_network_device" "vsrx-single" {
name = "tf-c8kv-sdwan"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "VSRX"
self_managed = true
byol = true
package_code = "STD"
notifications = ["test@equinix.com"]
hostname = "VSRX"
account_number = data.equinix_network_account.sv.number
version = "23.2R1.13"
core_count = 2
term_length = 12
additional_bandwidth = 5
project_id = "a86d7112-d740-4758-9c9c-31e66373746b"
diverse_device_id = "ed7891bd-15b4-4f72-ac56-d96cfdacddcc"
ssh_key {
username = "test-username"
key_name = "valid-key-name"
}
acl_template_id = "3e548c02-9164-4197-aa23-05b1f644883c"
}
# Create self configured redundant Arista router with DSA key

data "equinix_network_account" "sv" {
name = "account-name"
metro_code = "SV"
}

resource "equinix_network_ssh_key" "test-public-key" {
name = "key-name"
public_key = "ssh-dss key-value"
type = "DSA"
}

resource "equinix_network_device" "arista-ha" {
name = "tf-arista-p"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "ARISTA-ROUTER"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "CloudEOS"
notifications = ["test@equinix.com"]
hostname = "arista-p"
account_number = data.equinix_network_account.sv.number
version = "4.29.0"
core_count = 4
term_length = 12
additional_bandwidth = 5
ssh_key {
username = "test-username"
key_name = equinix_network_ssh_key.test-public-key.name
}
acl_template_id = "c637a17b-7a6a-4486-924b-30e6c36904b0"
secondary_device {
name = "tf-arista-s"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "arista-s"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
acl_template_id = "fee5e2c0-6198-4ce6-9cbd-bbe6c1dbe138"
}
}
# Create self configured redundant BlueCat DNS and DHCP Server
data "equinix_network_account" "sv" {
name = "account-name"
metro_code = "SV"
}

resource "equinix_network_ssh_key" "test-public-key" {
name = "key-name"
public_key = "ssh-dss key-value"
type = "DSA"
}

resource "equinix_network_device" "bluecat-bdds-ha" {
name = "tf-bluecat-bdds-p"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "BLUECAT"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "STD"
notifications = ["test@equinix.com"]
account_number = data.equinix_network_account.sv.number
version = "9.6.0"
core_count = 2
term_length = 12
vendor_configuration = {
"hostname" = "test"
"privateAddress" : "x.x.x.x"
"privateCidrMask" : "24"
"privateGateway" : "x.x.x.x"
"licenseKey" : "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
"licenseId" : "xxxxxxxxxxxxxxx"
}
ssh_key {
username = "test-username"
key_name = equinix_network_ssh_key.test-public-key.name
}
secondary_device {
name = "tf-bluecat-bdds-s"
metro_code = data.equinix_network_account.sv.metro_code
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = {
"hostname" = "test"
"privateAddress" : "x.x.x.x"
"privateCidrMask" : "24"
"privateGateway" : "x.x.x.x"
"licenseKey" : "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
"licenseId" : "xxxxxxxxxxxxxxx"
}
}
}
# Create self configured redundant BlueCat Edge Service Point
data "equinix_network_account" "sv" {
name = "account-name"
metro_code = "SV"
}

resource "equinix_network_file" "bluecat-edge-service-point-cloudinit-primary-file" {
file_name = "TF-BLUECAT-ESP-cloud-init-file.txt"
content = file("${path.module}/${var.filepath}")
metro_code = data.equinix_network_account.sv.metro_code
device_type_code = "BLUECAT-EDGE-SERVICE-POINT"
process_type = "CLOUD_INIT"
self_managed = true
byol = true
}

resource "equinix_network_file" "bluecat-edge-service-point-cloudinit-secondary-file" {
file_name = "TF-BLUECAT-ESP-cloud-init-file.txt"
content = file("${path.module}/${var.filepath}")
metro_code = data.equinix_network_account.sv.metro_code
device_type_code = "BLUECAT-EDGE-SERVICE-POINT"
process_type = "CLOUD_INIT"
self_managed = true
byol = true
}

resource "equinix_network_device" "bluecat-edge-service-point-ha" {
name = "tf-bluecat-edge-service-point-p"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "BLUECAT-EDGE-SERVICE-POINT"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "STD"
notifications = ["test@equinix.com"]
account_number = data.equinix_network_account.sv.number
cloud_init_file_id = equinix_network_file.bluecat-edge-service-point-cloudinit-primary-file.uuid
version = "4.6.3"
core_count = 4
term_length = 12
secondary_device {
name = "tf-bluecat-edge-service-point-s"
metro_code = data.equinix_network_account.sv.metro_code
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
cloud_init_file_id = equinix_network_file.bluecat-edge-service-point-cloudinit-secondary-file.uuid
}
}
# Create PA-VM firewall cluster with Panorama Server Integration
# with Panorama Server IP and Panorama Auth Key in vendor Configuration

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "panw-cluster" {
name = "tf-panw"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "PA-VM"
self_managed = true
byol = true
package_code = "VM100"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "11.1.3"
interface_count = 10
core_count = 2
ssh_key {
username = "test"
key_name = "test-key"
}
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
cluster_details {
cluster_name = "tf-panw-cluster"
node0 {
vendor_configuration {
hostname = "panw-node0"
panorama_ip_address = "x.x.x.x"
panorama_auth_key = "xxxxxxxxxxx"
}
license_token = "licenseToken"
}
node1 {
vendor_configuration {
hostname = "panw-node1"
panorama_ip_address = "x.x.x.x"
panorama_auth_key = "xxxxxxxxxxx"
}
license_token = "licenseToken"
}
}
}
# Create C8000V BYOL device with bandwidth tier information

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "c8000v-byol-tier" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
}
# Create C8000V BYOL device with numeric bandwidth throughput information

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "c8000v-byol-throughput" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
throughput = "100"
throughput_unit = "Mbps"
ssh_key {
username = "test"
key_name = "test-key"
}
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
}
# Create self configured single Aviatrix Transit Edge device with cloud init file

data "equinix_network_account" "sv" {
metro_code = "SV"
}

variable "filepath" { default = "cloudInitFileFolder/TF-AVX-cloud-init-file.txt" }

resource "equinix_network_file" "aviatrix-cloudinit-file" {
file_name = "TF-AVX-cloud-init-file.txt"
content = file("${path.module}/${var.filepath}")
metro_code = data.equinix_network_account.sv.metro_code
device_type_code = "AVIATRIX_TRANSIT_EDGE"
process_type = "CLOUD_INIT"
self_managed = true
byol = true
}

resource "equinix_network_device" "aviatrix-transit-edge-single" {
name = "tf-aviatrix"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "AVIATRIX_TRANSIT_EDGE"
self_managed = true
byol = true
package_code = "STD"
notifications = ["john@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "7.2.a"
core_count = 2
cloud_init_file_id = equinix_network_file.aviatrix-cloudinit-file.uuid
acl_template_id = "c06150ea-b604-4ad1-832a-d63936e9b938"
}
# Create ZSCALER APPC device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "zscaler-appc-single" {
name = "tf-zscaler-appc"
project_id = "XXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "ZSCALER-APPC"
self_managed = true
byol = true
connectivity = "PRIVATE"
package_code = "STD"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "23.395.1"
interface_count = 1
core_count = 4
vendor_configuration = {"provisioningKey" = "XXXXXXXXXX", "hostname" = "XXXX"}
ssh_key {
username = "test"
key_name = "test-key"
}
}
# Create ZSCALER APPC device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "zscaler-pse-single" {
name = "tf-zscaler-pse"
project_id = "XXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "ZSCALER-PSE"
self_managed = true
byol = true
connectivity = "PRIVATE"
package_code = "STD"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "23.395.1"
interface_count = 1
core_count = 4
vendor_configuration = {"provisioningKey" = "XXXXXXXXXX", "hostname" = "XXXX"}
ssh_key {
username = "test"
key_name = "test-key"
}
}
# Create C8000V BYOL device with bandwidth tier information

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "c8000v-byol-withtout-default-password" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
generate_default_password = false
package_code = "network-essentials"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
}
# Create Checkpoint single device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "CHECKPOINT-SV" {
name = "TF_CHECKPOINT"
project_id = "XXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "CGUARD"
self_managed = true
byol = true
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "R81.20"
hostname = "test"
core_count = 2
term_length = 1
additional_bandwidth = 5
acl_template_id = "XXXXXXX"
ssh_key {
username = "XXXXX"
key_name = "XXXXXX"
}
}
# Create Cisco FTD Cluster with Connectivity- PRIVATE

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "Cisco-FTD-SV" {
name = "TF_Cisco_NGFW_CLUSTER_ZNPD"
project_id = "XXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "Cisco_NGFW"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "FTDv10"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "7.0.4-55"
hostname = "test"
core_count = 4
term_length = 1
interface_count = 10
cluster_details {
cluster_name = "tf-ftd-cluster"
node0 {
vendor_configuration {
hostname = "test"
activation_key = "XXXXX"
controller1 = "X.X.X.X"
management_type = "FMC"
}
}
node1 {
vendor_configuration {
hostname = "test"
management_type = "FMC"
}
}
}
}
# Create Fortinet SDWAN single device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "FTNT-SDWAN-SV" {
name = "TF_VERSA-SDWAN"
project_id = "XXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "VERSA_SDWAN"
self_managed = true
byol = true
package_code = "FLEX_VNF_2"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "21.2.3"
core_count = 2
term_length = 1
additional_bandwidth = 50
acl_template_id = "XXXXXXXXX"
vendor_configuration = {
controller1 = "X.X.X.X"
controller2 = "X.X.X.X"
localId = "test@test.com"
remoteId = "test@test.com"
serialNumber = "4"
}
secondary_device {
name = "Praveena_TF_VERSA"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
acl_template_id = "XXXXXXXX"
notifications = ["test@eq.com"]
vendor_configuration = {
controller1 = "X.X.X.X"
controller2 = "X.X.X.X"
localId = "test@test.com"
remoteId = "test@test.com"
serialNumber = "4"
}
}
}
# Create VYos Router HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "VYOS-AM" {
name = "TF_VYOS"
project_id = "XXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "VYOS-ROUTER"
self_managed = true
byol = false
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "1.4.1-2501"
hostname = "test"
core_count = 2
term_length = 1
additional_bandwidth = 50
acl_template_id = "XXXXXXXX"
ssh_key {
username = "test"
key_name = "xxxxxxxx"
}
secondary_device {
name = "TF_CHECKPOINT"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
hostname = "test"
acl_template_id = "XXXXXXXXXXX"
notifications = ["test@eq.com"]
}
}
# Create Fortinet SDWAN single device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "FTNT-SDWAN-SV" {
name = "TF_FTNT-SDWAN"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "FG-SDWAN"
self_managed = true
byol = true
package_code = "VM02"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "7.0.14"
hostname = "test"
core_count = 2
term_length = 1
additional_bandwidth = 50
acl_template_id = "XXXXXXXX"
vendor_configuration = {
adminPassword = "XXXXX"
controller1 = "X.X.X.X"
}
}
# Create Aruba Edgeconnect SDWAN HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}


resource "equinix_network_device" "ARUBA-EDGECONNECT-AM" {
name = "TF_Aruba_Edge_Connect"
project_id = "XXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "EDGECONNECT-SDWAN"
self_managed = true
byol = true
package_code = "EC-V"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "9.4.2.3"
core_count = 2
term_length = 1
additional_bandwidth = 50
interface_count = 32
acl_template_id = "XXXXXXX"
vendor_configuration = {
accountKey : "xxxxx"
accountName : "xxxx"
applianceTag : "tests"
hostname : "test"
}
secondary_device {
name = "TF_CHECKPOINT"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
acl_template_id = "XXXXXXX"
notifications = ["test@eq.com"]
vendor_configuration = {
accountKey : "xxxxx"
accountName : "xxxx"
applianceTag : "test"
hostname : "test"
}
}
}
# Create Infoblox Grid Member Single device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "INFOBLOX-SV" {
name = "TF_INFOBLOX"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "INFOBLOX-GRID-MEMBER"
self_managed = true
byol = true
connectivity = "PRIVATE"
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "9.0.5"
core_count = 8
term_length = 1
vendor_configuration = {
adminPassword = "xxxxxx"
ipAddress = "X.X.X.X"
subnetMaskIp = "X.X.X.X"
gatewayIp = "X.X.X.X"
}
}
# Create Infoblox Grid Member HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "INFOBLOX-SV" {
name = "TF_INFOBLOX"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "INFOBLOX-GRID-MEMBER"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "9.0.5"
core_count = 8
term_length = 1
vendor_configuration = {
adminPassword = "X.X.X.X"
ipAddress = "X.X.X.X"
subnetMaskIp = "X.X.X.X"
gatewayIp = "X.X.X.X"
}
secondary_device {
name = "TF_INFOBLOX-Sec"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
notifications = ["test@eq.com"]
vendor_configuration = {
adminPassword = "X.X.X.X"
ipAddress = "X.X.X.X"
subnetMaskIp = "X.X.X.X"
gatewayIp = "X.X.X.X"
}
}
}
# Create Infoblox Grid Member HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "INFOBLOX-SV" {
name = "TF_INFOBLOX"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "INFOBLOX-GRID-MEMBER"
self_managed = true
byol = true
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "9.0.5"
connectivity = "PRIVATE"
core_count = 8
term_length = 1
cluster_details {
cluster_name = "tf-infoblox-cluster"
node0 {
vendor_configuration {
admin_password = "xxxxxxx"
ip_address = "X.X.X.X"
subnet_mask_ip = "X.X.X.X"
gateway_ip = "X.X.X.X"
}
}
node1 {
vendor_configuration {
admin_password = "xxxxxxx"
ip_address = "X.X.X.X"
subnet_mask_ip = "X.X.X.X"
gateway_ip = "X.X.X.X"
}
}
}
}
# Create F5XC device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "f5xc-single" {
name = "tf-f5xc"
project_id = "XXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "F5XC"
self_managed = true
byol = true
connectivity = "INTERNET-ACCESS"
package_code = "STD"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 1
account_number = data.equinix_network_account.sv.number
acl_template_id = "xxxx"
version = "9.2025.17"
interface_count = 8
core_count = 8
vendor_configuration = {"token" = "XXXXXXXXXX", "hostname" = "XXXX"}
}
# Create C8000V HA - BYOL device with cloud init rest api support

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "c8000v-byol" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
generate_default_password = true
package_code = "network-essentials"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
vendor_configuration = { restApiSupportRequirement = "true" }
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
secondary_device {
name = "tf-c8000v-byol-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "csr1000v-s"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = { restApiSupportRequirement = "true" }
acl_template_id = "0bff6e05-f0e7-44cd-804a-25b92b835f8b"
}
}
# Create Aruba Edgeconnect SDWAN HA device with 2different account numbers with purchase orders

data "equinix_network_account" "sv" {
metro_code = "SV"
}


resource "equinix_network_device" "ARUBA-EDGECONNECT-AM" {
name = "TF_Aruba_Edge_Connect"
project_id = "XXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "EDGECONNECT-SDWAN"
self_managed = true
byol = true
package_code = "EC-V"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "9.4.2.3"
core_count = 2
term_length = 1
additional_bandwidth = 50
interface_count = 32
acl_template_id = "XXXXXXX"
purchase_order_number = "PO-Primary-Account-123"
vendor_configuration = {
accountKey : "xxxxx"
accountName : "xxxx"
applianceTag : "tests"
hostname : "test"
}
secondary_device {
name = "TF_CHECKPOINT"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
purchase_order_number = "PO-Secondary-Account-123"
acl_template_id = "XXXXXXX"
notifications = ["test@eq.com"]
vendor_configuration = {
accountKey : "xxxxx"
accountName : "xxxx"
applianceTag : "test"
hostname : "test"
}
}
}
# Create C8000V HA - BYOL device with connectivity PRIVATE with DHCP IP address type

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "c8000v-byol" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
connectivity = "PRIVATE"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
vendor_configuration = { restApiSupportRequirement = "true", ipAddressType = "DHCP", managementInterfaceId= "6" }
secondary_device {
name = "tf-c8000v-byol-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "c8000v-s"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = { restApiSupportRequirement = "true", ipAddressType = "DHCP", managementInterfaceId= "6" }
}
}
# Create C8000V HA - BYOL device with connectivity PRIVATE with NO IP address type

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "c8000v-byol" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
connectivity = "PRIVATE"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
vendor_configuration = { restApiSupportRequirement = "true", ipAddressType = "NO_IP_ADDRESS" }
secondary_device {
name = "tf-c8000v-byol-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "csr8000v-s"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = { restApiSupportRequirement = "true", ipAddressType = "NO_IP_ADDRESS" }
}
}
# Create C8000V HA - BYOL device with connectivity PRIVATE with static IP address type

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "c8000v-byol" {
name = "tf-c8000v-byol"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "C8000V"
self_managed = true
byol = true
package_code = "network-essentials"
connectivity = "PRIVATE"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = data.equinix_network_account.sv.number
version = "17.11.01a"
interface_count = 10
core_count = 2
tier = 1
ssh_key {
username = "test"
key_name = "test-key"
}
vendor_configuration = {
restApiSupportRequirement = "true", ipAddressType = "STATIC", ipAddress = "x.x.x.x", gatewayIp = "x.x.x.x",
subnetMaskIp = "x.x.x.x", managementInterfaceId= "6"
}
secondary_device {
name = "tf-c8000v-byol-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "csr8000v-s"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = {
restApiSupportRequirement = "true", ipAddressType = "STATIC", ipAddress = "x.x.x.x", gatewayIp = "x.x.x.x",
subnetMaskIp = "x.x.x.x", managementInterfaceId= "6"
}
}
}
# Create FG VM Cluster with connectivity PRIVATE and IP Address Type as STATIC

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "FGVM-SV" {
name = "tf-fgvm-cluster-static-znpd"
metro_code = "DC"
type_code = "FG-VM"
project_id = "xxxxxxx"
self_managed = true
connectivity = "PRIVATE"
byol = true
package_code = "VM02"
notifications = ["john@equinix.com", "marry@equinix.com", "fred@equinix.com"]
term_length = 12
account_number = xxxxxx
version = "7.6.2"
interface_count = 10
core_count = 2
ssh_key {
username = "sanity1"
key_name = ""
}
cluster_details {
cluster_name = "tf-fgvm--cluster"
node0 {
vendor_configuration {
ip_address = "x.x.x.x"
subnet_mask_ip = "x.x.x.x"
gateway_ip = "x.x.x.x"
management_interface_id = "5"
hostname = "test"
ip_address_type = "STATIC"
}
}
node1 {
vendor_configuration {
ip_address = "x.x.x.x"
subnet_mask_ip = "x.x.x.x"
gateway_ip = "x.x.x.x"
management_interface_id = "5"
hostname = "test"
ip_address_type = "STATIC"
}
}
}
}
# Create Fortinet VM firewall ha device with connectivity PRIVATE and IP Address Type as DHCP

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "FTNT-FIREWALL-SV" {
name = "TF_FTNT-FIREWALL"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "FG-VM"
self_managed = true
byol = true
interface_count = 10
connectivity = "PRIVATE"
package_code = "VM02"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "7.6.3"
hostname = "test"
core_count = 2
term_length = 1
vendor_configuration = {
ipAddressType = "DHCP", managementInterfaceId= "6"
}
secondary_device {
name = "TF_FTNT-FIREWALL-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "fg-vm-znpd"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = { ipAddressType = "DHCP", managementInterfaceId= "6"}
}
}
# Create Fortinet firewall ha device with connectivity PRIVATE and IP Address Type as NO IP Address

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "FTNT-FIREWALL-SV" {
name = "TF_FTNT-FIREWALL"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "FG-VM"
interface_count = 10
self_managed = true
byol = true
connectivity = "PRIVATE"
package_code = "VM02"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "7.6.3"
hostname = "test"
core_count = 2
term_length = 1
vendor_configuration = {
ipAddressType = "NO_IP_ADDRESS"
}
secondary_device {
name = "TF_FTNT-FIREWALL-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "fg-vm-znpd"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = {
ipAddressType = "NO_IP_ADDRESS"
}
}
}
# Create FG VM ha device with connectivity PRIVATE and IP Address Type as STATIC

data "equinix_network_account" "sv" {
metro_code = "SV"
name = "account-name"
}

resource "equinix_network_device" "FTNT-FIREWALL-SV" {
name = "TF_FTNT-FIREWALL"
project_id = "XXXXXXXXXX"
metro_code = data.equinix_network_account.sv.metro_code
interface_count = 10
type_code = "FG-VM"
self_managed = true
byol = true
connectivity = "PRIVATE"
package_code = "VM02"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "7.6.3"
hostname = "test"
core_count = 2
term_length = 1
vendor_configuration = {
gatewayIp = "X.X.X.X"
ipAddress = "X.X.X.X"
ipAddressType = "STATIC"
subnetMaskIp = "x.x.x.x"
managementInterfaceId = "6"
}
secondary_device {
name = "TF_FTNT-FIREWALL-secondary"
metro_code = data.equinix_network_account.sv.metro_code
hostname = "fg-vm-znpd"
notifications = ["john@equinix.com", "marry@equinix.com"]
account_number = data.equinix_network_account.sv.number
vendor_configuration = {
gatewayIp = "X.X.X.X"
ipAddress = "X.X.X.X"
ipAddressType = "STATIC"
subnetMaskIp = "X.X.X.X"
managementInterfaceId = "6"
}
}
}
# Create 6WIND VSR HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "six-wind-vsr" {
name = "6WIND-VSR"
project_id = "xxxxxxx"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "6WIND-VSR"
self_managed = true
byol = true
interface_count = 10
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "3.10.8"
core_count = 2
term_length = 1
vendor_configuration = {
hostname = "test"
token = "xxxx"
}
ssh_key {
username = "xxxx"
key_name = "xxxxx"
}
secondary_device {
name = "6WIND-VSR-Sec"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
notifications = ["test@eq.com"]
vendor_configuration = {
hostname = "test"
token = "xxxx"
}
}
}
# Create Infoblox NIOS-X HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "nios-x-ha" {
name = "TF_INFOBLOX-NIOS-X"
project_id = "xxxxxxx"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "INFOBLOX-NIOSX"
self_managed = true
connectivity = "INTERNET-ACCESS"
byol = true
package_code = "STD"
notifications = ["test@eq.com"]
account_number = data.equinix_network_account.sv.number
version = "4.0"
core_count = 3
interface_count = 5
term_length = 1
vendor_configuration = {
hostname = "test"
token = "xxxxx"
}
secondary_device {
name = "TF_INFOBLOX-NIOS-X-Sec"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
notifications = ["test@eq.com"]
vendor_configuration = {
hostname = "test"
token = "xxxxx"
}
}
}
# Create NETSKOPE NPA HA device

data "equinix_network_account" "sv" {
metro_code = "SV"
}

resource "equinix_network_device" "netskope-npa" {
name = "NETSKOPE-NPA"
project_id = "xxxxxxx"
metro_code = data.equinix_network_account.sv.metro_code
type_code = "NETSKOPE-NPA"
self_managed = true
byol = true
interface_count = 1
package_code = "STD"
notifications = ["test@eq.com"]
connectivity = "PRIVATE"
account_number = data.equinix_network_account.sv.number
version = "R138"
core_count = 2
term_length = 1
vendor_configuration = {
hostname = "test"
privateCidrMask = "24"
ipAddressType = "STATIC"
ipAddress = "x.x.x.x"
gatewayIp = "x.x.x.x",
primaryNameServer = "x.x.x.x"
secondaryNameServer = "x.x.x.x"
dnsSearchDomain = "xxxxx"
}
secondary_device {
name = "NETSKOPE-NPA-Sec"
metro_code = data.equinix_network_account.sv.metro_code
account_number = data.equinix_network_account.sv.number
notifications = ["test@eq.com"]
vendor_configuration = {
hostname = "test"
privateCidrMask = "24"
ipAddressType = "STATIC"
ipAddress = "x.x.x.x"
gatewayIp = "x.x.x.x",
primaryNameServer = "x.x.x.x"
secondaryNameServer = "x.x.x.x"
dnsSearchDomain = "xxxxx"
}
}
}

Exemplo: Adicione um dispositivo secundário a um dispositivo de rede primário​

Use o secondary_device bloco interno equinix_network_device para definir o nó secundário para um par redundante. O dispositivo primário é configurado com argumentos de nível superior e o dispositivo secundário é configurado dentro do secondary_device {}.

Como funciona​

  1. Consulte a conta de rede de destino com equinix_network_account.
  2. Defina o dispositivo primário no resource "equinix_network_device" e crie um único dispositivo
  3. Adicione um secondary_device bloco com os campos específicos do secundário.

Exemplo​

# add_secondary_device example for C8000V with self-configured BYOL
data "equinix_network_account" "am" {
name = "YOUR_ACCOUNT_NAME"
metro_code = "AM"
project_id = "YOUR_PROJECT_ID"
}

resource "equinix_network_device" "c8kv_primary" {
name = "C8000V-primary"
project_id = "YOUR_PROJECT_ID"
metro_code = data.equinix_network_account.am.metro_code
license_token = "YOUR_LICENSE_TOKEN"
type_code = "C8000V"
self_managed = true
byol = true
tier = 1
package_code = "network-advantage"
generate_default_password = true
notifications = ["you@example.com"]
account_number = data.equinix_network_account.am.number
version = "17.11.01a"
hostname = "c8kv-primary"
core_count = 2
term_length = 1
additional_bandwidth = 5
interface_count = 10
connectivity = "INTERNET-ACCESS"
acl_template_id = "YOUR_ACL_TEMPLATE_ID"

ssh_key {
username = "YOUR_SSH_USERNAME"
key_name = "YOUR_SSH_KEY_NAME"
}

secondary_device {
name = "C8000V-secondary"
metro_code = data.equinix_network_account.am.metro_code
acl_template_id = "YOUR_ACL_TEMPLATE_ID"
notifications = ["you@example.com"]
hostname = "c8kv-secondary"
additional_bandwidth = 5
account_number = data.equinix_network_account.am.number
license_token = "YOUR_LICENSE_TOKEN"
vendor_configuration = { hostNamePrefix = "C8KV-secondary" }
ssh_key {
username = "YOUR_SSH_USERNAME"
key_name = "YOUR_SSH_KEY_NAME"
}
}
}

Referência do argumento​

Os seguintes argumentos são suportados:

  • name - (Obrigatório) Nome do dispositivo.
  • type_code - (Obrigatório) Código do tipo de dispositivo.
  • metro_code - (Obrigatório) Código estratégico de localização do dispositivo.
  • hostname - (Opcional) Prefixo do nome do host do dispositivo.
  • package_code - (Obrigatório) Código do pacote de software do dispositivo.
  • version - (Obrigatório) Versão do software do dispositivo.
  • core_count - (Obrigatório) Número de núcleos de CPU usados pelo dispositivo. (OBSERVAÇÃO: Use este campo para redimensionar seu dispositivo. Ao redimensionar seus dispositivos HA, o dispositivo primário será atualizado primeiro. Se o upgrade falhar, o dispositivo será automaticamente revertido para o estado anterior com o número do núcleo original.)
  • tier - (Opcional, Conflito com throughput,throughput_unit ) Selecione o nível de largura de banda para sua própria licença, ou seja, 0 ou 1 ou 2 ou 3. Níveis aplicáveis apenas aos tipos de dispositivo C8000V Autônomo ou C8000V SDWAN (controlador). Se não for fornecido, o nível será padronizado como "2".
  • term_length - (Obrigatório) Duração do prazo do dispositivo.
  • self_managed - (Opcional) Valor booleano que determina o modo de gerenciamento do dispositivo, ou seja, self-managed ou Equinix-managed (padrão).
  • byol - (Opcional) Valor booleano que determina o modo de licenciamento do dispositivo, ou seja, bring your own license ou subscription (padrão).
  • license_token - (Opcional, em conflito com license_file) Token de licença aplicável a alguns tipos de dispositivos no modo de licenciamento BYOL.
  • license_file - (Opcional) Caminho para o arquivo de licença que será carregado e aplicado em um dispositivo. Aplicável a alguns tipos de dispositivos no modo de licenciamento BYOL.
  • license_file_id - (Opcional, em conflito com license_file) Identificador de um arquivo de licença que será aplicado no dispositivo.
  • cloud_init_file_id - (Opcional) Identificador de um arquivo init de cloud que será aplicado no dispositivo.
  • throughput - (Opcional) Taxa de transferência da licença do dispositivo.
  • throughput_unit - (Opcional) Unidade de taxa de transferência da licença. Um de Mbps ou Gbps.
  • account_number - (Obrigatório) Número da conta de cobrança de um dispositivo.
  • notifications - (Obrigatório) Lista de endereços de e-mail que receberão notificações de status do dispositivo.
  • purchase_order_number - (Opcional) Número do pedido de compra associado a um pedido de dispositivo. Para contas de cobrança que exigem um pedido de compra, este campo é obrigatório.
  • order_reference - (Opcional) Nome/número usado para identificar o pedido do dispositivo na fatura.
  • acl_template_id - Identificador (opcional) de um modelo ACL de interface WAN que será aplicado no dispositivo.
  • mgmt_acl_template_uuid - (Opcional) Identificador de um modelo ACL de interface de GERENCIAMENTO que será aplicado no dispositivo.
  • additional_bandwidth - (Opcional) Largura de banda de Internet adicional, em Mbps, que será alocada ao dispositivo (além do padrão de 15Mbps).
  • interface_count - (Opcional) Número de interfaces de rede em um dispositivo. Se não for especificado, o número padrão para um determinado tipo de dispositivo será usado.
  • wan_interafce_id - (Opcional) Especifique o ID da interface WAN/SSH. Se não for especificada, a interface WAN/SSH padrão para um determinado tipo de dispositivo será usada.
  • vendor_configuration - (Opcional) Mapa de parâmetros de configuração específicos do fornecedor para um dispositivo (controller1, ativationKey, managementType, siteId, systemIpAddress, PrivateAddress, privateCidrMask, privateGateway, Chave de licença, licenseId, PanoramaAuthKey, panoramaIpAddress, provisioningKey, ipaddress (aplicável apenas para infoblox), subnetMaskIp (aplicável apenas para infoblox), gatewayIp (aplicável apenas para infoblox), token (token de junção aplicável apenas a dispositivos Infoblox NIOS-X e necessário quando type_code for INFOBLOX-NIOSX)
  • ssh-key - (Opcional) Definição da chave SSH que será provisionada em um dispositivo (máx. De uma chave). Consulte a chave SSH abaixo para obter mais detalhes.
  • secondary_device - (Opcional) Definição de dispositivo secundário para configurações de dispositivo redundante. Consulte o dispositivo secundário abaixo para obter mais detalhes.
  • cluster_details - (Opcional) Um objeto que tem os detalhes do cluster. Consulte os detalhes do cluster abaixo para obter mais detalhes.
  • connectivity - (Opcional) Acessibilidade do dispositivo (ACESSO À INTERNET ou PRIVADO ou ACESSO À INTERNET-COM-PRVT-MGMT). Se não for especificado, o padrão será O ACESSO À INTERNET
  • project_id - (Opcional) Identificador exclusivo para o recurso do projeto para o qual o dispositivo está no escopo.Se você deixá-lo de fora, o dispositivo será criado com o ID do projeto padrão da sua organização.
  • diverse_device_id - (Opcional) ID exclusivo de um dispositivo existente. Use este campo para informar a Equinix se você quiser que seu novo dispositivo esteja em um local diferente de qualquer dispositivo virtual existente. Este campo só é significativo para dispositivos individuais.
  • generate_default_password - (Opcional) Valor booleano que determina a criação de dispositivo com ou sem senha padrão. Use este campo para informar a Equinix se quiser que seu novo dispositivo seja criado com a senha de administrador padrão. Este campo só é significativo para dispositivos Autônomos C8000V (simples/ha) e Firewall Fortinet (simples/ha/cluster). Se não for especificado, o dispositivo será criado por padrão com a senha de administrador.

Dispositivo secundário​

-> NOTA: A Network Edge oferece diferentes opções de Alta disponibilidade (HA). Ao definir um secondary_device bloco, o terraform implantará Dispositivos Redundantes , útil para clientes que exigem dois planos de dados de encaminhamento ativo (Ativo/Ativo) em pilhas de hardware separadas. Consulte a documentaçãoArchitecting for Resiliency para saber mais sobre as soluções tolerantes a falhas que você pode alcançar.

O secondary_device bloco suporta os seguintes argumentos:

  • name - (Obrigatório) Nome do dispositivo secundário.
  • metro_code - (Obrigatório) Localização metropolitana de um dispositivo secundário.
  • hostname - (Opcional) Nome do host do dispositivo secundário.
  • license_token - (Opcional, está em conflito com license_file) O token de licença pode ser fornecido para alguns tipos de dispositivos do dispositivo.
  • license_file - (Opcional) Caminho para o arquivo de licença que será carregado e aplicado em um dispositivo secundário. Aplicável a alguns tipos de dispositivos no modo de licenciamento BYOL.
  • license_file_id - (Opcional, em conflito com license_file) Identificador de um arquivo de licença que será aplicado em um dispositivo secundário.
  • cloud_init_file_id - (Opcional) Identificador de um arquivo init de cloud que será aplicado em um dispositivo secundário.
  • account_number - (Obrigatório) Número da conta de cobrança para o dispositivo secundário.
  • notifications - (Obrigatório) Lista de endereços de e-mail que receberão notificações sobre o dispositivo secundário.
  • additional_bandwidth - (Opcional) Largura de banda de Internet adicional, em Mbps, para um dispositivo secundário.
  • vendor_configuration - (Opcional) pares chave/valor de parâmetros de configuração específicos do fornecedor para um dispositivo secundário. Os valores-chave são controller1, activationKey, , managementType siteId, systemIpAddress, privateAddress``privateCidrMask, , privateGateway, licenseKey, licenseId, , panoramaAuthKey, panoramaIpAddress, ipAddress, , subnetMaskIp, gatewayIp.
  • acl_template_id - (Opcional) Identificador de um modelo ACL de interface WAN que será aplicado em um dispositivo secundário.
  • mgmt_acl_template_uuid - (Opcional) Identificador de um modelo ACL de interface de GERENCIAMENTO que será aplicado em um dispositivo secundário.
  • ssh-key - (Opcional) Até uma definição de chave SSH que será provisionada em um dispositivo secundário.

Chave SSH​

O ssh_key bloco suporta os seguintes argumentos:

  • username - (Obrigatório) nome de usuário associado a determinada chave.
  • name - (Opcional) referência por nome à chave SSH pública provisionada anteriormente.

Detalhes do cluster​

-> NOTA: A Network Edge oferece diferentes opções de Alta disponibilidade (HA). Ao definir um cluster_details bloco, o terraform implantará um Device Clustering. Esta opção, baseada em recursos específicos do fornecedor, permite que os clientes implantem configurações resilientes mais avançadas do que secondary_device. Consulte a documentação deOpções do Network Edge HA para saber quais fornecedores oferecem suporte a dispositivos em cluster. Consulte a documentaçãoArchitecting for Resiliency para saber mais sobre as soluções tolerantes a falhas que você pode alcançar.

O cluster_details bloco suporta os seguintes argumentos:

  • cluster_name - (Obrigatório) O nome do dispositivo do cluster
  • node0 - (Obrigatório) Um objeto que tem node0 configuração. Consulte Detalhes do cluster - Nós abaixo para obter mais detalhes.
  • node1 - (Obrigatório) Um objeto que tem node1 configuração. Consulte Detalhes do cluster - Nós abaixo para obter mais detalhes.

Detalhes do cluster - Nós​

Os node0blocos e node1suportam os seguintes argumentos:

  • vendor_configuration - (Opcional) Um objeto que tem campos relevantes para o fornecedor do dispositivo de cluster. Consulte Detalhes do cluster - Nós - Configuração do fornecedor abaixo para obter mais detalhes.
  • license_file_id - (Opcional) ID do arquivo de licença. Isso é necessário para clusters Fortinet e Juniper.
  • license_token - (Opcional) token de licença. Isso é necessário para clusters de Palo Alto.

Detalhes do cluster - Nós - Configuração do fornecedor​

O vendor_configuration bloco suporta os seguintes argumentos:

  • hostname - (Opcional) Nome do host. Isso é necessário para clusters Palo Alto, Juniper e Fortinet.
  • admin_password - (Opcional) a senha administrativa do dispositivo. Você pode usá-lo para fazer login no console. Este campo não está disponível para todos os tipos de dispositivos.
  • controller1 - (Opcional) Endereço IP do sistema. Obrigatório para o dispositivo de cluster SDWAN da Fortinet.
  • activation_key - (Opcional) Chave de ativação. Isso é necessário para clusters Velocloud.
  • controller_fqdn - (Opcional) Controlador fqdn. Isso é necessário para clusters Velocloud.
  • root_password - (Opcional) a senha CLI do dispositivo. Este campo é relevante apenas para o cluster de SDWAN Velocloud.
  • panorama_ip_address - (Opcional) Endereço IP do servidor Panorama. Este campo é relevante apenas para que os dispositivos de firewall PA-VM tenham integração com o Panorama Server.
  • panorama_auth_key - (Opcional) Chave de autenticação do servidor Panorama. Este campo é relevante apenas para que os dispositivos de firewall PA-VM tenham integração com o Panorama Server.
  • provisioning_key - (Opcional) Chave de provisionamento. Este campo é relevante apenas para os dispositivos ZSCALER APPC e ZSCALER PSE.
  • ip_address - (Opcional) Endereço IP. Este campo é relevante apenas para os dispositivos Infoblox.
  • subnet_mask_ip - (Opcional) IP da máscara de sub-rede. Este campo é relevante apenas para os dispositivos Infoblox.
  • gateway_ip - (Opcional) IP do gateway. Este campo é relevante apenas para os dispositivos Infoblox.

Referência de atributos​

Além de todos os argumentos acima, os seguintes atributos são exportados:

  • uuid - Identificador exclusivo do dispositivo.
  • status - Status de provisionamento do dispositivo. Os valores possíveis são INITIALIZING, PROVISIONING, , WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES``CLUSTER_SETUP_IN_PROGRESS``FAILED, , PROVISIONED, DEPROVISIONING, DEPROVISIONED, , RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED.
  • license_status - Status de registro da licença do dispositivo. Os valores possíveis são APPLYING_LICENSE, REGISTERED, , APPLIED, WAITING_FOR_CLUSTER_SETUP REGISTRATION_FAILED.
  • license_file_id - Identificador exclusivo do arquivo de licença aplicada.
  • ibx - Localização do dispositivo Nome do Equinix Business Exchange.
  • region - Região de localização do dispositivo.
  • acl_template_id - Identificador exclusivo do modelo ACL aplicado.
  • ssh_ip_address - Endereço IP da interface SSH ativada no dispositivo.
  • ssh_ip_fqdn - FQDN da interface SSH ativada no dispositivo.
  • redundancy_type - Tipo de redundância de dispositivo aplicável para dispositivos HA, primário ou secundário.
  • redundant_id - Identificador exclusivo para um dispositivo redundante aplicável a dispositivos HA.
  • interface - Lista de interfaces de dispositivos. Consulte Atributo de interface abaixo para obter mais detalhes.
  • asn - (Número do Sistema Autônomo) Identificador exclusivo para uma rede na internet.
  • zone_code - Código da zona de localização do dispositivo.
  • cluster_id - O ID do cluster.
  • num_of_nodes - O número de nós no cluster.
  • diverse_device_name - Nome do dispositivo com UUID de dispositivo diverso. Este campo é retornado nos detalhes do dispositivo se o dispositivo for criado passando diverse_device_id.

Atributo de interface​

Cada atributo de interface possui os seguintes campos:

  • id - identificador da interface.
  • name - nome da interface.
  • status - status da interface. Um de AVAILABLE, , RESERVED ASSIGNED.
  • operational_status - status operacional da interface. Um de up, down.
  • mac_address - Endereço MAC da interface.
  • ip_address - Endereço IP da interface.
  • assigned_type - Tipo de gestão de interface (Equinix gerenciado ou vazio).
  • type - tipo de interface.

Tempo limite​

Este recurso fornece as seguintes opçõesde configuração de timeouts:

  • Criar - O padrão é 90 minutos
  • Atualização - O padrão é de 90 minutos.
  • Excluir - O padrão é 30 minutos

Importar​

Este recurso pode ser importado usando um ID existente:

terraform import equinix_network_device.example {existing_id}

Os camposlicense_token , mgmt_acl_template_uuid e cloud_init_file_idnão podem ser importados.

Esta página foi útil?