- Accueil
- Réseau multi-cloud
- Multi-cloud networking CE-HA demo
- Déployer la démo
Déployer la démo
Prérequis
Section intitulée « Prérequis »- Terraform à la version plancher indiquée dans
terraform/versions.tf—>= 1.8, pour les fonctions définies par le fournisseur et le bloccheckqui protège la VIP. - Le fournisseur
xcsh. Aucune version n’est figée :.terraform.lock.hclest ignoré par git et la contrainte est un plancher ouvert, donc chaqueinitrésout la dernière version publiée. C’est délibéré pour un projet en préversion — la démo doit échouer sur une régression du fournisseur plutôt que de rester sur une version obsolète qui la masque. - Un identifiant d’API F5 XC pour le tenant indiqué dans
var.expected_xc_tenant, exporté sousXCSH_API_TOKEN(ou la paire P12/PEM). N’exportez que l’identifiant, jamais une URL — voir ci-dessous. - Des identifiants Azure disposant des droits de créer un groupe de ressources, un VNet, un Route Server et des VM.
- Un namespace F5 XC préexistant pour la couche applicative. Le déploiement le lit et ne le crée ni ne le détruit jamais, de sorte qu’un namespace contenant des démos sans lien ne peut jamais se retrouver dans la liste de destruction de cette stack.
Fournir les deux valeurs qui n’ont pas de valeur par défaut
Section intitulée « Fournir les deux valeurs qui n’ont pas de valeur par défaut »Toutes les autres variables ont une valeur par défaut fonctionnelle, et chaque nom d’objet dérive de
var.component. Deux sont délibérément laissées sans :
cd terraformcp terraform.tfvars.example terraform.tfvars| Variable | Pourquoi elle n’a pas de valeur par défaut |
|---|---|
origin_ip | Toute valeur par défaut désigne une machine précise. Une valeur obsolète envoie le trafic d’un nouveau déploiement vers l’hôte de quelqu’un d’autre au lieu d’échouer. |
lb_domain | L’équilibreur de charge fait correspondre sur Host, c’est donc ce que chaque requête doit envoyer. Cela appartient à qui exploite le déploiement. |
Les deux sont validées quant à leur format, si bien qu’une faute de frappe fait échouer le plan plutôt que la démo.
terraform.tfvars est ignoré par git, et doit le rester : il contient un identifiant d’abonnement et
des valeurs propres à chaque ingénieur.
Le tenant est une configuration, pas ce que votre shell exporte
Section intitulée « Le tenant est une configuration, pas ce que votre shell exporte »var.expected_xc_tenant nomme le tenant et constitue le seul endroit où il est nommé.
providers.tf en dérive l’api_url du fournisseur xcsh, ce qui remplace délibérément
tout XCSH_API_URL présent dans l’environnement, et une postcondition dans
terraform/main.tf fait échouer le plan lorsque l’environnement nomme un tenant différent.
Lisez l’une ou l’autre moitié sans rien exécuter qui modifie l’état :
terraform output -raw xc_tenant # what the deployment targetsterraform output -raw xc_env_tenant # what your shell claims — diagnostic onlyf5-sales-demof5-sales-demo-
Initialiser. La configuration du backend n’est pas versionnée ; fournissez la vôtre.
Fenêtre de terminal terraform init -backend-config=backend.hcl -
Premier apply. Il construit Azure, les sites CE et le jeton d’enregistrement, et démarre les CE.
Fenêtre de terminal terraform apply -
Appliquer à nouveau une fois les CE enregistrés. Ce n’est pas optionnel, et la raison figure ci-dessous plutôt que d’être quelque chose que vous découvrez.
Fenêtre de terminal terraform apply
Ensuite, rendez-vous sur prouver qu’il est sain avant de le montrer à qui que ce soit.
L’approbation d’enregistrement est automatisée, et l’apply reste en deux phases
Section intitulée « L’approbation d’enregistrement est automatisée, et l’apply reste en deux phases »L’approbation d’enregistrement ne nécessite plus d’intervention humaine dans la console : la
ressource xcsh_registration_approval la réalise, et le module de site détermine quel
enregistrement approuver.
Cela ne fait pourtant pas du déploiement un unique apply sans intervention, et la raison mérite
d’être comprise avant que vous n’observiez une première exécution et n’en concluiez qu’elle a échoué :
- L’objet d’enregistrement d’un CE est nommé
r-<uuid>. Il n’est jamais nommé d’après le site, donc rien ne peut prédire ce nom au moment du plan. - L’enregistrement n’existe qu’après le démarrage de la VM et l’enregistrement par
vpm. - Ainsi, le premier apply ne planifie aucune approbation. Réappliquez une fois les CE enregistrés et les approbations sont créées.
terraform/main.tf documente cet ordonnancement en haut du fichier, ce qui constitue la version
autoritative — la séquence de déploiement vit avec le code qui l’implémente.
Le SSH opérateur est une décision prise à la construction
Section intitulée « Le SSH opérateur est une décision prise à la construction »Le déploiement écrit une clé opérateur sur le compte admin de l’appliance, dont le shell de connexion
est la CLI du site. Elle est écrite par le write_files de cloud-init, qui s’exécute une seule fois au premier démarrage.
Démanteler
Section intitulée « Démanteler »terraform destroyLe namespace applicatif survit : il est lu, jamais géré, donc destroy ne peut pas emporter avec lui un namespace
contenant des démos sans lien. Tout le reste du groupe de ressources disparaît.