action.skip

Gestion de l’état Terraform avec les ressources Megaport

Ce sujet décrit le fichier d’état Terraform et les pratiques recommandées pour l’utiliser afin de mapper vos fichiers de configuration aux services Megaport déployés sur votre réseau.

Qu’est-ce que l’état Terraform?

Terraform stocke des informations sur les ressources que vous avez créées dans un fichier d’état, appelé terraform.tfstate.

Ce fichier est automatiquement créé après l’exécution de la commande terraform apply. Il fournit un instantané de votre infrastructure gérée par Terraform à un moment précis. Il est créé dans le même répertoire où Terraform est déployé. Nous recommandons de surveiller régulièrement terraform.tfstate.

Les principaux objectifs du fichier d’état Terraform sont:

  • Mapper des ressources réelles – Le fichier d’état garde une trace des ressources d’infrastructure réelles que Terraform a créées et qu’il gère. Il enregistre des informations sur leurs configurations, ID et dépendances.

  • Source de vérité – Le fichier d’état est la source de vérité sur votre infrastructure actuelle. Lorsque vous exécutez la commande terraform apply, il compare vos fichiers de configuration avec le fichier d’état pour déterminer les changements nécessaires.

  • Suivi des métadonnées – Le fichier d’état stocke des métadonnées que Terraform utilise en interne, comme la version de Terraform utilisée pour créer l’état et les dépendances des ressources.

Pour plus d’informations sur le fichier d’état Terraform, voir State (HashiCorp).

Comprendre l’état Terraform pour les ressources Megaport

L’état Terraform est un composant crucial qui mappe vos fichiers de configuration aux ressources Megaport déployées sur votre réseau. Lorsque vous exécutez la commande terraform apply, Terraform crée un fichier d’état, terraform.tfstate, qui suit toutes les ressources qu’il gère, leurs configurations et interdépendances.

Que contient le fichier d’état Megaport Terraform Provider?

Pour les ressources Megaport, le fichier d’état suit des informations telles que:

  • Identifiants et UID des ressources
  • Configurations de port
  • Paramètres VXC
  • Configurations du routeur MCR
  • Connexions partenaires
  • Informations de localisation

Concepts clés de gestion de l’état

  • Importer des ressources existantes – Si vous avez déjà des services Megaport configurés via le Portal, utilisez la commande terraform import pour les intégrer à la gestion Terraform:

    Exemple 1: Importer un Port existant

    terraform import megaport_port.my_port "example-uid-41d4-a716-446655440000"
    

    Exemple 2: Importer un VXC existant

    terraform import megaport_vxc.my_vxc "example-uid-426f-9247-bb680e5fe0c8"
    

    Pour plus d’informations, voir Importation des services de production existants.

  • Prévenir les suppressions accidentelles – Pour protéger les services de production:

    • Exécutez toujours la commande terraform plan avant d’appliquer des changements.
    • Envisagez d’utiliser le flag -target pour limiter la portée des changements.
    • Ajoutez des blocs de cycle de vie pour empêcher la destruction de ressources critiques. Pour plus d’informations, voir Gérer le cycle de vie des ressources (HashiCorp).
       resource "megaport_port" "production_port" {
       # Port configuration...
    
       lifecycle {
       prevent_destroy = true
       }
    }
    
  • Stockage du fichier d’état pour les environnements d’équipe – Par défaut, Terraform stocke les informations d’état localement.

    Pour le stockage du fichier d’état Terraform dans les environnements d’équipe, l’utilisation d’un espace de stockage distant est recommandée pour la collaboration, le contrôle de version et la sécurité.

    • Utilisez le stockage d’état distant (Terraform Cloud, S3, etc.).
    • Activez le verrouillage de l’état pour éviter les modifications concurrentes.
    • Envisagez de crypter les fichiers d’état car ils contiennent des informations sensibles.
  • Maintenance du fichier d’état – Parfois, vous pourriez avoir besoin d’utiliser certaines commandes, par exemple:

    • terraform state list pour voir toutes les ressources gérées.
    • terraform state show pour examiner une ressource spécifique.
    • terraform state rm pour supprimer une ressource de l’état sans la détruire.
  • Gérer le décalage d’état – Le fichier d’état de Terraform garde une trace de toute l’infrastructure qu’il gère. Modifier manuellement ces ressources en dehors de Terraform peut rendre le fichier d’état inexact, une situation connue sous le nom de décalage.

    Si le registre Terraform de votre infrastructure ne correspond pas à la réalité, il essaiera de corriger les divergences, ce qui pourrait entraîner la suppression ou la recréation non intentionnelle de vos ressources. Pour plus d’informations, voir Gérer le décalage des ressources (HashiCorp).

    Si des modifications sont apportées aux ressources Megaport en dehors de Terraform:

    • Utilisez la commande terraform refresh pour mettre à jour l’état avec les configurations actuelles des ressources.
    • Envisagez d’exécuter régulièrement la commande terraform plan pour détecter les changements non autorisés.

Pratiques recommandées

Nous vous recommandons de suivre ces pratiques pour des résultats optimaux avec Terraform:

  • Sauvegardez régulièrement votre fichier d’état – Sa perte est irréversible.
  • Contrôlez la version de vos fichiers de configuration – Cependant, ne sauvegardez jamais de fichiers d’état contenant des données sensibles telles que des identifiants. Pour plus d’informations, voir Données sensibles dans l’état (HashiCorp).
  • Modularisez les configurations complexes – Cette approche améliore la gestion des ressources en promouvant une structure plus organisée et réutilisable.
  • Verrouillez les services Megaport dans le Portal – L’état Terraform est la source de vérité pour la gestion des ressources. Pour éviter les changements conflictuels avec les services de production dans le Portal et Terraform, le verrouillage des services de production est recommandé. Pour plus d’informations, voir Verrouillage des services Megaport.

Pour plus d’informations, voir Apprendre les pratiques recommandées de Terraform (HashiCorp).

Références utiles