Métros vs. installations
En avril 2021, [Equinix Metal a déployé un nouveau concept d'emplacement - les [métros. Un métro est un concept à l'échelle d'Equinix pour les centres de données qui sont regroupés géographiquement. Les centres de données au sein d'un métro partagent la capacité et les fonctions de mise en réseau. Pour en savoir plus sur les métros, consultez le site https://docs.equinix.com/metal/locations/metros/. En avril 2023, le [déploiement d'installations a été supprimé] (https://docs.equinix.com/metal/locations/facilities/), le provisionnement métropolitain étant proposé comme une stratégie de déploiement globalement supérieure. Consultez le [guide des installations dans la documentation de l'API Metal pour plus de détails sur le changement d'API.
Avant l'introduction des métros, les ressources étaient déployées en un seul endroit facility. Lors du provisionnement des ressources equinix_metal_device, l'installation pouvait être choisie par Equinix Metal à partir d'une liste de facilities fournie par l'utilisateur, ou d'une installation any joker. Les emplacements des installations individuelles utilisent un code tel que "sv15" ou "ny5". Les métros regroupent les installations. Par exemple, le métro "sv" contient l'installation "sv15", entre autres. Si vous spécifiez un métro lors de la création d'une ressource, celle-ci sera déployée dans l'une des installations du groupe métro. Vous pouvez alors trouver l'installation déployée en utilisant un attribut en lecture seule de la ressource (par exemple deployed_facility pour les ressources equinix_metal_device).
Modifier vos modèles Terraform pour utiliser les métros au lieu des installations
Pour tirer parti de certaines fonctionnalités du métro, vous pouvez modifier la configuration de vos modèles Terraform de sorte que les périphériques soient spécifiés metro au lieu de facilities. Comme les paramètres metro et facilities sont des paramètres ForceNew (un changement déclenchera la recréation de la ressource), vous devez être prudent si vous ne voulez pas que l'appareil soit détruit.
Nous avons mis à jour la ressource equinix_metal_device de manière à ce que le changement se fasse en douceur, mais soyez prudent. Le paramètre metro est également un attribut calculé, et si vous utilisez une version de fournisseur plus récente que la 3.2.1, l'attribut metro est en fait présent dans votre ressource. Il vous suffit alors de l'ajouter explicitement à votre configuration.
Le paramètre facilities n'est utilisé que pour la sélection de l'installation lors de la création de la ressource de l'appareil. L'installation réelle où l'appareil est déployé est dans l'attribut deployed_facility Attribut calculé.
Si vous souhaitez uniquement modifier la spécification de la ressource equinix_metal_device pour qu'elle passe d'une spécification basée sur les installations à une spécification basée sur les métros, par exemple d'installations ["sv15"] à métro "sv", il suffit de supprimer l'attribut facilities et d'ajouter l'attribut metro.
Par exemple, la configuration suivante d'un appareil déployé dans l'installation sv15 :
resource "equinix_metal_device" "node" {
project_id = local.project_id
facilities = ["sv15"]
plan = "c3.small.x86"
operating_system = "ubuntu_16_04"
hostname = "test"
billing_cycle = "hourly"
}
... vous pouvez supprimer faclities et ajouter metro, ce qui modifie la configuration en :
resource "equinix_metal_device" "node" {
project_id = local.project_id
metro = "sv"
plan = "c3.small.x86"
operating_system = "ubuntu_16_04"
hostname = "test"
billing_cycle = "hourly"
}
Pour vérifier que le changement n'a pas altéré l'état et que le périphérique ne sera pas recréé, vous pouvez vérifier si terraform plan signale des différences. L'état de la terraforme devrait être à jour tant que l'installation dans laquelle le dispositif a été déployé se trouve dans le métro.
Si le plan diff n'est pas vide, il se peut que vous ayez utilisé un métro ne contenant pas l'installation dans laquelle le dispositif a été déployé. Cela peut se produire si vous avez utilisé plus d'installations dans la liste facilities, ou si vous avez utilisé l'installation spéciale "any".
Vous pouvez connaître l'installation déployée et le métro qui la contient en examinant l'état de la terraforme de la ressource equinix_metal_device :
$ terraform state show equinix_metal_device.node | grep deployed
deployed_facility = "sv15"
$ terraform state show equinix_metal_device.node | grep metro
metro = "sv"
Vous devez ensuite définir le métro existant dans vos modèles Terraform.