Skip to main content

Avis de fin de vie Equinix Metal ne sera plus pris en charge le 30 juin 2026 Toutes les ressources Metal seront supprimées dans la version 5.0.0 de ce fournisseur. Pour continuer à utiliser ce service jusqu'à cette date, veuillez utiliser la version 4.x. Consultez la page https://docs.equinix.com/metal/ pour plus d'informations.

périphérique métallique Equinix (Ressource)

Fournit une ressource de périphérique Equinix Metal. Celle-ci peut être utilisée pour créer, modifier et supprimer des périphériques.

~> NOTE: Tous les arguments, y compris root_password et user_data, seront stockés en 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 au projet 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
}

Identique à ce qui précède, mais avec un démarrage initial via iPXE, en utilisant le fournisseur Ignition 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éer un appareil sans adresse IP publique dans la région métropolitaine de New York, 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 l'appareil 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 périphérique et autorisez la modification des attributs user_data et custom_data sur place (c'est-à-dire sans détruire ni recréer l'appareil):

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

Diagramme

Requis

  • operating_system (Chaîne de caractères) Identifiant du système d'exploitation. Pour le trouver, consultez la documentation de l'API des systèmes d'exploitation (https://docs.equinix.com/api-catalog/metalv1/#tag/Operating-Systems), définissez votre jeton d'authentification API en haut de la page et examinez le JSON de la réponse de l'API. Par défaut, la modification de cet attribut entraîne 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 de caractères) Identifiant du forfait de l'appareil. Pour trouver cet identifiant, consultez la [documentation du forfait.
  • project_id (Chaîne de caractères) L'identifiant du projet dans lequel créer le périphérique

En option

  • always_pxe (Booléen) Si vrai, un appareil avec le système d'exploitation custom_ipxe
  • behavior (Liste de blocs, max.: 1) (voir ci-dessous pour le schéma imbriqué)
  • billing_cycle (Chaîne de caractères) mensuel ou horaire
  • custom_data (Chaîne de caractères, sensible) Chaîne de caractères contenant les données personnalisées souhaitées pour l'appareil. Par défaut, la modification de cet attribut entraînera la suppression et la recréation de votre appareil par le fournisseur. Si reinstall est spécifié ou si behavior.allow_changes inclut "custom_data", l'appareil sera mis à jour sur place au lieu d'être recréé.
  • description (Chaîne de caractères) Chaîne de description de l'appareil
  • facilities (Liste de chaînes de caractères, obsolète) Liste des codes d'installation avec préférences de déploiement. L'API Equinix Metal parcourra la liste et déploiera votre appareil dans la première installation à capacité libre. Les éléments de la liste doivent être des codes d'installation ou « any » (caractère générique). Conflits avec métro
  • force_detach_volumes (Booléen) Supprimer l'appareil même s'il contient des volumes. S'applique uniquement à l'action de suppression.
  • hardware_reservation_id (Chaîne de caractères) L'UUID de la réservation matérielle où vous souhaitez déployer cet appareil, 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 de la configuration du service DHCP de couche 3 ou du service de métadonnées.
  • ip_address (Liste de blocage) Une liste des 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 de caractères) URL pointant vers un script iPXE hébergé. Plus d'info
  • locked (Booléen) Indique si l'appareil est verrouillé ou déverrouillé. Le verrouillage d'un appareil empêche sa suppression, sa réinstallation ou la mise à jour de son micrologiciel. De plus, il empêche la récupération d'une instance dont le délai d'expiration est atteint, même si ce délai est dépassé.
  • metro (Chaîne de caractères) Zone métropolitaine du nouvel appareil. Conflits avec les infrastructures
  • project_ssh_key_ids (Liste de chaînes de caractères) Tableau d'identifiants des clés SSH du projet à ajouter au périphérique. Si vous spécifiez ce tableau, seules les clés SSH du projet énumérées (et 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 (les listes user_ssh_keys_ids et project_ssh_key_ids sont 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 blocage, Max: 1) (voir ci-dessous pour le schéma imbriqué)
  • storage (Chaîne de caractères) JSON pour le partitionnement personnalisé. Utilisable uniquement sur le matériel réservé. Plus d'informations dans la documentation [Partitionnement personnalisé et RAID.
  • tags (Liste de chaînes de caractères) Étiquettes associées à l'appareil
  • termination_time (Chaîne de caractères) Horodatage de l'arrêt du périphérique. Par exemple: « 2021-09-03 T16:32:00+03:00 ». Si vous ne spécifiez pas de fuseau horaire, l'horodatage est considéré comme étant en UTC.
  • timeouts (Bloc, facultatif) (voir ci-dessous pour le schéma imbriqué)
  • user_data (Chaîne de caractères, sensible) Chaîne de caractères contenant les données utilisateur souhaitées pour l'appareil. Par défaut, la modification de cet attribut entraînera la suppression et la recréation de votre appareil par le fournisseur. Si reinstall est spécifié ou si behavior.allow_changes inclut "user_data", l'appareil sera mis à jour sur place au lieu d'être recréé.
  • user_ssh_key_ids (Liste de chaînes de caractères) 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 énumérés (et les clés SSH de projet spécifiées dans project_ssh_key_ids) seront ajoutées. Si aucune clé SSH n'est spécifiée (les listes user_ssh_keys_ids et project_ssh_key_ids sont 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 (fichier metal_ssh_key.md).
  • wait_for_reservation_deprovision (Booléen) Utilisé uniquement pour les périphériques en matériel réservé. Si cette valeur est définie, la suppression de cet appareil sera bloquée jusqu'à ce que la réservation matérielle soit validée (environ 4 minutes en août 2019).

Lecture seule

  • access_private_ipv4 (Chaîne de caractères) L'adresse IP privée IPv4 attribuée à l'appareil
  • access_public_ipv4 (Chaîne de caractères) L'adresse IP de maintenance IPv4 attribuée à l'appareil
  • access_public_ipv6 (Chaîne de caractères) L'adresse IP de maintenance IPv6 attribuée à l'appareil
  • created (Chaîne de caractères) Horodatage de la création de l'appareil
  • deployed_facility (Chaîne de caractères, Déprécié) L'établissement où le dispositif est déployé
  • deployed_hardware_reservation_id (Chaîne de caractères) Identifiant de la réservation matérielle où ce périphérique a été déployé. Utile lors de l'utilisation de la prochaine réservation matérielle disponible.
  • id (Chaîne de caractères) L'identifiant de cette ressource.
  • network (Liste d'objets) Détails du réseau IP privé et public (v4 et v6) du périphérique. Lorsqu'un appareil fonctionne sans configuration réseau particulière, il possède trois adresses: IPv4 publique, IPv4 privée et IPv6 (voir ci-dessous pour le schéma imbriqué).
  • network_type (Chaîne de caractères, obsolète) Type de réseau d'un appareil, utilisé dans [la mise en réseau de couche 2. Sera l'une des valeurs suivantes: couche 3, hybride, hybride lié, couche 2 individuelle, couche 2 lié.
  • ports (Liste d'objets) Ports affectés à l'appareil (voir ci-dessous pour le schéma imbriqué)
  • root_password (Chaîne de caractères, Sensible) Mot de passe racine du serveur (désactivé après 24 heures)
  • sos_hostname (Chaîne de caractères) Le nom d'hôte à utiliser pour l'accès [Série via SSH à l'appareil
  • ssh_key_ids (Liste de chaînes de caractères) Liste des identifiants des clés SSH déployées sur l'appareil ; il peut s’agir de clés SSH utilisateur ou projet.
  • state (Chaîne de caractères) L'état de l'appareil
  • updated (Chaîne de caractères) Horodatage de la dernière mise à jour de l'appareil

Schéma imbriqué pour behavior

Facultatif:

  • allow_changes (Liste de chaînes de caractères) Liste des attributs pouvant être modifiés sans recréer l'instance. Attributs supportés: custom_data, user_data

Schéma imbriqué pour ip_address

Requis:

  • type (Chaîne de caractères) une des valeurs suivantes: public_ipv4, private_ipv4, public_ipv6

Facultatif:

  • cidr (Numéro) Suffixe CIDR du bloc IP attribué à cet appareil
  • reservation_ids (Liste de chaînes de caractères) Identifiants des réservations à partir desquelles sélectionner les blocs

Schéma imbriqué pour reinstall

Facultatif:

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

Schéma imbriqué pour timeouts

Facultatif:

  • create (Chaîne de caractères)
  • delete (Chaîne de caractères)
  • update (Chaîne de caractères)

Schéma imbriqué pour network

Lecture seule:

  • address (Chaîne de caractères)
  • cidr (Nombre)
  • family (Nombre)
  • gateway (Chaîne de caractères)
  • public (Booléen)

Schéma imbriqué pour ports

Lecture seule:

  • bonded (Booléen)
  • id (Chaîne de caractères)
  • mac (Chaîne de caractères)
  • name (Chaîne de caractères)
  • type (Chaîne de caractères)
Cette page vous a-t-elle été utile ?