Tipos de rede
Os tipos de rede do servidor, como Camada 2, Camada 3 e Híbrida, podem ser familiares aos usuários do Portal Metal da Equinix. No Portal, você pode alternar o tipo de rede com um clique na interface do usuário. Para aproveitar esses recursos no Terraform, que segue de perto a API Metal da Equinix, é importante entender que o tipo de rede é um valor de string composto, determinado por uma ou mais configurações de agregação de portas, endereçamento e conexão de VLAN. Para alterar o tipo de rede, você deve alterar essas propriedades subjacentes da(s) porta(s).
Para obter mais detalhes, consulte a documentação do Equinix Metal sobre [Tipos de Configuração de Rede.
Este provedor Terraform oferece duas maneiras de definir o tipo de rede.
Porta de metal
O recurso equinix_metal_port expõe todos os características necessários para afetar o tipo de rede de um dispositivo ou emparelhamento de porta .
A seguir, exemplos de como o recurso equinix_metal_port pode ser usado para configurar vários tipos de rede, assumindo que local.bond0_id é o UUID da interface de agregação que contém eth1 e local.eth1_id é o UUID da interface eth1. Estes podem representar as portas de recursos equinix_metal_device ou fontes de dados.
Porta de camada 3
A camada 3 (agregada) é a configuração de porta padrão em dispositivos Equinix Metal . O exemplo a seguir ilustra o uso do recurso equinix_metal_port. Esta HCL não deve ser necessária na prática, porém pode ser útil em algumas configurações para garantir que o modo correto esteja definido, porta por porta, em recursos equinix_metal_device ou fontes de dados importados.
resource "equinix_metal_port" "bond0" {
port_id = local.bond0_id
bonded = true
}
resource "equinix_metal_port" "eth1" {
port_id = local.eth1_id
bonded = true
}
Porta não agregada de camada 2
Este exemplo configura um servidor Equinix Metal com uma configuração de rede [camada 2 pura não agregada e adiciona duas VLANs à sua portaeth1; uma delas definida como a [ VLAN nativa. Observe o meta-argumento depends_on no recurso equinix_metal_port.eth1 e o atributo reset_on_delete na configuração de ambas as portas . O argumento reset_on_delete definirá a porta para as configurações padrão (camada 3 agregada sem VLANs anexadas) antes da exclusão/destruição do recurso Terraform. Recomenda-se usar o argumento depends_on aqui para garantir que os recursos de porta com VLANs anexadas sejam redefinidos primeiro, já que todas as VLANs devem ser desanexadas antes de agregar as portas novamente.
resource "equinix_metal_port" "bond0" {
port_id = local.bond0_id
layer2 = true
bonded = false
reset_on_delete = true
}
resource "equinix_metal_port" "eth1" {
port_id = local.eth1_id
bonded = false
reset_on_delete = true
vlan_ids = [equinix_metal_vlan.test1.id, equinix_metal_vlan.test2.id]
native_vlan_id = equinix_metal_vlan.test1.id
depends_on = [
equinix_metal_port.bond0,
]
}
resource "equinix_metal_vlan" "test1" {
description = "test"
metro = "sv"
project = equinix_metal_project.test.id
}
resource "equinix_metal_vlan" "test2" {
description = "test"
metro = "sv"
project = equinix_metal_project.test.id
}
Porta agregada de camada 2
resource "equinix_metal_port" "bond0" {
port_id = local.bond0_id
layer2 = true
bonded = true
}
Porta híbrida não agregada
resource "equinix_metal_port" "eth1" {
port_id = local.eth1_id
bonded = false
}
Porta híbrida agregada
resource "equinix_metal_port" "bond0" {
port_id = local.bond0_id
layer2 = false
bonded = true
vlan_ids = [equinix_metal_vlan.test.id]
}
resource "equinix_metal_vlan" "test" {
description = "test"
metro = "sv"
project = equinix_metal_project.test.id
}
Acessando IDs de porta
O valor do ID da porta pode ser obtido de um equinix_metal_device usando uma expressão for.
Supondo que exista um equinix_metal_device com o nome de recurso test:
locals {
bond0_id = [for p in equinix_metal_device.test.ports: p.id if p.name == "bond0"][0]
eth1_id = [for p in equinix_metal_device.test.ports: p.id if p.name == "eth1"][0]
}
Tipo de rede de dispositivo metálico
O equinix_metal_device_network_type recebe um tipo de rede nomeado com quaisquer parâmetros de modo necessários e converte um dispositivo para o tipo de rede nomeado. Este recurso simulava a interface de tipo de rede para Dispositivos no Equinix Metal Portal. Essa interface mudou quando tipos de rede adicionais foram introduzidos com configurações de porta mais diversas.
Ao utilizar este recurso, tenha em mente:
- Não há garantia de que este recurso funcione em dispositivos com mais de duas portas Ethernet.
- Pode não ser possível expressar todas as configurações de porta possíveis.
- Alterações subsequentes na configuração da rede podem fazer com que este dispositivo detecte alterações que não podem ser resolvidas sem intervenção.
- Os recursos
equinix_metal_device_network_typenão devem ser usados em dispositivos com portas controladas por recursosequinix_metal_port.
Dispositivo Híbrido (Não Ligado)
Este exemplo cria um dispositivo c3.small e o coloca no modo de rede híbrida (não agregada).
resource "equinix_metal_device" "test" {
hostname = "tfacc-device-port-vlan-attachment-test"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
}
resource "equinix_metal_device_network_type" "test" {
device_id = equinix_metal_device.test.id
type = "hybrid"
}
Dispositivo híbrido (não vinculado) com VLAN
Este exemplo cria dois dispositivos no modo híbrido (não ligado) e adiciona uma VLAN às suas portas eth1.
locals {
project_id = "<uuid>"
device_count = 2
}
resource "equinix_metal_vlan" "test" {
metro = "ny"
project_id = local.project_id
}
resource "equinix_metal_device" "test" {
count = local.device_count
hostname = "test${count.index}"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
}
resource "equinix_metal_device_network_type" "test" {
count = local.device_count
device_id = equinix_metal_device.test[count.index].id
type = "hybrid"
}
resource "equinix_metal_port_vlan_attachment" "test" {
count = local.device_count
device_id = equinix_metal_device_network_type.test[count.index].id
port_name = "eth1"
vlan_vnid = equinix_metal_vlan.test.vxlan
}
Dispositivo Híbrido (Colado)
Este exemplo cria um dispositivo c3.small e o coloca no [modo de rede híbrida agregada. Observe que o tipo de rede padrão layer3 pode ser usado com conexões VLAN sem reconfigurar as portas do dispositivo .
resource "equinix_metal_device" "test" {
hostname = "tfacc-device-port-vlan-attachment-test"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
}
resource "equinix_metal_vlan" "test" {
metro = "ny"
project_id = local.project_id
}
resource "equinix_metal_port_vlan_attachment" "test" {
count = local.device_count
device_id = equinix_metal_device.test.id
port_name = "bond0"
vlan_vnid = equinix_metal_vlan.test.vxlan
}