Skip to main content

~> Deprecation Notice Equinix Metal arrivera en fin de vie le 30 juin 2026. Toutes les ressources Metal seront supprimées dans la version 5.0.0 de ce fournisseur. Utilisez la version 4.x de ce fournisseur pour continuer à l'utiliser jusqu'à la fin de sa durée de vie. Consultez https://docs.equinix.com/metal/ pour plus d'informations.

equinix_metal_device (Ressource)

Fournit une ressource de dispositif Metal d'Equinix. Elle peut être utilisée pour créer, modifier et supprimer des dispositifs.

~> NOTE : Tous les arguments, y compris les root_password et user_data, seront stockés en texte clair dans l'état brut. [En savoir plus sur les données sensibles dans l'état.

Exemple d'utilisation

Créez un appareil et ajoutez-le à 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
}

Même chose que ci-dessus, mais démarrez d'abord via iPXE, en utilisant le Ignition Provider pour le provisionnement.

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
}

Créez un appareil sans adresse IP publique dans le métro, avec seulement un sous-réseau IPv4 privé /30 (4 adresses 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
}
}

Déployez le dispositif sur le prochain matériel réservé disponible et effectuez un partitionnement personnalisé.

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
}

Créez un dispositif et autorisez les attributs user_data et custom_data à changer sur place (c'est-à-dire sans détruire et recréer le dispositif) :

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"
]
}
}

Schéma

Exigée

  • operating_system (Chaîne) Le Slug du système d'exploitation. Pour trouver le Slug, ou visitez [Operating Systems API docs, définissez votre jeton d'authentification API en haut de la page et consultez le JSON de la réponse API. Par défaut, la modification de cet attribut entraînera la suppression et la recréation de votre appareil. Si reinstall est activé, l'appareil sera mis à jour sur place au lieu d'être recréé.
  • plan (Chaîne) Le Slug du plan de l'appareil. Pour trouver le Slug du plan, visitez la [documentation du plan.
  • project_id (String) L'ID du projet dans lequel créer l'appareil

En option

  • always_pxe (booléen) Si vrai, un appareil avec OS custom_ipxe sera
  • behavior (Liste de blocs, Max : 1) (voir ci-dessous pour le schéma imbriqué)
  • billing_cycle (Chaîne) mensuel ou horaire
  • custom_data (String, Sensitive) Chaîne de données personnalisées souhaitées pour l'appareil. Par défaut, la modification de cet attribut entraînera la destruction et la recréation de votre appareil par le fournisseur. Si reinstall est spécifié ou si behavior.allow_changes inclut "custom_data", le dispositif sera mis à jour sur place au lieu d'être recréé.
  • description (String) Chaîne de description de l'appareil
  • facilities (List of String, Deprecated) Liste de codes d'installations avec des préférences de déploiement. L'API Metal d'Equinix parcourt la liste et déploie votre dispositif dans la première installation disposant d'une capacité libre. Les éléments de la liste doivent être des codes d'installation ou any (un caractère générique). Conflits avec metro
  • force_detach_volumes (booléen) Supprimer le périphérique même s'il a des volumes attachés. Ne s'applique qu'à l'action de destruction
  • hardware_reservation_id (Chaîne) L'UUID de la réservation de matériel où vous souhaitez que ce dispositif soit déployé, ou next-available si vous souhaitez sélectionner automatiquement la prochaine réservation disponible.
  • hostname (Chaîne) Le nom d'hôte de l'appareil utilisé dans les déploiements tirant parti du DHCP de couche 3 ou de la configuration du service de métadonnées.
  • ip_address (Block List) Une liste de types d'adresses IP pour l'appareil (la structure est documentée ci-dessous) (voir ci-dessous pour le schéma imbriqué)
  • ipxe_script_url (Chaîne) URL pointant vers un script iPXE hébergé. Plus d'informations
  • locked (booléen) Indique si l'appareil est verrouillé ou déverrouillé. Le verrouillage d'un dispositif vous empêche de supprimer ou de réinstaller le dispositif ou d'effectuer une mise à jour du micrologiciel sur le dispositif, et il empêche une instance avec un délai de résiliation défini d'être récupérée, même si le délai de résiliation a été atteint
  • metro (Chaîne) Zone métropolitaine pour le nouveau dispositif. Conflits avec les installations
  • project_ssh_key_ids (List of String) Tableau d'ID des clés SSH du projet qui doivent être ajoutées à l'appareil. Si vous spécifiez ce tableau, seules les clés SSH du projet listées (et toutes les clés SSH des utilisateurs spécifiés dans user_ssh_key_ids) seront ajoutées. Si aucune clé SSH n'est spécifiée (user_ssh_keys_ids et project_ssh_key_ids sont des listes vides ou omises), toutes les clés du projet parent, les clés des membres du projet parent et les clés des membres de l'organisation seront incluses. Les clés SSH du projet peuvent être créées avec la ressource equinix_metal_project_ssh_key.
  • reinstall (Liste de blocs, Max : 1) (voir ci-dessous pour le schéma imbriqué)
  • storage (Chaîne) JSON pour le partitionnement personnalisé. Utilisable uniquement sur du matériel réservé. Pour plus d'informations, consultez le document [Partitionnement personnalisé et RAID.
  • tags (Liste de chaînes) Etiquettes attachées à l'appareil
  • termination_time (Chaîne) Horodatage de la fin du dispositif. Par exemple, "03/09/2021T16:32:00+03:00". Si vous ne fournissez pas d'informations sur le fuseau horaire, l'horodatage est supposé être en UTC.
  • timeouts (Bloc, Facultatif) (voir ci-dessous pour le schéma imbriqué)
  • user_data (String, Sensitive) Chaîne de données utilisateur souhaitées pour l'appareil. Par défaut, la modification de cet attribut entraînera la destruction et la recréation de votre appareil par le fournisseur. Si reinstall est spécifié ou si behavior.allow_changes inclut "user_data", le dispositif sera mis à jour sur place au lieu d'être recréé.
  • user_ssh_key_ids (List of String) Tableau d'identifiants des utilisateurs dont les clés SSH doivent être ajoutées au périphérique. Si vous spécifiez ce tableau, seules les clés SSH des utilisateurs répertoriés (et toutes les clés SSH du projet spécifiées dans project_ssh_key_ids) seront ajoutées. Si aucune clé SSH n'est spécifiée (user_ssh_keys_ids et project_ssh_key_ids sont des listes vides ou omises), toutes les clés du projet parent, les clés des membres du projet parent et les clés des membres de l'organisation seront incluses. Les clés SSH utilisateur peuvent être créées avec la ressource equinix_metal_ssh_key
  • wait_for_reservation_deprovision (booléen) Uniquement utilisé pour les dispositifs dans le matériel réservé. Si cette option est activée, la suppression de ce dispositif sera bloquée jusqu'à ce que la réservation de matériel soit marquée comme provisionnable (environ 4 minutes en août 2019).

En lecture seule

  • access_private_ipv4 (Chaîne) L'adresse IP privée ipv4 attribuée à l'appareil.
  • access_public_ipv4 (Chaîne) L'IP de maintenance ipv4 attribuée à l'appareil.
  • access_public_ipv6 (Chaîne) L'IP de maintenance ipv6 attribuée à l'appareil.
  • created (Chaîne) Horodatage de la date de création de l'appareil.
  • deployed_facility (String, Deprecated) L'installation où l'appareil est déployé.
  • deployed_hardware_reservation_id (Chaîne) ID de la réservation de matériel où ce dispositif a été déployé. Il est utile lorsque vous utilisez la réservation de matériel disponible suivante.
  • id (Chaîne) L'identifiant de cette ressource.
  • network (Liste d'objets) Détails du réseau IP privé et public (v4 et v6) de l'appareil. Lorsqu'un appareil est utilisé sans configuration réseau particulière, il dispose de trois adresses : public ipv4, private ipv4 et ipv6 (voir ci-dessous pour le schéma imbriqué).
  • network_type (String, Deprecated) Type de réseau d'un appareil, utilisé dans [Layer 2 networking. Sera l'un des types suivants : layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded.
  • ports (Liste d'objets) Ports attribués à l'appareil (voir ci-dessous pour le schéma imbriqué)
  • root_password (String, Sensitive) Mot de passe racine du serveur (désactivé après 24 heures)
  • sos_hostname (Chaîne) Le nom d'hôte à utiliser pour [Serial over SSH l'accès à l'appareil.
  • ssh_key_ids (List of String) Liste des identifiants des clés SSH déployées dans l'appareil ; il peut s'agir de clés SSH d'utilisateurs et de projets.
  • state (Chaîne) L'état de l'appareil
  • updated (Chaîne) Horodatage de la dernière mise à jour de l'appareil.

Schéma imbriqué pour behavior

En option :

  • allow_changes (List of String) Liste des attributs qui peuvent être modifiés sans recréer l'instance. Attributs pris en charge : custom_data, user_data

Schéma imbriqué pour ip_address

Obligatoire :

  • type (Chaîne) un parmi public_ipv4,private_ipv4,public_ipv6

En option :

  • cidr (Nombre) Suffixe CIDR pour le bloc IP attribué à cet appareil
  • reservation_ids (List of String) ID des réservations à partir desquelles les blocs doivent être sélectionnés

Schéma imbriqué pour reinstall

En option :

  • deprovision_fast (booléen) Indique si le disque du système d'exploitation doit être rempli avec 00h octets avant la réinstallation.
  • enabled (booléen) Indique si le dispositif doit être réinstallé au lieu d'être détruit.
  • preserve_data (booléen) Indique si les disques non-OS doivent être conservés ou effacés lors de la réinstallation.

Schéma imbriqué pour timeouts

En option :

  • create (Chaîne)
  • delete (Chaîne)
  • update (Chaîne)

Schéma imbriqué pour network

En lecture seule :

  • address (Chaîne)
  • cidr (Nombre)
  • family (Nombre)
  • gateway (Chaîne)
  • public (booléen)

Schéma imbriqué pour ports

En lecture seule :

  • bonded (booléen)
  • id (Chaîne)
  • mac (Chaîne)
  • name (Chaîne)
  • type (Chaîne)
Cette page vous a-t-elle été utile ?