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. Sireinstallest 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_ipxebehavior(Liste de blocs, max.: 1) (voir ci-dessous pour le schéma imbriqué)billing_cycle(Chaîne de caractères) mensuel ou horairecustom_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. Sireinstallest spécifié ou sibehavior.allow_changesinclut"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'appareilfacilities(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étroforce_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'infolocked(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 infrastructuresproject_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'appareiltermination_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. Sireinstallest spécifié ou sibehavior.allow_changesinclut"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 dansproject_ssh_key_ids) seront ajoutées. Si aucune clé SSH n'est spécifiée (les listesuser_ssh_keys_idsetproject_ssh_key_idssont 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 ressourceequinix_metal_ssh_key(fichiermetal_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'appareilaccess_public_ipv4(Chaîne de caractères) L'adresse IP de maintenance IPv4 attribuée à l'appareilaccess_public_ipv6(Chaîne de caractères) L'adresse IP de maintenance IPv6 attribuée à l'appareilcreated(Chaîne de caractères) Horodatage de la création de l'appareildeployed_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'appareilssh_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'appareilupdated(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 appareilreservation_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 de00hoctets avant la réinstallation.enabled(Booléen) Indique si le périphérique doit être réinstallé au lieu d'être détruitpreserve_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)