Ir al contenido principal

~> Deprecation Notice Equinix Metal llegará al final de su vida útil en 30 de junio de 2026. Todos los recursos Metal se eliminarán en la versión 5.0.0 de este proveedor. Utilice la versión 4.x de este proveedor para seguir utilizándolo hasta el final de su vida útil. Consulte https://docs.equinix.com/metal/ para obtener más información.

equinix_dispositivo_metal (Recurso)

Proporciona un recurso de dispositivo Equinix Metal. Puede utilizarse para crear, modificar y eliminar dispositivos.

~> NOTA: Todos los argumentos incluyendo el root_password y user_data serán almacenados en el estado crudo como texto plano. [Más información sobre los datos sensibles en el estado.

Ejemplo de uso

Cree un dispositivo y añádalo a 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
}

Igual que el anterior, pero arranque inicialmente a través de iPXE, utilizando el proveedor Ignition para el aprovisionamiento

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
}

Crear un dispositivo sin dirección IP pública en metro ny, con sólo una subred IPv4 privada /30 (4 direcciones 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
}
}

Despliegue el dispositivo en el siguiente hardware reservado disponible y realice particiones personalizadas.

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
}

Cree un dispositivo y permita que los atributos user_data y custom_data cambien in situ (es decir, sin destruir y volver a crear el 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

Requerido

  • operating_system (Cadena) El slug del sistema operativo. Para encontrar el Slug, o visite [Operating Systems API docs, establezca su token de autentificación de la API en la parte superior de la página y vea el JSON de la respuesta de la API. Por defecto, el cambio de este atributo hará que su dispositivo se borre y se vuelva a crear. Si se activa reinstall, el dispositivo se actualizará in situ en lugar de recrearse.
  • plan (Cadena) El slug del plan del dispositivo. Para encontrar el slug del plan, visite la [documentación del plan
  • project_id (Cadena) El ID del proyecto en el que crear el dispositivo

Opcional:

  • always_pxe (Booleano) Si es verdadero, un dispositivo con SO custom_ipxe se
  • behavior (Lista de bloques, Máx: 1) (véase más abajo para el esquema anidado)
  • billing_cycle (Cadena) mensual o por hora
  • custom_data (Cadena, Sensible) Una cadena de los Datos Personalizados deseados para el dispositivo. Por defecto, el cambio de este atributo hará que el proveedor destruya y vuelva a crear su dispositivo. Si se especifica reinstall o behavior.allow_changes incluye "custom_data", el dispositivo se actualizará in situ en lugar de recrearse.
  • description (Cadena) Cadena de descripción para el dispositivo
  • facilities (Lista de cadenas, obsoleta) Lista de códigos de instalaciones con preferencias de despliegue. La API de Equinix Metal recorrerá la lista y desplegará su dispositivo en la primera instalación con capacidad libre. Los elementos de la lista deben ser códigos de instalación o any (un comodín). Conflictos con metro
  • force_detach_volumes (Booleano) Eliminar dispositivo aunque tenga volúmenes adjuntos. Sólo se aplica para la acción de destruir
  • hardware_reservation_id (Cadena) El UUID de la reserva de hardware donde desea que se despliegue este dispositivo, o next-available si desea que se elija automáticamente la siguiente reserva disponible.
  • hostname (Cadena) El nombre de host del dispositivo utilizado en despliegues que aprovechan el DHCP de Capa3 o la configuración del servicio de metadatos.
  • ip_address (Lista de bloques) Una lista de tipos de direcciones IP para el dispositivo (la estructura se documenta más adelante) (véase más adelante para el esquema anidado)
  • ipxe_script_url (Cadena) URL que apunta a un script iPXE alojado. Más
  • locked (Booleano) Si el dispositivo está bloqueado o desbloqueado. Bloquear un dispositivo le impide borrarlo o reinstalarlo o realizar una actualización del firmware en el dispositivo, y evita que una instancia con un tiempo de terminación establecido sea recuperada, incluso si se alcanzó el tiempo de terminación.
  • metro (Cadena) Área metropolitana para el nuevo dispositivo. Conflictos con instalaciones
  • project_ssh_key_ids (Lista de cadenas) Matriz de ID de las claves SSH del proyecto que deben añadirse al dispositivo. Si especifica esta matriz, sólo se añadirán las claves SSH del proyecto enumeradas (y cualquier clave SSH para los usuarios especificados en user_ssh_key_ids). Si no se especifica ninguna clave SSH (tanto user_ssh_keys_ids como project_ssh_key_ids son listas vacías o se omiten), se incluirán todas las claves del proyecto padre, las claves de los miembros del proyecto padre y las claves de los miembros de la organización. Las claves SSH del proyecto pueden crearse con el recurso equinix_metal_project_ssh_key
  • reinstall (Lista de bloques, Máx: 1) (véase más abajo para el esquema anidado)
  • storage (Cadena) JSON para particionamiento personalizado. Sólo utilizable en hardware reservado. Más información en el doc [Particionamiento personalizado y RAID
  • tags (Lista de cadenas) Etiquetas adjuntas al dispositivo
  • termination_time (Cadena) Marca de tiempo para la terminación del dispositivo. Por ejemplo "03/09/2021T16:32:00+03:00". Si no proporciona información sobre la zona horaria, se asume que la marca de tiempo está en UTC.
  • timeouts (Bloque, Opcional) (véase más abajo para el esquema anidado)
  • user_data (Cadena, Sensible) Una cadena de los Datos de Usuario deseados para el dispositivo. Por defecto, el cambio de este atributo hará que el proveedor destruya y vuelva a crear su dispositivo. Si se especifica reinstall o behavior.allow_changes incluye "user_data", el dispositivo se actualizará in situ en lugar de recrearse.
  • user_ssh_key_ids (Lista de cadenas) Matriz de ID de los usuarios cuyas claves SSH deben añadirse al dispositivo. Si especifica esta matriz, sólo se añadirán las claves SSH de los usuarios de la lista (y cualquier clave SSH del proyecto especificada en project_ssh_key_ids). Si no se especifica ninguna clave SSH (tanto user_ssh_keys_ids como project_ssh_key_ids son listas vacías o se omiten), se incluirán todas las claves del proyecto padre, las claves de los miembros del proyecto padre y las claves de los miembros de la organización. Las claves SSH de usuario pueden crearse con el recurso equinix_metal_ssh_key
  • wait_for_reservation_deprovision (Booleano) Sólo se utiliza para dispositivos en hardware reservado. Si se establece, la eliminación de este dispositivo se bloqueará hasta que la reserva de hardware se marque como provisionable (unos 4 minutos en agosto de 2019).

Sólo lectura

  • access_private_ipv4 (Cadena) La IP privada ipv4 asignada al dispositivo
  • access_public_ipv4 (Cadena) La IP de mantenimiento ipv4 asignada al dispositivo
  • access_public_ipv6 (Cadena) La IP de mantenimiento ipv6 asignada al dispositivo
  • created (Cadena) La marca de tiempo de cuando se creó el dispositivo
  • deployed_facility (String, Deprecated) La instalación donde está desplegado el dispositivo
  • deployed_hardware_reservation_id (Cadena) ID de reserva de hardware donde se desplegó este dispositivo. Es útil cuando se utiliza la siguiente reserva de hardware disponible.
  • id (Cadena) El ID de este recurso.
  • network (Lista de objetos) Detalles de la red IP privada y pública (v4 y v6) del dispositivo. Cuando un dispositivo se ejecuta sin ninguna configuración de red especial, tendrá 3 direcciones: ipv4 pública, ipv4 privada e ipv6 (véase más abajo para el esquema anidado)
  • network_type (String, Deprecated) Tipo de red de un dispositivo, utilizado en [red de capa 2. Será uno de layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded
  • ports (Lista de objetos) Puertos asignados al dispositivo (véase más abajo para el esquema anidado)
  • root_password (Cadena, Sensible) Contraseña raíz del servidor (desactivada después de 24 horas)
  • sos_hostname (Cadena) El nombre de host a utilizar para el acceso [Serial sobre SSH al dispositivo
  • ssh_key_ids (Lista de cadenas) Lista de IDs de claves SSH desplegadas en el dispositivo, pueden ser tanto claves SSH de usuario como de proyecto.
  • state (Cadena) El estado del dispositivo
  • updated (Cadena) La marca de tiempo de la última vez que se actualizó el dispositivo

Esquema anidado para behavior

Opcional:

  • allow_changes (Lista de cadenas) Lista de atributos que se permite cambiar sin recrear la instancia. Atributos admitidos: custom_data, user_data

Esquema anidado para ip_address

Necesario:

  • type (Cadena) uno de public_ipv4,private_ipv4,public_ipv6

Opcional:

  • cidr (Número) Sufijo CIDR para el bloque IP asignado a este dispositivo
  • reservation_ids (Lista de cadenas) ID de reservas de las que escoger los bloques

Esquema anidado para reinstall

Opcional:

  • deprovision_fast (Booleano) Si el disco del SO debe llenarse con 00h bytes antes de reinstalar
  • enabled (Booleano) Si el dispositivo debe reinstalarse en lugar de destruirse.
  • preserve_data (Booleano) Si los discos que no son del SO deben conservarse o borrarse durante la reinstalación.

Esquema anidado para timeouts

Opcional:

  • create (Cadena)
  • delete (Cadena)
  • update (Cadena)

Esquema anidado para network

Sólo lectura:

  • address (Cadena)
  • cidr (Número)
  • family (Número)
  • gateway (Cadena)
  • public (booleano)

Esquema anidado para ports

Sólo lectura:

  • bonded (booleano)
  • id (Cadena)
  • mac (Cadena)
  • name (Cadena)
  • type (Cadena)
¿Fue útil esta página?