~> 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 activareinstall, 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 planproject_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 sebehavior(Lista de bloques, Máx: 1) (véase más abajo para el esquema anidado)billing_cycle(Cadena) mensual o por horacustom_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 especificareinstallobehavior.allow_changesincluye"custom_data", el dispositivo se actualizará in situ en lugar de recrearse.description(Cadena) Cadena de descripción para el dispositivofacilities(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 metroforce_detach_volumes(Booleano) Eliminar dispositivo aunque tenga volúmenes adjuntos. Sólo se aplica para la acción de destruirhardware_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áslocked(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 instalacionesproject_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_keyreinstall(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 RAIDtags(Lista de cadenas) Etiquetas adjuntas al dispositivotermination_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 especificareinstallobehavior.allow_changesincluye"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_keywait_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 dispositivoaccess_public_ipv4(Cadena) La IP de mantenimiento ipv4 asignada al dispositivoaccess_public_ipv6(Cadena) La IP de mantenimiento ipv6 asignada al dispositivocreated(Cadena) La marca de tiempo de cuando se creó el dispositivodeployed_facility(String, Deprecated) La instalación donde está desplegado el dispositivodeployed_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-bondedports(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 dispositivossh_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 dispositivoupdated(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 dispositivoreservation_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 con00hbytes antes de reinstalarenabled(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)