- Home
- Rete multi-cloud
- Multi-cloud networking CE-HA demo
- Distribuire la demo
Distribuire la demo
Prerequisiti
Sezione intitolata “Prerequisiti”- Terraform alla versione minima indicata in
terraform/versions.tf—>= 1.8, per le funzioni definite dal provider e il bloccocheckche protegge il VIP. - Il provider
xcsh. Nulla fissa una versione:.terraform.lock.hclè in gitignore e il vincolo è una soglia minima aperta, quindi ogniinitrisolve l’ultima release pubblicata. È una scelta deliberata per un progetto in prerelease — la demo deve fallire su una regressione del provider anziché rimanere su una versione obsoleta che la nasconde. - Una credenziale API F5 XC per il tenant in
var.expected_xc_tenant, esportata comeXCSH_API_TOKEN(o la coppia P12/PEM). Esportare solo la credenziale, mai un URL — vedere sotto. - Credenziali Azure con i diritti per creare un gruppo di risorse, una VNet, un Route Server e delle VM.
- Un namespace F5 XC preesistente per il tier applicativo. La distribuzione lo legge e non lo crea né lo distrugge mai, quindi un namespace che contiene demo non correlate non potrà mai finire nell’elenco di destroy di questo stack.
Fornire i due valori che non hanno un valore predefinito
Sezione intitolata “Fornire i due valori che non hanno un valore predefinito”Ogni altra variabile ha un valore predefinito funzionante e ogni nome di oggetto deriva da
var.component. Due sono deliberatamente lasciate senza:
cd terraformcp terraform.tfvars.example terraform.tfvars| Variabile | Perché non ha un valore predefinito |
|---|---|
origin_ip | Qualsiasi valore predefinito è una macchina specifica. Uno obsoleto invia il traffico di una nuova distribuzione all’host di qualcun altro invece di fallire. |
lb_domain | Il load balancer effettua il match su Host, quindi questo è ciò che ogni richiesta deve inviare. Appartiene a chi gestisce la distribuzione. |
Entrambe sono validate nel formato, così un errore di battitura fa fallire il plan e non la demo.
terraform.tfvars è in gitignore e deve rimanervi: contiene un id di sottoscrizione e
valori specifici per ciascun engineer.
Il tenant è configurazione, non ciò che la vostra shell sta esportando
Sezione intitolata “Il tenant è configurazione, non ciò che la vostra shell sta esportando”var.expected_xc_tenant indica il nome del tenant ed è l’unico posto in cui viene indicato.
providers.tf deriva da essa l’api_url del provider xcsh, sovrascrivendo deliberatamente
qualsiasi XCSH_API_URL presente nell’ambiente, e una postcondition in
terraform/main.tf fa fallire il plan quando l’ambiente indica un tenant diverso.
Leggete una delle due metà senza eseguire nulla che modifichi lo stato:
terraform output -raw xc_tenant # what the deployment targetsterraform output -raw xc_env_tenant # what your shell claims — diagnostic onlyf5-sales-demof5-sales-demo-
Inizializzate. La configurazione del backend non è committata; fornite la vostra.
Terminal window terraform init -backend-config=backend.hcl -
Primo apply. Questo crea Azure, i siti CE e il token di registrazione, e avvia i CE.
Terminal window terraform apply -
Eseguite di nuovo l’apply dopo che i CE si sono registrati. Non è opzionale, e la ragione è riportata sotto anziché essere qualcosa che scoprite da soli.
Terminal window terraform apply
Poi passate a verificarne lo stato di salute prima di mostrarla a qualcuno.
L’approvazione della registrazione è automatizzata, e l’apply è ancora a due fasi
Sezione intitolata “L’approvazione della registrazione è automatizzata, e l’apply è ancora a due fasi”L’approvazione della registrazione non richiede più un intervento umano nella console: la
risorsa xcsh_registration_approval la esegue e il modulo del sito determina quale
registrazione approvare.
Questo non rende comunque la distribuzione un unico apply senza interventi, e la ragione vale la pena
di essere compresa prima di osservare una prima esecuzione e concludere che è fallita:
- L’oggetto di registrazione di un CE si chiama
r-<uuid>. Non prende mai il nome dal sito, quindi nulla può prevedere il nome al momento del plan. - La registrazione esiste solo dopo che la VM si è avviata e
vpmsi è registrato. - Perciò il primo apply non pianifica alcuna approvazione. Rieseguite l’apply dopo che i CE si sono registrati e le approvazioni vengono create.
terraform/main.tf documenta questo ordinamento all’inizio del file, che è la versione
autorevole — la sequenza di distribuzione risiede insieme al codice che la implementa.
L’SSH per l’operatore è una decisione da prendere in fase di build
Sezione intitolata “L’SSH per l’operatore è una decisione da prendere in fase di build”La distribuzione scrive una chiave operatore nell’account admin dell’appliance, la cui shell di login
è la Site CLI. Viene scritta da write_files di cloud-init, che viene eseguito una sola volta al primo avvio.
Smantellare la distribuzione
Sezione intitolata “Smantellare la distribuzione”terraform destroyIl namespace dell’applicazione sopravvive: viene letto, mai gestito, quindi destroy non può portarsi via un namespace
che contiene demo non correlate. Tutto il resto nel gruppo di risorse viene eliminato.