Ir para o conteúdo principal

Aviso de Descontinuação O Equinix Metal alcance ao fim de sua vida útil em 30 de junho de 2026 Todos os recursos do Metal serão removidos na versão 5.0.0 deste provedor. Use a versão 4.x deste provedor para continuar utilizando-o após o encerramento das atividades. Consulte https://docs.equinix.com/metal/ para obter mais informações.

equinix_metal_device (Recurso)

Fornece um recurso de dispositivo Equinix Metal. Pode ser usado para criar, modificar e excluir dispositivos.

~> NOTA: Todos os argumentos, incluindo root_password e user_data, serão armazenados no estado bruto como texto simples. [Leia mais sobre dados sensíveis no estado.

Exemplo de uso

Crie um dispositivo e adicione-o ao cool_project.

resource "equinix_metal_device" "web1" {
hostname = "tf.coreos2"
plan = "c3.small.x86"
metro = "sv"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
}

Semelhante ao anterior, mas inicializando via iPXE, utilizando o provedor Ignition para provisionamento.

resource "equinix_metal_device" "pxe1" {
hostname = "tf.coreos2-pxe"
plan = "c3.small.x86"
metro = "sv"
operating_system = "custom_ipxe"
billing_cycle = "hourly"
project_id = local.project_id
ipxe_script_url = "https://rawgit.com/cloudnativelabs/pxe/master/packet/coreos-stable-metal.ipxe"
always_pxe = "false"
user_data = data.ignition_config.example.rendered
}

Criar um dispositivo sem endereço IP público na região metropolitana de Nova York, utilizando apenas uma sub-rede IPv4 privada /30 (4 endereços IP).

resource "equinix_metal_device" "web1" {
hostname = "tf.coreos2"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
ip_address {
type = "private_ipv4"
cidr = 30
}
}

Implante o dispositivo no próximo hardware reservado disponível e faça o particionamento personalizado.

resource "equinix_metal_device" "web1" {
hostname = "tftest"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
hardware_reservation_id = "next-available"
storage = <<EOS
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": "4096"
},
{
"label": "SWAP",
"number": 2,
"size": "3993600"
},
{
"label": "ROOT",
"number": 3,
"size": "0"
}
]
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda3",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/sda2",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
EOS
}

Crie um dispositivo e permita que os atributos user_data e custom_data sejam alterados no mesmo local (ou seja, sem destruir e recriar o dispositivo):

resource "equinix_metal_device" "pxe1" {
hostname = "tf.coreos2-pxe"
plan = "c3.small.x86"
metro = "sv"
operating_system = "custom_ipxe"
billing_cycle = "hourly"
project_id = local.project_id
ipxe_script_url = "https://rawgit.com/cloudnativelabs/pxe/master/packet/coreos-stable-metal.ipxe"
always_pxe = "false"
user_data = local.user_data
custom_data = local.custom_data

behavior {
allow_changes = [
"custom_data",
"user_data"
]
}
}

Esquema

Obrigatório

  • operating_system (String) O slug do sistema operacional. Para encontrar o slug ou visitar a [Documentação da API de Sistemas Operacionais, defina seu token de autenticação da API na parte superior da página e veja o JSON da resposta da API . Por padrão, alterar este atributo fará com que seu dispositivo seja excluído e recriado. Se reinstall estiver ativado, o dispositivo será atualizado no local em vez de ser recriado.
  • plan (String) O slug do plano do dispositivo . Para encontrar o slug do plano, visite a [documentação do plano
  • project_id (String) O ID do projeto no qual o dispositivo será criado.

Opcional

  • always_pxe (Booleano) Se verdadeiro, um dispositivo com o sistema operacional custom_ipxe irá
  • behavior (Lista de blocos, Máx.: 1) (consulte abaixo para esquema aninhado)
  • billing_cycle (String) mensal ou por hora
  • custom_data (String, Sensitive) Uma string com os dados personalizados desejados para o dispositivo. Por padrão, alterar este atributo fará com que o provedor destrua e recrie seu dispositivo. Se reinstall for especificado ou behavior.allow_changes incluir "custom_data", o dispositivo será atualizado no local em vez de ser recriado.
  • description (String) Descrição do dispositivo
  • facilities (Lista de Strings, Obsoleto) Lista de códigos de instalações com preferências de implantação. A API Equinix Metal percorrerá a lista e implantará seu dispositivo na primeira instalação com capacidade livre. Os itens da lista devem ser códigos de instalações ou qualquer caractere (um curinga). Entra em conflito com a área metropolitana.
  • force_detach_volumes (Booleano) Excluir dispositivo mesmo que ele tenha volumes conectados. Aplica-se somente à ação de destruição.
  • hardware_reservation_id (String) O UUID da reserva de hardware onde você deseja implantar este dispositivo ou next-available se você quiser selecionar automaticamente a próxima reserva disponível.
  • hostname (String) O nome do host do dispositivo usado em implantações que aproveitam a configuração do serviço DHCP ou de metadados da camada 3.
  • ip_address (Lista de Bloqueio) Uma lista de tipos de endereço IP para o dispositivo (a estrutura está documentada abaixo) (consulte abaixo para o esquema aninhado)
  • ipxe_script_url (String) URL que aponta para um script iPXE hospedado. Mais
  • locked (Booleano) Indica se o dispositivo está bloqueado ou desbloqueado. Bloquear um dispositivo impede que você o exclua, reinstale ou atualize o dispositivo, e também impede que uma instância com tempo de término definido seja recuperada, mesmo que esse tempo tenha sido atingido.
  • metro (String) Área área metropolitana para o novo dispositivo. Conflitos com instalações
  • project_ssh_key_ids (Lista de Strings) Array de IDs das chaves SSH do projeto que devem ser adicionadas ao dispositivo. Se você especificar este array, somente as chaves SSH do projeto listadas (e quaisquer chaves SSH para os usuários especificados em user_ssh_key_ids) serão adicionadas. Se nenhuma chave SSH for especificada (tanto user_ssh_keys_ids quanto project_ssh_key_ids forem listas vazias ou omitidas), todas as chaves do projeto pai, chaves dos membros do projeto pai e chaves dos membros da organização serão incluídas. As chaves SSH do projeto podem ser criadas com o recurso equinix_metal_project_ssh_key.
  • reinstall (Lista de blocos, Máx.: 1) (consulte abaixo para esquema aninhado)
  • storage (String) JSON para particionamento personalizado. Só pode ser usado em hardware reservado. Mais informações no documento [Particionamento personalizado e RAID.
  • tags (Lista de strings) Etiquetas associadas ao dispositivo
  • termination_time (String) Timestamp para o encerramento do dispositivo . Por exemplo, " 03/09/2021 T16:32:00+03:00". Se você não fornecer informações de fuso horário, o timestamp será considerado em UTC.
  • timeouts (Bloco, Opcional) (veja abaixo para esquema aninhado)
  • user_data (String, Sensitive) Uma string com os dados de usuário desejados para o dispositivo. Por padrão, alterar este atributo fará com que o provedor destrua e recrie seu dispositivo. Se reinstall for especificado ou behavior.allow_changes incluir "user_data", o dispositivo será atualizado no local em vez de ser recriado.
  • user_ssh_key_ids (Lista de Strings) Array de IDs dos usuários cujas chaves SSH devem ser adicionadas ao dispositivo. Se você especificar este array, somente as chaves SSH dos usuários listados (e quaisquer chaves SSH de projeto especificadas em project_ssh_key_ids) serão adicionadas. Se nenhuma chave SSH for especificada (tanto user_ssh_keys_ids quanto project_ssh_key_ids forem listas vazias ou omitidas), todas as chaves do projeto pai, chaves dos membros do projeto pai e chaves dos membros da organização serão incluídas. As chaves SSH de usuário podem ser criadas com o recurso equinix_metal_ssh_key.
  • wait_for_reservation_deprovision (Booleano) Usado apenas para dispositivos em hardware reservado. Se definido, a exclusão deste dispositivo será bloqueada até que a reserva de hardware seja marcada como provisionável (cerca de 4 minutos em agosto de 2019).

Somente leitura

  • access_private_ipv4 (String) O endereço IP privado IPv4 atribuído ao dispositivo
  • access_public_ipv4 (String) O endereço IP de manutenção IPv4 atribuído ao dispositivo
  • access_public_ipv6 (String) O endereço IP de manutenção IPv6 atribuído ao dispositivo
  • created (String) O carimbo de data/hora de quando o dispositivo foi criado
  • deployed_facility (String, Obsoleto) A instalação onde o dispositivo está implantado
  • deployed_hardware_reservation_id (String) ID da reserva de hardware onde este dispositivo foi implantado. É útil ao usar a próxima reserva de hardware disponível.
  • id (String) O ID deste recurso.
  • network (Lista de Objetos) Detalhes da rede IP pública e privada do dispositivo (v4 e v6). Quando um dispositivo é executado sem nenhuma configuração de rede especial, ele terá 3 endereços: ipv4 público, ipv4 privado e ipv6 (consulte [abaixo para esquema aninhado](#nestedatt-- rede))
  • network_type (String, Obsoleto) Tipo de rede de um dispositivo, usado em redes de Camada 2 . Será um dos seguintes: layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded
  • ports (Lista de Objetos) Portas atribuídas ao dispositivo (consulte [abaixo para esquema aninhado](#nestedatt-- portas))
  • root_password (String, Sensível) Senha de root do servidor (desativada após 24 horas)
  • sos_hostname (String) O nome do host a ser usado para acesso [Serial sobre SSH ao dispositivo
  • ssh_key_ids (Lista de Strings) Lista de IDs de chaves SSH implantadas no dispositivo, podendo incluir chaves SSH de usuário e de projeto.
  • state (String) O estado do dispositivo
  • updated (String) O carimbo de data/hora da última vez que o dispositivo foi atualizado

Esquema aninhado para behavior

Opcional:

  • allow_changes (Lista de Strings) Lista de atributos que podem ser alterados sem recriar a instância. Atributos suportados: custom_data, user_data

Esquema aninhado para ip_address

Obrigatório:

  • type (String) um dos seguintes: public_ipv4, private_ipv4, public_ipv6

Opcional:

  • cidr (Número) Sufixo CIDR para o bloco IP atribuído a este dispositivo
  • reservation_ids (Lista de Strings) IDs das reservas para selecionar os blocos.

Esquema aninhado para reinstall

Opcional:

  • deprovision_fast (Booleano) Indica se o disco do sistema operacional deve ser preenchido com 00h bytes antes da reinstalação
  • enabled (Booleano) Indica se o dispositivo deve ser reinstalado em vez de destruído.
  • preserve_data (Booleano) Indica se os discos que não contêm o sistema operacional devem ser mantidos ou apagados durante a reinstalação.

Esquema aninhado para timeouts

Opcional:

  • create (String)
  • delete (String)
  • update (String)

Esquema aninhado para network

Somente leitura:

  • address (String)
  • cidr (Número)
  • family (Número)
  • gateway (String)
  • public (Booleano)

Esquema aninhado para ports

Somente leitura:

  • bonded (Booleano)
  • id (String)
  • mac (String)
  • name (String)
  • type (String)
Esta página foi útil?