Terraform est un outil open source dédié à l'orchestration automatisée des ressources. ROS héberge Terraform en tant que service managé. Créez des modèles et des piles Terraform pour orchestrer les ressources Alibaba Cloud, Amazon Web Services (AWS) et Microsoft Azure via des opérations compatibles avec l'API ROS.
Limites
Terraform ne prend en charge qu'un sous-ensemble des fonctionnalités et des ressources de ROS. Pour plus de détails, consultez la rubrique Fonctionnalités et ressources prises en charge par Terraform dans ROS.
Méthodes de développement
Rédigez et testez votre code Terraform en utilisant l'une des méthodes suivantes :
Utilisez un environnement local (on-premises).
Utilisez l'outil de débogage en ligne Terraform (ressources Alibaba Cloud uniquement).
(Recommandé) Créez une pile Terraform dans la console ROS, puis poursuivez ou mettez à jour la création selon vos besoins. Consultez les rubriques Créer une pile Terraform, Poursuivre la création d'une pile et Mettre à jour une pile.
Avantages de l'utilisation de Terraform dans ROS
ROS ajoute les fonctionnalités suivantes par rapport à l'interface CLI Terraform :
-
Expérience console unifiée
La console ROS gère les modèles Terraform avec la même ergonomie que les modèles ROS natifs, centralisant ainsi toute la gestion des ressources.
Sur la page Create Stack de la console ROS, saisissez un Stack Name, sélectionnez une Region telle que China (Hangzhou), puis chargez votre modèle Terraform.
La console affiche les variables du modèle sous forme de formulaire visuel, proposant des listes déroulantes et des valeurs par défaut pour des paramètres tels que VPC Configuration, vSwitch, Instance Type et Security Group.
$ terraform plan Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create # alicloud_vpc.default will be created + resource "alicloud_vpc" "default" { + cidr_block = "10.0.0.0/8" + vpc_name = (known after apply) } Plan: 6 to add, 0 to change, 0 to destroy.$ terraform apply alicloud_vpc.default: Creating... alicloud_vpc.default: Creation complete after 6s [id=vpc-bp1...] alicloud_vswitch.default[0]: Creating... alicloud_vswitch.default[0]: Creation complete after 5s [id=vsw-bp1...] Apply complete! Resources: 6 added, 0 changed, 0 destroyed. -
Requêtes dynamiques et sélection des paramètres et propriétés
Interroge dynamiquement les valeurs de paramètres valides.
Permet de référencer un seul paramètre across plusieurs propriétés.
Affiche les paramètres dans une interface graphique avec des valeurs sélectionnables. Consultez la rubrique AssociationProperty et AssociationPropertyMetadata.
Lors de la configuration des paramètres, des champs tels que Virtual Private Cloud (VPC) et Security Group affichent une liste déroulante des ressources disponibles dans la région actuelle, filtrées dynamiquement en fonction des paramètres précédemment sélectionnés.
Dans la section Parameters d'un modèle, spécifiez
AssociationPropertypour interroger les ressources régionales etAssociationPropertyMetadatapour ajouter des conditions de filtre. La console ROS affiche alors les valeurs sélectionnables pour ces paramètres.Vous pouvez ainsi sélectionner des ressources existantes dans des listes déroulantes au lieu de saisir manuellement les ID de ressource.
-
Estimation des coûts des ressources du modèle
Avant le déploiement, ROS calcule et affiche le coût estimé des ressources définies dans votre modèle Terraform, facilitant ainsi la planification budgétaire.
La boîte de dialogue Price Details répertorie les coûts estimés par Resource Type (telles que les instances ECS et RDS), Specifications, Region, Quantity et Billing Method. Le montant total des Prepaid Monthly Fee s'affiche en haut de la fenêtre.
-
Vérifications de l'activation des services et des rôles
Vérifications automatiques : ROS vérifie si les services mentionnés dans le modèle sont activés et si les rôles requis existent avant le déploiement. Si un service tel que Transit Router n'est pas activé, une boîte de dialogue Dependency Check apparaît, indiquant le nombre de problèmes détectés et fournissant un Activation Link vers la page d'activation du service.
-
Aides et conseils : Si un service requis n'est pas activé ou si un rôle est manquant, ROS fournit des instructions pour finaliser la configuration.
En cliquant sur le lien d'activation, vous êtes redirigé vers la page du service (par exemple Transit Router) où vous devez accepter le Service Agreement pour l'activer.
-
Détection des risques
ROS détecte les risques potentiels avant l'exécution des opérations, comme la suppression d'un groupe de sécurité.
Lors de la suppression d'une pile, la boîte de dialogue Delete Stack affiche une Risk Alert répertoriant les ressources présentant des dépendances (par exemple, un groupe de sécurité référencé par une instance ECS). Vous devez sélectionner une Deletion Method (conserver les ressources ou les libérer) et confirmer le Stack Name pour procéder.
-
Gestion des versions et partage des modèles
ROS offre un contrôle de version pour les modèles Terraform. Consultez les Template Details (ID, statut de partage, horodatages), changez de version à l'aide du sélecteur Template Version, affichez le Template Content (tel que le code HCL dans un fichier main.tf) en ligne, partagez le modèle via Share Template ou déployez-le avec Create Stack.
-
Propagation des tags et des groupes de ressources
Propagez les tags et les groupes de ressources à toutes les ressources du modèle en une seule opération.
Scénarios
Créer une pile Terraform
Pour orchestrer et gérer de manière centralisée les ressources sur différentes plateformes cloud (AWS, Azure) ou dans des environnements locaux, créez une pile Terraform. Consultez la rubrique Créer une pile Terraform.
Créer un modèle Terraform
Pour gérer des ressources cloud tierces (AWS, Azure) depuis Alibaba Cloud, définissez-les avec leurs relations de dépendance dans un modèle Terraform. Consultez la rubrique Créer un modèle Terraform.
Structure du modèle
Définissez les ressources, les paramètres et les relations de dépendance dans les modèles Terraform pour orchestrer les ressources Alibaba Cloud, AWS et Azure. Consultez les rubriques Structure des modèles Terraform et Qu'est-ce qu'Alibaba Cloud Terraform ?
Conseils de développement
Suivez ces bonnes pratiques lors du développement de code Terraform pour ROS. Consultez la rubrique Méthodes et suggestions pour le développement de code Terraform.
Affinez les définitions des variables.
Spécifiez la version du provider.
Utilisez des pseudo-paramètres pour obtenir des informations sur la pile.
Contrôlez le mode de saisie des paramètres et des variables dans la console.
Utilisez Aliyun::Terraform-v1.0 ou une version ultérieure.
Utilisez Metadata pour contrôler l'affichage des paramètres et des variables dans la console.
Enregistrez le code local dans des fichiers dont le nom se termine par .debug.tf.
Ne déclarez pas le provider Alibaba Cloud (alicloud) dans le fichier .tf.
Utilisez les paramètres ROS plutôt que des fichiers .tfvars pour transmettre les valeurs des variables.
Exemples de modèles
Consultez la rubrique Exemples de modèles Terraform.