TerraForming avec l'IA

DEV - 24/09
Cet article passera en revue en utilisant une équipe d'agents d'IA en collaboration avec le serveur MCP Terraform et ...

Cet article passera en revue en utilisant une équipe d'agents d'IA en collaboration avec le serveur MCP Terraform et l'outil Cagent de Docker pour nettoyer certains terraforms plutôt noueux sans avoir besoin d'écrire de code.

Introduction

J'ai creusé assez profondément dans le marais d'outils, les modèles et les cadres basés sur des agents récemment. Il est difficile de ne pas être fasciné par la perspective d'un moteur déclaratif axé sur le langage humain, quelle que soit la production LLMS non déterministe. J'utilise des outils comme le curseur, le copilote, la dyade ou n'importe quel nombre d'outils d'activation agentiques pour coder quotidiennement des solutions (ou des parties). Mais je n'ai pas eu l'occasion de créer un flux de travail basé sur des agents. Cela est principalement dû au fait qu'il y a eu peu de problèmes dignes d'une telle attention qui ne pourraient pas être résolus en utilisant l'IA pour créer des solutions plus déterministes (aka. Code / scripts). L'utilisation de code généré est beaucoup moins coûteuse et est intensive aux ressources que de devoir faire avancer les choses à travers un LLM pour obtenir les résultats que vous cherchez à atteindre.

Récemment, j'ai trouvé une bonne raison d'utiliser un workflow AI et au lieu de coder sur mesure quelque chose avec Crewai + Python ou similaire, j'ai choisi de faire tourner l'outil Cagent de Docker.

Le problème à résoudre

Être invité à transformer un déploiement d'infrastructure existant en code pue un peu dans son ensemble. Mais ce type de tâche est souvent une nécessité si l'environnement était construit à la hâte via des clics ou existant avant de monter à bord. TerraFormer a été publié par Google à cet effet. Il génère Terraform à partir de ressources existantes pour un grand nombre de fournisseurs de terraforms. En tant que tel, c'est un excellent point de départ.

Le flux de travail n'est pas vraiment difficile:

L'outil TerraFormer peut également importer directement dans un état éloigné, mais je choisis de le faire car je souhaite réécrire les manifestes générés pour ne pas me donner des crises lors de leur lecture.

Utilisation de TerraFormer

Terrafomer est un seul outil binaire qui peut créer Terraform pour plusieurs types de fournisseurs en utilisant une sorte de pacte ou de magie démoniaque qui dépasse mon simple cerveau mortel. Le processus de l'utilisation est assez facile:

  1. Créez votreversion.tfFixez dans un dossier vide avec les exigences de votre fournisseur et la cible d'état backend.
# version.tf terraform {required_version = "> = 1.11" backend "local" {path = "terraform.tfstate"} required_providers {aws = {source = "hashicorp / aws" version = "> = 6.0"}}}
Entrez le mode de sortie en mode plein écran
  1. Initialisez le dossier via Terraform pour réduire le ou les fournisseurs (s)
Terraform init
Entrez le mode de sortie en mode plein écran
  1. Utiliserliste TerraformerPour déterminer les ressources du fournisseur, vous souhaitez importer pour le fournisseur que vous ciblez. Dans mon cas, ce serait AWS.
Liste AWS d'importation TerraFormer
Entrez le mode de sortie en mode plein écran
  1. Laissez RIP! Cet exemple cible un profil AWS spécifique avec lequel je suis déjà authentifié pour 1 région et plusieurs ressources liées au réseau.
TerraFormer Import AWS \ --resources = Route_Table, transit_gateway, vpc, vpc_endpoint, vpc_peering, igw, nat, subnet \ --regions = us-east-2 \ --profile = awsadministratorACCESS-1111111111 \ --Co...
[Courte citation de 8% de l'article original]
Loading...