Module 08 · Cours 0802

Intégrer l'infra existante
dans le contexte IA

Générer du code IaC cohérent avec votre infrastructure en fournissant le bon contexte

Pratique · 45 min
@Victorlanglois
1 / 15
Objectifs d'apprentissage

À la fin de ce cours,
vous saurez :

1
Extraire le contexte pertinent de votre infra existante
2
Choisir l'approche adaptée selon la taille de l'infra
3
Sécuriser l'extraction (pas de secrets exposés)
@Victorlanglois
2 / 15
Le problème

Sans contexte, l'IA génère
du code générique

Noms en doublon
Conflits avec ressources existantes
CIDR qui overlap
Réseaux incompatibles
Conventions ignorées
Code incohérent avec l'existant
@Victorlanglois
3 / 15
La solution

Le principe universel

Quel que soit l'outil, le workflow reste le même.

1
Extraire l'état actuel
2
Filtrer le pertinent
3
Enrichir le prompt
4
Générer code
5
Valider

Rappel : Context Injection vu en 0801

@Victorlanglois
4 / 15
Référence

Commandes par outil

Action Terraform Ansible CloudFormation
Extraire terraform state pull ansible-inventory --list describe-stacks
Filtrer jq '.resources[]' --yaml --host --query 'Outputs'
Importer terraform import N/A (facts) resource-import
Valider terraform plan --check --diff validate-template
@Victorlanglois
5 / 15
Choisir son approche

4 niveaux selon la taille de l'infra

Simple
State dans prompt
< 50 ressources
Question ponctuelle
Moyen
Import ressources
Ressources manuelles
à codifier
Avancé
Reverse-engineering
Infra existante
sans IaC
Expert
RAG sur state
500+ ressources
Multi-environnement

On va détailler chaque approche dans les slides suivantes

@Victorlanglois
6 / 15
Approche 1 · Simple

State dans le prompt

Extraire le contexte et le coller directement dans le prompt.

# Extraire le contexte VPC
terraform state pull | jq '.resources[] | select(.type == "aws_vpc")' > context.json

# Puis dans le prompt :
"Voici mon infra : [context.json]. Générez un subnet compatible."

Avantage : Simple, pas d'infra à maintenir
Limite : Ne scale pas au-delà de 50-100 ressources

@Victorlanglois
7 / 15
Approche 2 · Moyen

Import de ressources

Ramener des ressources créées manuellement sous contrôle IaC.

# 1. Importer la ressource
terraform import aws_instance.web i-0abc123

# 2. Extraire son état
terraform state show aws_instance.web

# 3. Demander à l'IA de générer le code HCL correspondant

Cas d'usage : Vous avez créé des ressources à la main dans la console cloud

@Victorlanglois
8 / 15
Avez-vous des ressources
créées manuellement à codifier ?

Console AWS · Azure Portal · GCP Console

@Victorlanglois
9 / 15
Approche 3 · Avancé

Reverse-engineering

Scanner l'existant et générer automatiquement le code.

Outil Commande Usage
terraformer terraformer import aws --resources=vpc,subnet Multi-cloud
former2 Interface web AWS → TF/CFN
ansible-cmdb ansible-cmdb facts/ -t json CMDB depuis facts

Le code généré est souvent verbeux → refactorer avec l'IA

@Victorlanglois
10 / 15
Approche 4 · Expert

RAG sur state

Pour les très grosses infras : indexer le state dans une base vectorielle.

state
Exporter JSON
chunk
1 ressource = 1 doc
index
Base vectorielle
query
Recherche auto

Avantage : Scale à 500+ ressources, contexte toujours pertinent
Limite : Infra à maintenir (Pinecone, pgvector...)

@Victorlanglois
11 / 15
Sous le capot

RAG vs Few-Shot

RAG
L'IA cherche dans une base avant de générer.

Bon pour : Savoir quelles ressources existent (contexte)
Few-Shot
L'IA apprend de quelques exemples dans le prompt.

Bon pour : Respecter la structure et les conventions (format)

Combiner les deux est recommandé pour l'IaC

@Victorlanglois
12 / 15
Attention

Le state contient des secrets

Risque Mitigation
Secrets en clair (passwords) Backend chiffré (S3 + KMS), filtrer avant RAG
Injection de prompt Validation stricte entrées/sorties
Accès sur-privilégié RBAC + accès Just-In-Time
Règle d'or
Toujours filtrer avec jq et supprimer les secrets avant de partager le contexte avec l'IA.
@Victorlanglois
13 / 15
Synthèse

Ce qu'il faut retenir

Points clés du cours 0802
Extraire → Filtrer → Enrichir → Générer → Valider
4 approches selon la taille de l'infra
RAG + Few-Shot = meilleure combinaison
Toujours filtrer les secrets avant de partager
@Victorlanglois
14 / 15
Prochaine étape

Cours 0803

Maintenant que vous générez du code contextuel,
comment automatiser la documentation technique ?

@Victorlanglois
15 / 15