- Startseite
- Multi-Cloud-Netzwerk
- Multi-cloud networking CE-HA demo
- Demo bereitstellen
Demo bereitstellen
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Terraform in der in
terraform/versions.tffestgelegten Mindestversion —>= 1.8, für providerdefinierte Funktionen und dencheck-Block, der die VIP absichert. - Der
xcsh-Provider. Keine Version wird festgelegt:.terraform.lock.hclist gitignored und die Einschränkung ist eine offene Untergrenze, sodass jedesinitdie neueste veröffentlichte Version auflöst. Das ist für ein Prerelease-Projekt beabsichtigt — die Demo soll bei einer Provider-Regression fehlschlagen, statt auf einer veralteten Version zu verharren, die sie verbirgt. - Ein F5 XC API-Credential für den Tenant in
var.expected_xc_tenant, exportiert alsXCSH_API_TOKEN(oder das P12/PEM-Paar). Exportieren Sie ausschließlich das Credential, niemals eine URL — siehe unten. - Azure-Credentials mit Rechten zum Erstellen einer Ressourcengruppe, eines VNet, eines Route Servers und von VMs.
- Ein bereits vorhandener F5 XC Namespace für die App-Ebene. Die Bereitstellung liest ihn und erstellt oder löscht ihn niemals, sodass ein Namespace mit unabhängigen Demos niemals auf der Destroy-Liste dieses Stacks landen kann.
Die beiden Werte ohne Standardwert angeben
Abschnitt betitelt „Die beiden Werte ohne Standardwert angeben“Jede andere Variable hat einen funktionierenden Standardwert, und jeder Objektname wird aus
var.component abgeleitet. Zwei bleiben absichtlich ohne:
cd terraformcp terraform.tfvars.example terraform.tfvars| Variable | Warum sie keinen Standardwert hat |
|---|---|
origin_ip | Jeder Standardwert ist eine bestimmte Maschine. Ein veralteter schickt den Datenverkehr einer frischen Bereitstellung an den Host einer anderen Person, statt fehlzuschlagen. |
lb_domain | Der Load Balancer gleicht anhand von Host ab, also muss jede Anfrage genau diesen Wert senden. Er gehört demjenigen, der die Bereitstellung betreibt. |
Beide werden formatvalidiert, sodass ein Tippfehler den Plan scheitern lässt und nicht die Demo.
terraform.tfvars ist gitignored und muss das bleiben: es enthält eine Subscription-ID und
Werte pro Engineer.
Der Tenant ist Konfiguration, nicht das, was Ihre Shell exportiert
Abschnitt betitelt „Der Tenant ist Konfiguration, nicht das, was Ihre Shell exportiert“var.expected_xc_tenant benennt den Tenant und ist die einzige Stelle, an der er benannt wird.
providers.tf leitet daraus die api_url des xcsh-Providers ab, was bewusst jedes
XCSH_API_URL aus der Umgebung überschreibt, und eine postcondition in
terraform/main.tf lässt den Plan fehlschlagen, wenn die Umgebung einen anderen Tenant benennt.
Lesen Sie eine der beiden Hälften, ohne etwas auszuführen, das den Zustand verändert:
terraform output -raw xc_tenant # what the deployment targetsterraform output -raw xc_env_tenant # what your shell claims — diagnostic onlyf5-sales-demof5-sales-demo-
Initialisieren. Die Backend-Konfiguration ist nicht eingecheckt; geben Sie Ihre eigene an.
Terminal-Fenster terraform init -backend-config=backend.hcl -
Erstes Apply. Dies erstellt Azure, die CE-Sites und das Registrierungstoken und startet die CEs.
Terminal-Fenster terraform apply -
Erneut ausführen, sobald die CEs registriert sind. Das ist nicht optional, und der Grund steht unten, statt dass Sie ihn selbst herausfinden müssen.
Terminal-Fenster terraform apply
Gehen Sie dann zu Funktionsfähigkeit nachweisen, bevor Sie sie jemandem zeigen.
Die Registrierungsgenehmigung ist automatisiert, und das Apply bleibt zweiphasig
Abschnitt betitelt „Die Registrierungsgenehmigung ist automatisiert, und das Apply bleibt zweiphasig“Die Registrierungsgenehmigung benötigt keinen Menschen in der Konsole mehr: die Ressource
xcsh_registration_approval führt sie durch, und das Site-Modul ermittelt, welche
Registrierung zu genehmigen ist.
Das macht die Bereitstellung dennoch nicht zu einem einzigen unbeaufsichtigten apply, und der Grund ist es wert,
verstanden zu werden, bevor Sie einen ersten Durchlauf beobachten und schließen, er sei fehlgeschlagen:
- Das Registrierungsobjekt eines CE heißt
r-<uuid>. Es wird niemals nach der Site benannt, sodass zur Planzeit niemand den Namen vorhersagen kann. - Die Registrierung existiert erst, nachdem die VM gebootet hat und
vpmsich registriert hat. - Daher plant das erste Apply überhaupt keine Genehmigung. Führen Sie erneut ein Apply aus, sobald die CEs registriert sind, und die Genehmigungen werden erstellt.
terraform/main.tf dokumentiert diese Reihenfolge am Anfang der Datei, und das ist die
maßgebliche Version — die Bereitstellungssequenz liegt beim Code, der sie umsetzt.
Operator-SSH ist eine Entscheidung zur Build-Zeit
Abschnitt betitelt „Operator-SSH ist eine Entscheidung zur Build-Zeit“Die Bereitstellung schreibt einen Operator-Schlüssel in das admin-Konto der Appliance, dessen Login-Shell
die Site-CLI ist. Er wird per cloud-init write_files geschrieben, was einmalig beim ersten Boot ausgeführt wird.
Abbauen
Abschnitt betitelt „Abbauen“terraform destroyDer App-Namespace überlebt: er wird gelesen, nie verwaltet, sodass destroy keinen Namespace
mitnehmen kann, der unabhängige Demos enthält. Alles andere in der Ressourcengruppe verschwindet.