equinix_network_device(资源)
资源equinix_network_device允许创建和管理Equinix Network Edge虚拟网络设备。
网络边缘虚拟网络设备可以通过两种模式创建:
- 管理式-(默认),Equinix管理设备中的连接和服务,客户对设备的访问权限有限。
- 自我配置-客户在设备中配置和管理自己的服务,访问限制较少。某些设备类型仅在此模式下提供。
除了管理模式外,还有两种软件许可模式可供选择:
- 订阅-其中,Equinix提供软件许可证,包括端对端支持和服务账单。
- BYOL -[自带许可证],客户自带已购买设备软件许可证。此类许可证不收取相关费用。这是设备唯一的许可模式
self-configured。
用法示例
# 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"
}
}
}
示例:向主网络设备添加次要设备
使用secondary_device内部的块equinix_network_device定义冗余对的次要节点。
主要设备使用顶级参数配置,辅助设备在中配置secondary_device {}。
工作原理
- 参考目标网络账户
equinix_network_account。 - 在中定义主要设备
resource "equinix_network_device"并创建单个设备 - 添加
secondary_device包含次要特定字段的块。
示例
# 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"
}
}
}
论证参考
以下论点得到支持:
name-(必填)设备名称。type_code-(必填)设备类型代码。metro_code-(必填)设备位置都会区代码。hostname-(可选)设备主机名前缀。package_code-(必填)设备软件包代码。version-(必填)设备软件版本。core_count-(必填)设备使用的CPU核心数量。(注意:使用此字段调整设备大小。调整高可用设备大小时,将首先升级主设备。升级失败时,设备将自动回滚至原核心编号的先前状态。)tier-(可选,与冲突throughput,throughput_unit)为您自己的许可证选择带宽层级,即,0,,,1,,,,,,,,或23。C8000V自主或C8000V SDWAN (控制器)设备类型的层级。如果未提供,等级默认为“2”。term_length-(必填)设备期限长度。self_managed-(可选)确定设备管理模式的布尔值,即,self-managed或Equinix-managed(默认)。byol-(可选)确定设备许可模式的布尔值,即,bring your own license或subscription(默认)。license_token-(可选,与冲突license_file)许可令牌适用于BYOL许可模式下的某些设备类型。license_file-(可选)将在设备上上传并应用的许可证文件的路径。适用于BYOL许可模式下的某些设备类型。license_file_id-(可选,与冲突license_file)将应用于设备上的许可证文件的标识符。cloud_init_file_id-(可选)将应用于设备上的云初始化文件的标识符。throughput-(可选)设备许可证吞吐量。throughput_unit-(可选)许可证吞吐量单元。或中的一个Mbps``Gbps。account_number-(必填)设备的开票账号。notifications-(必填)将接收设备状态通知的电子邮件地址列表。purchase_order_number-(可选)与设备订单关联的购买订单编号。需要购买订单的开票账户,此字段为必填项。order_reference-(可选)用于识别发票上设备订单的名称/编号。acl_template_id-(可选)将应用于设备上的WAN接口ACL模板的标识符。mgmt_acl_template_uuid-(可选)将应用于设备上的管理接口ACL模板的标识符。additional_bandwidth-(可选)将分配给设备的额外互联网带宽(以Mbps为单位)(除默认15Mbps外)。interface_count-(可选)设备上的网络接口数量。如果未指定,将使用给定设备类型的默认编号。wan_interafce_id-(可选)指定WAN SSH/SSH接口ID如果未指定,将使用给定设备类型的默认WAN /SSH接口。vendor_configuration-(可选)供应商特定设备配置参数的地图(controller1,activationKey,managementType,SiteId,systemIpAddress,privateAddress,privateCidrMask,privateGateway,licenseKey,licenseId,PanoramaAuthKey,panoramaIpAddress,ProvisioningKey,ipAddress (仅适用于Infoblox),subnetMaskIp (仅适用于Infoblox),gatewayIp (仅适用于Infoblox),令牌(仅适用于Infoblox NIOS-X设备的连接令牌,且在连接令牌时为必填type_codeINFOBLOX-NIOSX))ssh-key-(可选)将在设备上配置的SSH密钥的定义(最多一个密钥)。详情请参阅下方的SSH密钥。secondary_device-(可选)冗余设备配置的辅助设备定义。详情请参阅下方的次要设备。cluster_details-(可选)包含集群详细信息的对象。有关更多详细信息,请参阅下方的集群详细信息。connectivity-(可选)设备可访问性(互联网接入,私有或互联网接入- with-prvt-Mgmt)。如果未指定,则默认为Internet接入project_id-(可选)设备范围所针对的项目资源的唯一标识符。如果省略该标识符,设备将在贵组织的默认项目ID下创建。diverse_device_id-(可选)现有设备的唯一ID。使用此字段通知Equinix,您是否希望将新设备置于与任何现有虚拟设备不同的位置。此字段仅对单个设备有意义。generate_default_password-(可选)布尔值,用于确定是否使用默认密码创建设备。使用此字段通知Equinix您是否希望使用默认管理员密码创建新设备。 此字段仅对C8000V自主(单个/ha)和Fortinet防火墙设备(单个/ha/集群)有效。如果未指定,默认情况下,将使用管理员密码创建设备。
辅助设备
->**注意:**Network Edge提供不同的高可用性(HA)选项。通过定义secondary_device块, terraform将部署冗余设备, 对于需要在单独硬件堆栈上进行两个主动转发数据平面(主动/主动)的客户非常有用。请参阅《弹性架构》文档,了解有关您可以实现的容错解决方案的更多信息。
secondary_device块支持以下参数:
name-(必填)次要设备名称。metro_code-(必填)辅助设备的都会区位置。hostname-(可选)次要设备主机名。license_token-(可选,与冲突license_file)设备中的某些设备类型可提供许可证令牌。license_file-(可选)将在辅助设备上上传并应用的许可证文件的路径。适用于BYOL许可模式下的某些设备类型。license_file_id-(可选,与冲突license_file)将应用于辅助设备上的许可证文件的标识符。cloud_init_file_id-(可选)将应用于辅助设备上的云初始化文件的标识符。account_number-(必填)辅助设备的开票账号。notifications-(必填)将接收辅助设备通知的电子邮件地址列表。additional_bandwidth-(可选)辅助设备的额外互联网带宽(以Mbps为单位)。vendor_configuration-(可选)备用设备供应商特定配置参数的密钥/值对。键值包括controller1,activationKey,managementType,siteIdsystemIpAddress,,,privateAddress,privateCidrMask,privateGatewaylicenseKeylicenseId,,panoramaAuthKey,panoramaIpAddress,ipAddresssubnetMaskIp,gatewayIp。acl_template_id-(可选)将应用于辅助设备上的WAN接口ACL模板的标识符。mgmt_acl_template_uuid-(可选)将应用于辅助设备上的管理接口ACL模板的标识符。ssh-key-(可选)将在辅助设备上配置的SSH密钥的最多一个定义。
SSH密钥
ssh_key块支持以下参数:
username-(必填)与给定密钥关联的用户名。name-(可选)按名称引用先前配置的公有SSH密钥。
集群详情
->**注意:**Network Edge提供不同的高可用性(HA)选项。通过定义cluster_details块,terraform将部署Device Clustering。此选项基于供应商特定功能,允许客户部署比更高级的弹性配置secondary_device。了解哪些供应商支持集群设备,请参阅Network Edge高可用性选项文档。请参阅《弹性架构》文档,了解有关您可以实现的容错解决方案的更多信息。
cluster_details块支持以下参数:
cluster_name-(必填)集群设备的名称node0-(必填)具有配置的对象node0。有关更多详细信息,请参阅下方的“集群详细信息-节点”。node1-(必填)具有配置的对象node1。有关更多详细信息,请参阅下方的“集群详细信息-节点”。
集群详情 - 节点
node0和node1块支持以下参数:
vendor_configuration-(可选)包含与集群设备供应商相关字段的对象。详情请参阅下方的“集群详细信息-节点-供应商配置”。license_file_id-(可选)许可证文件ID这对于Fortinet和瞻博网络集群来说是必需的。license_token-(可选)许可证令牌。这对于Palo Alto集群是必需的。
集群详情 - 节点 - 供应商配置
vendor_configuration块支持以下参数:
hostname-(可选)主机名。这对于Palo Alto,瞻博网络和Fortinet集群来说是必需的。admin_password-(可选)设备的管理密码。您可以使用它登录到控制台。此字段并非适用于所有设备类型。controller1-(可选)系统IP地址。Fortinet SDWAN集群设备为必填项。activation_key-(可选)激活密钥。VeloCloud集群需要此功能。controller_fqdn-(可选)控制器FQDN。VeloCloud集群需要此功能。root_password-(可选)设备的CLI密码。此字段仅与Velocloud SDWAN集群相关。panorama_ip_address-(可选) Panorama服务器IP地址。此字段仅与要与Panorama服务器集成的PA-VM防火墙设备相关。panorama_auth_key-(可选) Panorama服务器授权密钥。此字段仅与要与Panorama服务器集成的PA-VM防火墙设备相关。provisioning_key-(可选)配置密钥。此字段仅与ZSCALER APPC和ZSCALER PSE设备相关。ip_address-(可选) IP地址。此字段仅与Infoblox设备相关。subnet_mask_ip-(可选)子网掩码IP。此字段仅与Infoblox设备相关。gateway_ip-(可选)网关IP。此字段仅与Infoblox设备相关。
属性参考
除了上述所有参数外,还会导出以下属性:
uuid-设备唯一标识符。status-设备配置状态。可能的值包括INITIALIZING,PROVISIONING,WAITING_FOR_PRIMARYWAITING_FOR_SECONDARY,WAITING_FOR_REPLICA_CLUSTER_NODES,,,CLUSTER_SETUP_IN_PROGRESS,FAILED,PROVISIONEDDEPROVISIONINGDEPROVISIONED,,RESOURCE_UPGRADE_IN_PROGRESS,RESOURCE_UPGRADE_FAILED。license_status-设备许可证注册状态。可能的值包括APPLYING_LICENSE,REGISTERED,APPLIED,,,WAITING_FOR_CLUSTER_SETUPREGISTRATION_FAILED。license_file_id应用许可证文件的唯一标识符。ibx-设备网点Equinix业务交换名称。region-设备位置区域。acl_template_id-应用ACL模板的唯一标识符。ssh_ip_address设备上启用SSH接口的IP地址。ssh_ip_fqdn设备上启用SSH接口的FQDN。redundancy_type-适用于高可用设备的设备冗余类型, 主要或次要。redundant_id-适用于HA设备的冗余设备的唯一标识符。interface设备接口列表。详情请参阅下方的接口属性。asn(自治系统编号)互联网上网络的唯一标识符。zone_code-设备网点区域代码。cluster_id集群的ID。num_of_nodes集群中节点的数量。diverse_device_name-具有多样化设备UUID的设备名称。如果设备是通过传递diverse _device_id创建的,则设备详情中会返回此字段
接口属性
每个接口属性都包含以下字段:
id接口标识符。name-接口名称。status-接口状态。AVAILABLE``RESERVED,中的一个ASSIGNED。operational_status-接口运行状态。up,中的一个down。mac_address-接口MAC地址。ip_address-接口IP地址。assigned_type-接口管理类型(Equinix托管或空)。type接口类型。
暂停
此资源提供以下超时配置选项:
- 创建 - 默认值为 90 分钟
- 更新 - 默认值为 90 分钟
- 删除 - 默认值为 30 分钟
导入
可以使用现有 ID 导入此资源:
terraform import equinix_network_device.example {existing_id}
license_token``mgmt_acl_template_uuid和cloud_init_file_id字段无法导入。