Knoten vorbereiten und VCF mit dem Toolkit bereitstellen
Auf dieser Seite wird beschrieben, wie Sie mit dem VMware-Lösungs-Toolkit auf Google Cloud Bare-Metal-ESXi-Knoten vorbereiten, vSwitch-Netzwerke und vSAN-Datenspeicher konfigurieren und die VMware Cloud Foundation (VCF)-Installations-Appliance bereitstellen.
Übersicht
Das VMware-Lösungs-Toolkit automatisiert die Ersteinrichtung von Bare-Metal-ESXi-Instanzen, die in Ihrem Google Cloud -Projekt bereitgestellt werden. Wenn das Toolkit von einer Jumpbox-VM ausgeführt wird, führt es die folgenden Aktionen aus:
- Überprüfung der Hostanmeldedaten und Zurücksetzen des Passworts: Es wird eine Verbindung zu jeder Bare-Metal-ESXi-Instanz hergestellt und das ursprüngliche ESXi-
root-Passwort auf das in Secret Manager gespeicherteesxi-root-password-Secret zurückgesetzt. - Netzwerkkonfiguration: Konfiguriert
vSwitch0und erstellt VLAN-getaggte Portgruppen für das VCF-Installationsnetzwerk. - Speicherkonfiguration: Initialisiert lokale SSDs in einem
vsanDatastore-Pool. - Bereitstellung des VCF-Installationsprogramms: Lädt die Open Virtual Appliance (OVA) des VCF-Installationsprogramms aus dem Offline-Depot herunter, stellt die Appliance auf einem bestimmten Ziel-ESXi-Host bereit, fügt Netzwerk- und DNS-Parameter ein und initialisiert das Installationsprogramm.
Bereitstellungspfad auswählen
Sie können das Toolkit mit einem der folgenden Ansätze ausführen:
- Pfad 1: Jumpbox mit Terraform bereitstellen (empfohlen): Verwenden Sie Terraform, um eine dedizierte Compute Engine-Jumpbox-VM in der ESXi-Host-VPC, im VPC-Subnetz, im Cloud NAT-Gateway und in den Identity-Aware Proxy (IAP)-SSH-Firewallregeln bereitzustellen.
- Pfad 2: Vorhandene Jumpbox-VM verwenden: Führen Sie das Toolkit direkt auf einer vorhandenen Linux-VM aus, die sich in der VPC des ESXi-Hosts in einem Subnetz mit aktiviertem privater Google-Zugriff befindet.
Hinweis
Bevor Sie das Toolkit ausführen, müssen die folgenden Voraussetzungen erfüllt sein:
VLAN-basiertes Layer-2-Subnetzwerk auf die Zulassungsliste setzen
Für die VMware-Lösung muss für die Subnetze Ihres VPC-Netzwerks (Virtual Private Cloud) das Attribut Subnetzmaske auflösen auf Primären Bereich nur mit Lernen übertragen festgelegt sein, um VLAN-basiertes Netzwerk zu unterstützen. Öffnen Sie im Google Cloud Console-Supportcenter ein Support-Ticket mit den folgenden Informationen:
- Produkt: Google Cloud VMware Engine
- Priorität: P2
- Kategorie: Network Connectivity
- Auswirkungen auf das Geschäft: Allgemeine technische Frage
- Geben Sie weitere Details an:
Allowlist L2 network connectivity for my project, zusammen mit Ihrer Projekt-ID, Projektnummer und der Zielregion und -zone für Ihre Bereitstellung.
Weitere Informationen zur Unterstützung von VLAN-basierten Netzwerken finden Sie unter Layer-2-Emulation: ARP-Broadcasting und benutzerdefiniertes MAC-Learning.
Erforderliche APIs aktivieren
Sie benötigen ein aktives Google Cloud -Projekt mit aktivierter Abrechnung. Dies kann dasselbe Google Cloud -Projekt sein, in dem sich die ESXi-Hosts befinden, oder ein separates Jumpbox-Projekt. Aktivieren Sie folgende APIs:
- Compute Engine API (
compute.googleapis.com) – für Jumpbox- und ESXi-Hostprojekte - Identity and Access Management (IAM) API (
iam.googleapis.com) – für das Jumpbox-Projekt - Cloud Resource Manager API (
cloudresourcemanager.googleapis.com) – für Jumpbox- und ESXi-Hostprojekte - Cloud Identity-Aware Proxy API (
iap.googleapis.com) – für das Jumpbox-Projekt - Secret Manager API (
secretmanager.googleapis.com) – für das ESXi-Hostprojekt
Führen Sie den folgenden Befehl aus, um die APIs mit der gcloud-CLI zu aktivieren:
gcloud services enable \
compute.googleapis.com \
iam.googleapis.com \
cloudresourcemanager.googleapis.com \
iap.googleapis.com \
secretmanager.googleapis.com \
--project='PROJECT_ID'
Ersetzen Sie PROJECT_ID durch die ID Ihres Zielprojekts in Google Cloud .
IAM-Berechtigungen konfigurieren
Der Toolkit-Workflow verwendet die folgenden Identitäten und Rollen:
- Terraform-Aufrufer: Der Nutzer oder die CI/CD-Identität, die
terraform applystartet. Erfordert die Rolle „Dienstkonto-Token-Ersteller“ (roles/iam.serviceAccountTokenCreator) für das Terraform Runner-Dienstkonto, wenn die Identität des Runners übernommen wird. - Terraform Runner: Die Identität, die die Terraform-Infrastruktur bereitstellt:
- Compute-Netzwerkadminstrator (
roles/compute.networkAdmin) - Compute Instance Admin v1 (
roles/compute.instanceAdmin.v1) - Compute-Sicherheitsadministrator (
roles/compute.securityAdmin) - Dienstkontonutzer (
roles/iam.serviceAccountUser) - Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) für das Zielprojekt (bei Verwendung der automatisierten IAM-Verwaltung mit Terraform)
- Compute-Netzwerkadminstrator (
- Jumpbox-SSH-Nutzer: Die Identität, die über IAP eine Verbindung zur Jumpbox-VM herstellt:
- IAP-Tunnel-Ressourcen-Accessor (
roles/iap.tunnelResourceAccessor) - Compute-Betrachter (
roles/compute.viewer)
- IAP-Tunnel-Ressourcen-Accessor (
- Jumpbox Script Runner: Das Nutzer- oder Dienstkonto, das das Python-Toolkit-Script auf der Jumpbox ausführt:
- Zugriffsperson für Secret Manager-Secret (
roles/secretmanager.secretAccessor) - Compute-Administrator (
roles/compute.admin) - Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin)
- Zugriffsperson für Secret Manager-Secret (
- VMware Engine-Dienst-Agent für Netzwerkabweichungen (P4SA) (
service-PROJECT_NUMBER@gcp-sa-network-drift.iam.gserviceaccount.com):- Compute-Netzwerkadminstrator (
roles/compute.networkAdmin)
- Compute-Netzwerkadminstrator (
Anmeldedaten in Secret Manager speichern
Das Toolkit ruft Passwörter zur Laufzeit aus Secret Manager ab und verwendet das Secret esxi-root-password, um das ursprüngliche root-Passwort auf jeder Bare-Metal-ESXi-Instanz zurückzusetzen. Erstellen Sie in Ihrem Google Cloud -Projekt Secrets für das ESXi-root-Passwort, das VCF-root-Passwort und das Passwort des lokalen VCF-Nutzers (admin):
# 1. Create Secret for ESXi Host Root Password
gcloud secrets create esxi-root-password \
--replication-policy='automatic' \
--project='PROJECT_ID'
echo -n 'YOUR_ESXI_ROOT_PASSWORD' | gcloud secrets versions add esxi-root-password \
--data-file=- \
--project='PROJECT_ID'
# 2. Create Secret for VCF Installer Root Password
gcloud secrets create vcf-root-password \
--replication-policy='automatic' \
--project='PROJECT_ID'
echo -n 'YOUR_VCF_ROOT_PASSWORD' | gcloud secrets versions add vcf-root-password \
--data-file=- \
--project='PROJECT_ID'
# 3. Create Secret for VCF Local User Password
gcloud secrets create vcf-localuser-password \
--replication-policy='automatic' \
--project='PROJECT_ID'
echo -n 'YOUR_VCF_ADMIN_PASSWORD' | gcloud secrets versions add vcf-localuser-password \
--data-file=- \
--project='PROJECT_ID'
Ersetzen Sie vor dem Ausführen der Befehle Folgendes:
PROJECT_ID: die ID Ihres Zielprojekts inGoogle Cloud .YOUR_ESXI_ROOT_PASSWORD: das neueroot-Passwort, das auf Ihren Bare-Metal-ESXi-Hosts festgelegt werden soll und das ursprüngliche Instanzpasswort ersetzt.YOUR_VCF_ROOT_PASSWORD: dasroot-Passwort für die VCF-Installationsprogramm-Appliance.YOUR_VCF_ADMIN_PASSWORD: das Passwort des lokalen Administrators für die VCF-Installationsprogramm-Appliance.
Jumpbox mit Terraform bereitstellen
Wenn Sie keine Jumpbox mit Netzwerkverbindung zu Ihren ESXi-Hosts haben, verwenden Sie die bereitgestellten Terraform-Module, um eine Jumpbox-VM bereitzustellen.
Toolkit-Repository klonen
Klonen Sie das Toolkit-Repository auf Ihre lokale Workstation:
mkdir -p ~/smve-toolkit
cd ~/smve-toolkit
git clone https://github.com/GoogleCloudPlatform/self-managed-vmware-solution-toolkit
cd self-managed-vmware-solution-toolkit/smve-toolkit-jumpbox-tf
Terraform-Variablen konfigurieren
Wechseln Sie in das Verzeichnis infrastructure und erstellen Sie die Datei terraform.tfvars:
cd infrastructure
cp terraform.tfvars.example terraform.tfvars
Aktualisieren Sie die Datei terraform.tfvars mit Ihren Projektparametern:
project_id = "PROJECT_ID" region = "REGION" zone = "ZONE" # Match target ESXi host zone # Network configuration create_subnet = true vpc_name = "VPC_NAME" subnet_name = "smve-toolkit-subnet" subnet_cidr = "10.10.0.0/28" # Minimum /29 required # Cloud NAT and egress enable_internet = true # Jumpbox VM instance jumpbox_name = "smve-toolkit-jumpbox"
In der folgenden Tabelle werden die wichtigsten Terraform-Eingabevariablen beschrieben:
| Variable | Anforderung | Standard | Beschreibung |
|---|---|---|---|
project_id
|
Erforderlich | Keine | Google Cloud -Projekt-ID, in der Terraform die Infrastruktur bereitstellt. |
region
|
Erforderlich | Keine | Zielregion Google Cloud(z. B. us-central1). |
zone
|
Optional | ${region}-a
|
Zielzone. Legen Sie diese Variable so fest, dass sie der Zone Ihrer Bare-Metal-ESXi-Hosts entspricht, um die Latenz zu minimieren. |
vpc_name
|
Bedingt | ""
|
Name des VPC-Netzwerks, in dem die ESXi-Knoten gehostet werden. Erforderlich, wenn die Variable create_subnet auf true festgelegt ist. |
create_subnet
|
Optional | true
|
Legen Sie true fest, um ein neues Subnetz zu erstellen, oder false, um ein vorhandenes Subnetz zu verwenden. |
subnet_name
|
Optional | "smve-toolkit-subnet"
|
Name des Subnetzwerks für die Jumpbox-VM. Wenn die Variable create_subnet auf false gesetzt ist, muss das Subnetz im Netzwerk vpc_name vorhanden sein. |
subnet_cidr
|
Bedingt | ""
|
Primärer IPv4-CIDR-Bereich (mindestens /29). Erforderlich, wenn die Variable create_subnet auf true gesetzt ist. |
enable_internet
|
Optional | true
|
Steuert die Erstellung von Cloud Router, Cloud NAT und Standardrouten für ausgehenden Internet-Traffic.
Legen Sie nach der Einrichtung false fest, um das NAT-Gateway, den Router und die Route zu entfernen. |
jumpbox_name
|
Optional | "smve-toolkit-jumpbox"
|
Name der Compute Engine-Jumpbox-VM. |
machine_type
|
Optional | "e2-micro"
|
Maschinentyp für die Jumpbox-VM-Instanz. |
boot_disk_size
|
Optional | 30
|
Größe des Bootlaufwerks in GB für die Jumpbox-VM-Instanz (mindestens 10 GB). |
boot_disk_type
|
Optional | "pd-balanced"
|
Typ des nichtflüchtigen Speichers für das Jumpbox-Bootlaufwerk (pd-balanced, pd-standard, pd-ssd, pd-extreme). |
boot_disk_image
|
Optional | "debian-cloud/debian-12"
|
Image-Familie des Betriebssystem-Bootlaufwerks oder bestimmtes Image self_link. |
jumpbox_internal_ip
|
Optional | ""
|
Statische interne IPv4-Adresse (z. B. "10.10.0.5"), reservierter IP-Name oder URI. Die Standardeinstellung ist eine dynamische sitzungsspezifische IP-Adresse. |
service_account_email
|
Optional | ""
|
E-Mail-Adresse des benutzerdefinierten Dienstkontos, das an die Jumpbox-VM angehängt werden soll. Standardmäßig wird das Compute Engine-Standarddienstkonto verwendet. |
Jumpbox-Infrastruktur bereitstellen
Initialisieren Sie die Terraform-Konfiguration und wenden Sie sie an:
export GOOGLE_IMPERSONATE_SERVICE_ACCOUNT='TERRAFORM_RUNNER_SA' # Optional: set only if impersonating a runner service account terraform init terraform validate terraform plan -out=tfplan terraform apply tfplan
Ersetzen Sie TERRAFORM_RUNNER_SA durch die E-Mail-Adresse des Terraform-Runner-Dienstkontos.
Verbindung zur Jumpbox über IAP herstellen
Stellen Sie über die IAP-TCP-Weiterleitung eine Verbindung zur Jumpbox-VM her (keine öffentliche IP-Adresse erforderlich):
gcloud compute ssh smve-toolkit-jumpbox \
--project='PROJECT_ID' \
--zone='ZONE' \
--tunnel-through-iap
Ersetzen Sie vor dem Ausführen des Befehls Folgendes:
PROJECT_ID: die ID des Google Cloud -Projekts, in dem die Jumpbox-VM gehostet wird.ZONE: die Google Cloud -Zone, in der die Jumpbox-VM bereitgestellt wird.
Vorhandene Jumpbox-VM verwenden
Wenn Sie eine vorhandene Jumpbox-VM verwenden, muss es sich um eine Linux-Compute Engine-VM im selben VPC-Netzwerk handeln, in dem die Bare-Metal-ESXi-Knoten gehostet werden. Diese VPC-Platzierungsanforderung ist obligatorisch, um die Netzwerkverbindung zum Private Service Connect-Endpunkt (PSC) des Offline-Depots sicherzustellen, auf dem die OVA des VCF-Installationsprogramms gehostet wird.
Prüfen Sie vor dem Ausführen des Toolkits, ob Ihre vorhandene Jumpbox-VM die folgenden Anforderungen erfüllt:
- VPC-Platzierung: Sie müssen die VM in dem VPC-Netzwerk bereitstellen, in dem die ESXi-Knoten gehostet werden.
- Google Cloud API-Zugriff: Für das Subnetzwerk, in dem die Jumpbox-VM gehostet wird, muss der privater Google-Zugriff aktiviert sein (
private_ip_google_access = true) oder es muss ein ausgehender Internetzugriff vorhanden sein, umsecretmanager.googleapis.com,compute.googleapis.comundiam.googleapis.comzu erreichen. - Ausgehender Traffic für die Paketinstallation: Ausgehender HTTP/HTTPS-Zugriff (über Cloud NAT, einen Unternehmensproxy oder direkten ausgehenden Traffic) zum Installieren von Python-Abhängigkeiten.
- API-Aktivierung und IAM-Berechtigungen: Die Identität, die das Skript ausführt, muss die Rollen
roles/secretmanager.secretAccessor,roles/compute.adminundroles/resourcemanager.projectIamAdminfür Ihr Google Cloud Projekt haben. - SSH-Verbindung: Die Jumpbox muss eingehenden SSH-Traffic über TCP-Port 22 aus dem IAP-IP-Bereich (
35.235.240.0/20) oder autorisierten öffentlichen IP-Bereichen zulassen. Die verbindende Identität muss die entsprechenden Rollen (roles/iap.tunnelResourceAccessorundroles/compute.viewer) haben.
Toolkit auf der Jumpbox einrichten
Installieren Sie auf Ihrem Jumpbox-Terminal die Abhängigkeiten und laden Sie das Toolkit-Skript herunter.
Systempakete installieren
Installieren Sie Python 3, pip, venv und Git:
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git
Toolkit-Skripts abrufen
Klonen Sie das Repository oder kopieren Sie die Skripts von Ihrer lokalen Workstation:
Option A (mit Git klonen):
mkdir -p ~/smve-toolkit cd ~/smve-toolkit git clone https://github.com/GoogleCloudPlatform/self-managed-vmware-solution-toolkit cd self-managed-vmware-solution-toolkit/pythonOption B (mit
gcloud compute scpvon Ihrer lokalen Workstation kopieren):gcloud compute scp --recurse ./smve-toolkit smve-toolkit-jumpbox:~/ \ --project='PROJECT_ID' \ --zone='ZONE' \ --tunnel-through-iap # On the jumpbox terminal, go to the copied folder: cd ~/smve-toolkit/python
Virtuelle Python-Umgebung erstellen und aktivieren
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
Konfigurationsdatei für das Toolkit-Skript konfigurieren
Erstellen Sie auf der Jumpbox-VM eine config.json-Konfigurationsdatei, um Ihre ESXi-Zielinstanzen und VCF-Bereitstellungseinstellungen anzugeben.
Konfigurationsparameter
| Parameter | Erforderlich | Datentyp | Beschreibung |
|---|---|---|---|
project
|
Ja | string
|
Google Cloud -Zielprojekt-ID, in der sich die Bare-Metal-ESXi-Instanzen befinden. |
zone |
Ja | string |
Zielzone Google Cloud , in der sich ESXi-Knoten befinden. |
gce_nodes
|
Ja | list(string)
oder object
|
Explizite Liste der Namen von Bare-Metal-ESXi-Instanzen (z. B. ["vcf-mgmt-sample-node-1", "vcf-mgmt-sample-node-2"]) oder ein Objekt, das Instanzen nach prefix (z. B. {"prefix": "vcf-mgmt-sample"}) oder subnet ({"subnet":
"vcf-mgmt-subnet"}) erkennt. |
esxi_root_password_secret
|
Ja | string
|
Secret Manager-Secret-Name oder -Ressourcenpfad, der das ESXi-Root-Passwort enthält. |
vcf_deployment_config
|
Optional | object
|
Konfigurationsobjekt für die Bereitstellung und Initialisierung des VCF-Installationsprogramms. Lassen Sie dieses Objekt weg, wenn Sie das VCF-Installationsprogramm auf keinem der vorbereiteten Knoten bereitstellen müssen. |
└─ target_gce_node
|
Bedingt | string
|
Bare-Metal-Zielknoten, auf dem die anfänglichen Bereitstellungsarbeitslasten gehostet werden.
Erforderlich, wenn das Objekt vcf_deployment_config definiert ist. |
└─ vcf_appliance_root_password_secret
|
Bedingt | string
|
Secret Manager-Secret-Name, der das Root-Passwort der VCF-Appliance enthält. |
└─
vcf_appliance_local_user_password_secret |
Bedingt | string
|
Secret Manager-Secret-Name, der das Passwort des lokalen Nutzers (Administrators) der VCF-Appliance enthält. |
└─ vcf_installer_ip_source
|
Bedingt | string oder
object
|
IP-Adressquelle für das VCF-Installationsprogramm (SDDC Manager). Geben Sie {"reserved_address": "ADDRESS_NAME"}, {"forwarding_rule":
"RULE_NAME"} oder einen direkten Ressourcen-URI-String an (z. B. projects/PROJECT_ID/regions/REGION/forwardingRules/RULE_NAME). |
└─ vcf_installer_fqdn
|
Bedingt | string
|
Voll qualifizierter Domainname (FQDN) für das VCF-Installationsprogramm (SDDC Manager). |
└─ offline_depot_subnet_cidr
|
Bedingt | string
|
Primärer IPv4-CIDR-Bereich für das dedizierte Offline-Depot-Subnetz (z. B. /29). Darf sich nicht mit vorhandenen Subnetzen in der VPC überschneiden oder diese wiederverwenden. |
└─ dns_server
|
Optional | string
|
IP-Adresse des DNS-Servers (z. B. die reservierte DNS-IP-Adresse aus Ihrem Subnetz oder ein benutzerdefinierter DNS-Server). Wenn keine Angabe gemacht wird, wird standardmäßig der MetadatenserverGoogle Cloud (169.254.169.254) verwendet.
Geben Sie eine IP-Adresse aus einem Subnetz an, das nicht zu Layer 2 gehört, wenn Sie Cloud DNS verwenden. |
Beispielkonfigurationen
Auf den folgenden Tabs finden Sie Beispielkonfigurationen für config.json (basierend auf Vorlagen im Verzeichnis python/examples/) für verschiedene Ansätze zur Instanz-Ausrichtung und Strategien zur IP-Zuweisung:
Explizite Knotenliste
Verwenden Sie diese Konfiguration (python/examples/config_explicit_nodes.json), um bestimmte ESXi-Instanznamen anzugeben:
{
// Target Google Cloud project ID where bare-metal ESXi instances reside
"project": "PROJECT_ID",
// Target Google Cloud Compute Engine zone for ESXi instances
"zone": "us-east4-c",
// Explicit list of bare-metal ESXi Compute Engine instance names
"gce_nodes": [
"vcf-mgmt-sample-node-1",
"vcf-mgmt-sample-node-2",
"vcf-mgmt-sample-node-3",
"vcf-mgmt-sample-node-4"
],
// Secret Manager secret containing the ESXi root password
"esxi_root_password_secret": "esxi-root-password",
// Optional Jumpbox logging configuration (defaults to ~/logs/vcf_deployer_<timestamp>.log).
// DEBUG level is default for file logs and console level can be controlled by "log_level" (defaults to INFO).
// "log_dir": "~/logs",
// "log_file": "~/logs/vcf_deployer_custom.log",
// "log_level": "INFO",
// VCF deployment and initialization parameters
"vcf_deployment_config": {
// Target bare-metal node hosting the initial deployment workloads
"target_gce_node": "vcf-mgmt-sample-node-1",
// IPv4 CIDR range for dedicated offline depot subnetwork (for example, /29). Must not overlap with or reuse any existing subnets in the VPC
"offline_depot_subnet_cidr": "10.2.100.0/29",
// Secret Manager secret containing the VCF appliance root password
"vcf_appliance_root_password_secret": "vcf-root-password",
// Secret Manager secret containing the VCF appliance local user password
"vcf_appliance_local_user_password_secret": "vcf-localuser-password",
// Source identifier for the VCF Installer (SDDC Manager) IP address
"vcf_installer_ip_source": {
"forwarding_rule": "vcf-mgmt-sddcm-fr"
},
// Fully qualified domain name for SDDC Manager / VCF Installer
"vcf_installer_fqdn": "sddcm.gcve-vcf.test.gve",
// DNS server IP. If gcp_subnet was created during Cloud DNS configuration from E2E TF, use the DNS reserved IP from that subnet. Otherwise, supply a custom DNS server IP. Defaults to Google Cloud metadata server (169.254.169.254) if omitted.
"dns_server": "10.0.100.2"
}
}
Filter für Knotennamepräfix
Verwenden Sie diese Konfiguration (python/examples/config_prefix_filter.json), um ESXi-Instanzen, die einem Namenspräfix entsprechen, dynamisch zu erkennen und eine Weiterleitungsregel zu verwenden:
{
// Target Google Cloud project ID where bare-metal ESXi instances reside
"project": "PROJECT_ID",
// Target Google Cloud Compute Engine zone for ESXi instances
"zone": "us-east4-c",
// Discover ESXi instances matching a given instance name prefix
"gce_nodes": {
"prefix": "vcf-mgmt-sample"
},
// Secret Manager secret containing the ESXi root password
"esxi_root_password_secret": "esxi-root-password",
// Optional Jumpbox logging configuration (defaults to ~/logs/vcf_deployer_<timestamp>.log).
// DEBUG level is default for file logs and console level can be controlled by "log_level" (defaults to INFO).
// "log_dir": "~/logs",
// "log_file": "~/logs/vcf_deployer_custom.log",
// "log_level": "INFO",
// VCF deployment and initialization parameters
"vcf_deployment_config": {
// Target bare-metal node hosting the initial deployment workloads
"target_gce_node": "esxi-node-0",
// IPv4 CIDR range for dedicated offline depot subnetwork (for example, /29). Must not overlap with or reuse any existing subnets in the VPC
"offline_depot_subnet_cidr": "10.2.100.0/29",
// Secret Manager secret containing the VCF appliance root password
"vcf_appliance_root_password_secret": "vcf-root-password",
// Secret Manager secret containing the VCF appliance local user password
"vcf_appliance_local_user_password_secret": "vcf-localuser-password",
// Source identifier for the VCF Installer (SDDC Manager) forwarding rule
"vcf_installer_ip_source": {
"forwarding_rule": "vcf-mgmt-sddcm-fr"
},
// Fully qualified domain name for SDDC Manager / VCF Installer
"vcf_installer_fqdn": "sddcm.gcve-vcf.test.gve",
// DNS server IP. If gcp_subnet was created during Cloud DNS configuration from E2E TF, use the DNS reserved IP from that subnet. Otherwise, supply a custom DNS server IP. Defaults to Google Cloud metadata server (169.254.169.254) if omitted.
"dns_server": "10.0.100.2"
}
}
Filter für die Subnetzerkennung
Verwenden Sie diese Konfiguration (python/examples/config_subnet_filter.json), um ESXi-Instanzen, die mit einem bestimmten Subnetz verbunden sind, dynamisch zu erkennen und einen vollständigen Ressourcen-URI für die IP-Quelle anzugeben:
{
// Target Google Cloud project ID where bare-metal ESXi instances reside
"project": "PROJECT_ID",
// Target Google Cloud Compute Engine zone for ESXi instances
"zone": "us-east4-c",
// Discover ESXi instances attached to a specific primary management subnet
"gce_nodes": {
"subnet": "vcf-mgmt-subnet"
},
// Secret Manager secret containing the ESXi root password
"esxi_root_password_secret": "esxi-root-password",
// Optional Jumpbox logging configuration (defaults to ~/logs/vcf_deployer_<timestamp>.log).
// DEBUG level is default for file logs and console level can be controlled by "log_level" (defaults to INFO).
// "log_dir": "~/logs",
// "log_file": "~/logs/vcf_deployer_custom.log",
// "log_level": "INFO",
// VCF deployment and initialization parameters
"vcf_deployment_config": {
// Target bare-metal node hosting the initial deployment workloads
"target_gce_node": "esxi-node-0",
// IPv4 CIDR range for dedicated offline depot subnetwork (for example, /29). Must not overlap with or reuse any existing subnets in the VPC
"offline_depot_subnet_cidr": "10.2.100.0/29",
// Secret Manager secret containing the VCF appliance root password
"vcf_appliance_root_password_secret": "vcf-root-password",
// Secret Manager secret containing the VCF appliance local user password
"vcf_appliance_local_user_password_secret": "vcf-localuser-password",
// Direct resource URI for the VCF Installer (SDDC Manager) forwarding rule
"vcf_installer_ip_source": "projects/PROJECT_ID/regions/us-east4/forwardingRules/vcf-mgmt-sddcm-fr",
// Fully qualified domain name for SDDC Manager / VCF Installer
"vcf_installer_fqdn": "sddcm.gcve-vcf.test.gve",
// DNS server IP. If gcp_subnet was created during Cloud DNS configuration from E2E TF, use the DNS reserved IP from that subnet. Otherwise, supply a custom DNS server IP. Defaults to Google Cloud metadata server (169.254.169.254) if omitted.
"dns_server": "10.0.100.2"
}
}
Nur Knotenvorbereitung (kein VCF-Installationsprogramm)
Lassen Sie das Objekt vcf_deployment_config in der Datei config.json weg, wenn Sie die VCF-Installations-Appliance nicht auf einem der vorbereiteten Knoten bereitstellen müssen (z. B. beim Vorbereiten von Knoten für das Hinzufügen von Knoten am zweiten Tag oder beim Erstellen eines Arbeitslastdatenclusters):
{
"project": "PROJECT_ID",
"zone": "ZONE",
"gce_nodes": {
"subnet": "SUBNET_NAME"
},
"esxi_root_password_secret": "esxi-root-password"
}
Ersetzen Sie in der Datei config.json Folgendes und entfernen Sie alle Inline-Kommentare, bevor Sie das Python-Skript ausführen:
PROJECT_ID: die ID des Google Cloud -Projekts, in dem sich Ihre Bare-Metal-ESXi-Instanzen befinden.ZONE: die Google Cloud -Zone, in der sich Ihre Bare-Metal-ESXi-Instanzen befinden (z. B.us-east4-c).SUBNET_NAME: der Name des VPC-Subnetzes, das an Ihre ESXi-Instanzen angehängt ist (z. B.vcf-mgmt-subnet).
Toolkit-Script ausführen
Authentifizieren Sie sich bei Google Cloud mit Standardanmeldedaten für Anwendungen im Jumpbox-Terminal:
gcloud auth application-default login --no-browser
Führen Sie das Toolkit aus, während Ihre virtuelle Umgebung (source venv/bin/activate) aktiv und config.json konfiguriert ist:
python3 -m vcf_deployer.main --config config.json
Ausführungs-Workflow
Das Script führt automatisierte Validierungsprüfungen und die folgenden Einrichtungsphasen aus:
- Preflight-Validierung: Bestätigt, dass auf Zielinstanzen unterstützte ESXi-Images ausgeführt werden, validiert den Secret Manager-Zugriff, prüft die IP-CIDR-Ausrichtung und berechnet SSL-Zertifikat-Thumbprints.
- Konfiguration der Anmeldedaten und Zurücksetzen des Passworts: Es wird eine Verbindung zu jedem Host hergestellt und das ursprüngliche ESXi-
root-Passwort auf das in Secret Manager gespeicherteesxi-root-password-Secret zurückgesetzt. - vSwitch- und Portgruppenerstellung: Konfiguriert
vSwitch0und erstellt Portgruppen mit VLAN-Tags (vlan-VLAN_ID-RANDOM_SUFFIX). - vSAN-Initialisierung: Formatiert lokale NVMe-SSDs in einen
vsanDatastore. - Bereitstellung des VCF-Installationsprogramms: Stellt die VCF-OVA auf
target_gce_nodebereit, fügt die Netzwerkkonfiguration ein und startet die Appliance.
Deaktivieren Sie nach Abschluss der Ausführung die virtuelle Umgebung:
deactivate
Aufgaben nach der Bereitstellung
Führen Sie nach dem Ausführen des Toolkits und dem Bereitstellen der VCF-Installations-Appliance die folgende Konfiguration nach der Bereitstellung aus:
Ausgehenden Internet-Traffic auf der Jumpbox deaktivieren (optional)
Nachdem die Python-Abhängigkeiten installiert wurden, können Sie Cloud NAT entfernen, um strenge Sicherheitsmaßnahmen für ausgehenden Traffic zu erzwingen. In Ihrer Workstation terraform.tfvars:
enable_internet = false
Wenden Sie Terraform noch einmal an:
terraform apply
Bekannte Probleme prüfen, bevor Sie fortfahren
Lesen Sie alle dokumentierten Probleme auf der Seite Bekannte Probleme, bevor Sie mit der VCF-Bereitstellung beginnen. Wenn Sie diese Probleme übersehen, kann dies zu Bereitstellungsfehlern führen.
Fehlerbehebung
In diesem Abschnitt wird beschrieben, wie Sie häufige Probleme bei der Konfiguration oder Ausführung des Toolkits diagnostizieren und beheben.
Toolkit-Ausführungslogs auf der Jumpbox prüfen
Wenn Sie das Toolkit auf der Jumpbox ausführen, schreibt das Python-Skript detaillierte Ausführungslogs in das Verzeichnis ~/logs/ im Basisverzeichnis der Jumpbox. Jede Logdatei heißt vcf_deployer_TIMESTAMP.log. Wenn ein Schritt zur Knotenvorbereitung oder VCF-Installer-Bereitstellung fehlschlägt, prüfen Sie die neueste vcf_deployer_*.log-Datei in ~/logs/, um den Fehler zu diagnostizieren.
Fehler bei der Bereitstellung des VCF-Installationsprogramms aufgrund schwacher Passwörter
- Symptom: Das Python-Toolkit-Skript schlägt während der Bereitstellung und Initialisierung des VCF-Installationsprogramms fehl oder verhält sich unerwartet.
- Lösung: Geben Sie in Secret Manager keine schwachen Passwörter für VCF-Nutzer ein, da schwache Passwörter dazu führen können, dass das Python-Script für die Bereitstellung des VCF-Installationsprogramms fehlschlägt. Achten Sie darauf, dass alle Passwörter den Broadcom-Richtlinien für die Passwortkomplexität entsprechen.
Berechtigung verweigert (roles/iam.serviceAccountTokenCreator)
- Symptom: Fehler bei der Identitätsübernahme des Dienstkontos während der Ausführung von Terraform.
- Lösung: Sorgen Sie dafür, dass der Identität, die Terraform ausführt,
roles/iam.serviceAccountTokenCreatorfür das Terraform-Runner-Dienstkonto gewährt wurde.
IAP-SSH-Verbindungsfehler (403 Forbidden / Zeitüberschreitung)
- Symptom:
gcloud compute sshkann keinen IAP-Tunnel herstellen. - Lösung:
- Prüfen Sie, ob die Cloud Identity-Aware Proxy API (
iap.googleapis.com) aktiviert ist. - Prüfen Sie, ob Ihre Nutzeridentität die Rollen
roles/iap.tunnelResourceAccessorundroles/compute.viewerhat. - Prüfen Sie, ob die Firewallregel
allow-iap-ssh-*vorhanden ist und eingehenden Traffic von35.235.240.0/20an TCP-Port 22 zulässt.
- Prüfen Sie, ob die Cloud Identity-Aware Proxy API (
Warnung zum Löschen von Subnetzen beim erneuten Anwenden (Flag create_subnet)
- Symptom: Wenn Sie
terraform applyausführen, nachdem Sieenable_internet = falsefestgelegt haben, wird versucht, das Subnetz zu löschen. - Lösung: Behalten Sie
create_subnet = truebei, wenn Terraform das Subnetz erstellt hat. Wenn Siecreate_subnetinfalseändern, wird Terraform angewiesen, die Ressource nicht mehr zu verwalten und sie zum Löschen vorzumerken.
Nächste Schritte
- Wenn Sie die Knoten vorbereitet und ein VCF-Installationsprogramm für die Bereitstellung der Verwaltungsdomain bereitgestellt haben:
- Konfigurieren Sie die Verbindung zum regionalen Offline-Depot im VCF-Installationsprogramm, um die erforderlichen Softwarepakete herunterzuladen:
- Protokoll:
HTTPS - FQDN (keine IP-Adresse verwenden):
offline-depot.REGION.selfmanagedvmwareengine.goog(Ersetzen SieREGIONdurch die Google Cloud-Region, in der sich Ihre Bare-Metal-Knoten befinden.) - Port:
443 - Nutzername:
vcf-depot-user - Passwort:
Google1!
- Protokoll:
- Stellen Sie die Verwaltungsdomain bereit:
- Wenn Sie Ihre Google Cloud -Ressourcen mit den End-to-End-Terraform-Modulen (Knoten und VCF mit Terraform und Toolkit bereitstellen) bereitgestellt haben, konvertieren Sie die Terraform-Ausgabe
management_domain_deployment_input_configmit dem Hilfsskript (scripts/export_deployment_config.py) in JSON, ersetzen Sie alle mituser_should_inputgekennzeichneten Felder durch Ihre Zielwerte und stellen Sie die JSON-Datei dem VCF-Installationsprogramm zur Verfügung. - Wenn Sie Ihre Google Cloud -Ressourcen ohne die End-to-End-Terraform-Module bereitgestellt haben, geben Sie die Konfigurationseingaben für die Verwaltungsdomain manuell im VCF-Installationsprogramm an.
- Eine Anleitung zum Abschließen des Workflows für das VCF-Installationsprogramm finden Sie in der Broadcom-Dokumentation unter Neue VCF-Flotte oder neue VCF-Instanz bereitstellen.
- Wenn Sie Ihre Google Cloud -Ressourcen mit den End-to-End-Terraform-Modulen (Knoten und VCF mit Terraform und Toolkit bereitstellen) bereitgestellt haben, konvertieren Sie die Terraform-Ausgabe
- Konfigurieren Sie die Verbindung zum regionalen Offline-Depot im VCF-Installationsprogramm, um die erforderlichen Softwarepakete herunterzuladen:
- Wenn Sie die Knoten für das Hinzufügen zu einem vorhandenen Cluster vorbereitet haben: Fügen Sie die vorbereiteten Knoten über die VMware-Benutzeroberfläche oder die APIs zu Ihrem VMware VCF 9.x-Cluster hinzu.
- Informationen zum Hinzufügen und Entfernen von Knoten finden Sie unter Knotenkapazität verwalten oder Knotenkapazität mit Terraform verwalten.