Menyiapkan node dan men-deploy VCF menggunakan toolkit
Halaman ini menjelaskan cara menggunakan solusi VMware di toolkit Google Cloud untuk menyiapkan node ESXi bare-metal, mengonfigurasi jaringan vSwitch dan datastore vSAN, serta men-deploy peralatan penginstal VMware Cloud Foundation (VCF).
Ringkasan
Toolkit solusi VMware mengotomatiskan penyiapan awal instance ESXi bare-metal yang di-deploy di project Google Cloud Anda. Saat dijalankan dari VM jumpbox, toolkit akan melakukan tindakan berikut:
- Verifikasi kredensial host dan reset sandi: Terhubung ke setiap instance ESXi bare-metal dan mereset sandi
rootESXi awal ke secretesxi-root-passwordyang disimpan di Secret Manager. - Konfigurasi jaringan: Mengonfigurasi
vSwitch0dan membuat grup port yang diberi tag VLAN untuk jaringan penginstal VCF. - Konfigurasi penyimpanan: Melakukan inisialisasi SSD lokal ke dalam pool
vsanDatastore. - Deployment penginstal VCF: Mendownload Open Virtual Appliance (OVA) penginstal VCF dari depot offline, men-deploy appliance ke host ESXi target yang ditentukan, memasukkan parameter jaringan dan DNS, serta menginisialisasi penginstal.
Memilih jalur deployment
Anda dapat menjalankan toolkit menggunakan salah satu pendekatan berikut:
- Jalur satu: Menyediakan jumpbox menggunakan Terraform (Direkomendasikan): Gunakan Terraform untuk menyediakan VM jumpbox Compute Engine khusus di dalam VPC host ESXi, subnet VPC, gateway Cloud NAT, dan aturan firewall SSH Identity-Aware Proxy (IAP).
- Jalur dua: Menggunakan VM jumpbox yang ada: Jalankan toolkit langsung dari VM Linux yang ada yang terletak di dalam VPC host ESXi di subnet dengan Akses Google Pribadi yang diaktifkan.
Sebelum memulai
Sebelum menjalankan toolkit, selesaikan prasyarat berikut:
Mengizinkan jaringan subnet Lapisan 2 berbasis VLAN
Solusi VMware mengharuskan subnet jaringan Virtual Private Cloud (VPC) Anda memiliki properti Resolve Subnet Mask yang ditetapkan ke Broadcast primary range only with learning untuk mendukung jaringan berbasis VLAN. Buka tiket dukungan di Pusat Dukungan konsolGoogle Cloud dengan informasi berikut:
- Produk: Google Cloud VMware Engine
- Prioritas: P2
- Kategori: Network Connectivity
- Dampak Bisnis: Pertanyaan Teknis Umum
- Berikan detail selengkapnya:
Allowlist L2 network connectivity for my project, beserta project ID, nomor project, serta region dan zona target untuk deployment Anda
Untuk mengetahui informasi selengkapnya tentang dukungan untuk jaringan berbasis VLAN, lihat Emulasi Lapisan 2: Penyiaran ARP dan pembelajaran MAC kustom.
Aktifkan API yang diperlukan
Anda harus memiliki project Google Cloud aktif dengan penagihan yang diaktifkan (ini dapat berupa project Google Cloud yang sama tempat host ESXi berada atau project jumpbox terpisah). Mengaktifkan API berikut:
- Compute Engine API (
compute.googleapis.com) — untuk project jumpbox dan host ESXi - Identity and Access Management (IAM) API (
iam.googleapis.com) — untuk project jumpbox - Cloud Resource Manager API (
cloudresourcemanager.googleapis.com) — untuk project jumpbox dan host ESXi - Cloud Identity-Aware Proxy API (
iap.googleapis.com) — untuk project jumpbox - Secret Manager API (
secretmanager.googleapis.com) — untuk project host ESXi
Untuk mengaktifkan API menggunakan gcloud CLI, jalankan perintah berikut:
gcloud services enable \
compute.googleapis.com \
iam.googleapis.com \
cloudresourcemanager.googleapis.com \
iap.googleapis.com \
secretmanager.googleapis.com \
--project='PROJECT_ID'
Ganti PROJECT_ID dengan ID project Google Cloud target Anda.
Mengonfigurasi izin IAM
Alur kerja toolkit menggunakan identitas dan peran berikut:
- Terraform Invoker: Identitas pengguna atau CI/CD yang meluncurkan
terraform apply. Memerlukan Service Account Token Creator (roles/iam.serviceAccountTokenCreator) di akun layanan Terraform Runner jika meniru identitas runner. - Terraform Runner: Identitas yang menyediakan infrastruktur Terraform:
- Admin Jaringan Compute (
roles/compute.networkAdmin) - Compute Instance Admin v1 (
roles/compute.instanceAdmin.v1) - Compute Security Admin.(
roles/compute.securityAdmin) - (
roles/iam.serviceAccountUser) Pengguna Akun Layanan - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) di project target (jika menggunakan pengelolaan IAM otomatis dengan Terraform)
- Admin Jaringan Compute (
- Jumpbox SSH User: Identitas yang terhubung ke VM jumpbox menggunakan
IAP:
- IAP Tunnel Resource Accessor (
roles/iap.tunnelResourceAccessor) - Compute Viewer (
roles/compute.viewer)
- IAP Tunnel Resource Accessor (
- Jumpbox Script Runner: Akun pengguna atau layanan yang menjalankan skrip toolkit Python di jumpbox:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) - Compute Admin (
roles/compute.admin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
- Secret Manager Secret Accessor (
- Agen layanan penyimpangan jaringan VMware Engine (P4SA)
(
service-PROJECT_NUMBER@gcp-sa-network-drift.):- Admin Jaringan Compute (
roles/compute.networkAdmin)
- Admin Jaringan Compute (
Menyimpan kredensial di Secret Manager
Toolkit ini mengambil sandi saat runtime dari Secret Manager
dan menggunakan secret esxi-root-password untuk mereset sandi root awal di
setiap instance ESXi bare-metal. Buat secret di project Google Cloud Anda
untuk sandi ESXi root, sandi VCF root, dan sandi pengguna lokal VCF (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'
Sebelum menjalankan perintah, ganti variabel berikut:
PROJECT_ID: ID project target Google Cloud Anda.YOUR_ESXI_ROOT_PASSWORD: sandirootbaru yang akan ditetapkan di host ESXi bare-metal Anda, yang menggantikan sandi instance awal.YOUR_VCF_ROOT_PASSWORD: sandirootuntuk peralatan penginstal VCF.YOUR_VCF_ADMIN_PASSWORD: sandi pengguna administrator lokal untuk peralatan penginstal VCF.
Menyediakan jumpbox menggunakan Terraform
Jika Anda belum memiliki jumpbox dengan konektivitas jaringan ke host ESXi, gunakan modul Terraform yang disediakan untuk men-deploy VM jumpbox.
Membuat clone repositori toolkit
Buat clone repositori toolkit ke workstation lokal Anda:
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
Mengonfigurasi variabel Terraform
Buka direktori infrastructure dan buat file terraform.tfvars:
cd infrastructure
cp terraform.tfvars.example terraform.tfvars
Perbarui file terraform.tfvars dengan parameter project Anda:
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"
Tabel berikut menjelaskan variabel input Terraform utama:
| Variabel | Persyaratan | Default | Deskripsi |
|---|---|---|---|
project_id
|
Wajib | Tidak ada | Project IDGoogle Cloud tempat Terraform men-deploy infrastruktur. |
region
|
Wajib | Tidak ada | Region Google Cloud
target (misalnya,
us-central1). |
zone
|
Opsional | ${region}-a
|
Zona target. Tetapkan variabel ini agar sesuai dengan zona host ESXi bare-metal Anda untuk meminimalkan latensi. |
vpc_name
|
Kondisional | ""
|
Nama jaringan VPC yang menghosting node ESXi. Diperlukan jika variabel create_subnet ditetapkan ke true. |
create_subnet
|
Opsional | true
|
Tetapkan ke true untuk membuat subnet baru, atau false untuk menggunakan subnet yang ada. |
subnet_name
|
Opsional | "smve-toolkit-subnet"
|
Nama subnetwork untuk VM jumpbox. Jika
variabel create_subnet
ditetapkan ke
false, subnet
harus ada di
jaringan vpc_name. |
subnet_cidr
|
Kondisional | ""
|
Rentang CIDR IPv4 utama (minimum /29). Diperlukan jika variabel create_subnet ditetapkan ke true. |
enable_internet
|
Opsional | true
|
Mengontrol Cloud Router, Cloud NAT, dan pembuatan rute default untuk egress internet.
Tetapkan ke false setelah penyiapan untuk menghapus gateway NAT, router, dan rute. |
jumpbox_name
|
Opsional | "smve-toolkit-jumpbox"
|
Nama VM jumpbox Compute Engine. |
machine_type
|
Opsional | "e2-micro"
|
Jenis mesin untuk instance VM jumpbox. |
boot_disk_size
|
Opsional | 30
|
Ukuran boot disk dalam GB untuk instance VM jumpbox (minimum 10 GB). |
boot_disk_type
|
Opsional | "pd-balanced"
|
Jenis persistent disk
untuk boot disk jumpbox
(pd-balanced,
pd-standard,
pd-ssd,
pd-extreme). |
boot_disk_image
|
Opsional | "debian-cloud/debian-12"
|
Kelompok boot disk image OS atau image tertentu self_link. |
jumpbox_internal_ip
|
Opsional | ""
|
Alamat IPv4 internal statis (misalnya, "10.10.0.5"), nama IP yang dicadangkan, atau URI. Defaultnya adalah alamat IP sementara dinamis. |
service_account_email
|
Opsional | ""
|
Email akun layanan kustom untuk dilampirkan ke VM jumpbox. Defaultnya adalah akun layanan default Compute Engine. |
Men-deploy infrastruktur jumpbox
Lakukan inisialisasi dan terapkan konfigurasi Terraform:
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
Ganti TERRAFORM_RUNNER_SA dengan alamat email akun layanan runner Terraform.
Menghubungkan ke jumpbox menggunakan IAP
Hubungkan ke VM jumpbox menggunakan penerusan TCP IAP (tidak memerlukan alamat IP publik):
gcloud compute ssh smve-toolkit-jumpbox \
--project='PROJECT_ID' \
--zone='ZONE' \
--tunnel-through-iap
Sebelum menjalankan perintah, ganti variabel berikut:
PROJECT_ID: ID Google Cloud project yang menghosting VM jumpbox.ZONE: zona Google Cloud tempat VM jumpbox di-deploy.
Menggunakan VM jumpbox yang ada
Jika Anda membawa VM jumpbox yang ada, VM tersebut harus berupa VM Compute Engine Linux yang berada di dalam jaringan VPC yang sama yang menghosting node ESXi bare-metal. Persyaratan penempatan VPC ini wajib untuk memastikan konektivitas jaringan ke endpoint Private Service Connect (PSC) depot offline yang menghosting OVA penginstal VCF.
Sebelum menjalankan toolkit, pastikan VM jumpbox yang ada memenuhi persyaratan berikut:
- Penempatan VPC: Anda harus men-deploy VM dalam jaringan VPC yang menghosting node ESXi.
- Akses APIGoogle Cloud : Subnetwork yang menghosting VM jumpbox harus mengaktifkan Akses Google Pribadi (
private_ip_google_access = true) atau akses internet keluar untuk menjangkausecretmanager.googleapis.com,compute.googleapis.com, daniam.googleapis.com. - Egress penginstalan paket: Akses HTTP/HTTPS keluar (dengan menggunakan Cloud NAT, proxy perusahaan, atau egress langsung) untuk menginstal dependensi Python.
- Pengaktifan API dan izin IAM: Identitas yang menjalankan skrip harus memiliki peran
roles/secretmanager.secretAccessor,roles/compute.admin, danroles/resourcemanager.projectIamAdmindi project Google Cloud Anda. - Konektivitas SSH: Jumpbox harus mengizinkan traffic masuk SSH pada TCP port 22 dari
rentang IP IAP (
35.235.240.0/20) atau rentang IP publik yang diizinkan, dan identitas yang terhubung harus memiliki peran yang berlaku (roles/iap.tunnelResourceAccessordanroles/compute.viewer).
Menyiapkan toolkit di jumpbox
Di terminal jumpbox, instal dependensi dan download skrip toolkit.
Menginstal paket sistem
Instal Python 3, pip, venv, dan Git:
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git
Mendapatkan skrip toolkit
Buat clone repositori atau salin skrip dari workstation lokal Anda:
Opsi A (clone menggunakan Git):
mkdir -p ~/smve-toolkit cd ~/smve-toolkit git clone https://github.com/GoogleCloudPlatform/self-managed-vmware-solution-toolkit cd self-managed-vmware-solution-toolkit/pythonOpsi B (menyalin dari workstation lokal menggunakan
gcloud compute scp):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
Membuat dan mengaktifkan lingkungan virtual Python
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
Mengonfigurasi file konfigurasi skrip toolkit
Buat file konfigurasi config.json di VM jumpbox untuk menentukan
instance ESXi target dan setelan deployment VCF.
Parameter konfigurasi
| Parameter | Wajib | Jenis data | Deskripsi |
|---|---|---|---|
project
|
Ya | string
|
Project ID target Google Cloud tempat instance ESXi bare-metal berada. |
zone |
Ya | string |
Zona target Google Cloud tempat node ESXi berada. |
gce_nodes
|
Ya | list(string)
atau object
|
Daftar eksplisit nama instance ESXi bare-metal (misalnya,
["vcf-mgmt-sample-node-1", "vcf-mgmt-sample-node-2"]), atau
objek yang menemukan instance berdasarkan prefix (misalnya,
{"prefix": "vcf-mgmt-sample"}) atau subnet ({"subnet":
"vcf-mgmt-subnet"}). |
esxi_root_password_secret
|
Ya | string
|
Nama secret atau jalur resource Secret Manager yang berisi sandi root ESXi. |
vcf_deployment_config
|
Opsional | object
|
Objek konfigurasi untuk deployment dan inisialisasi penginstal VCF. Hilangkan objek ini jika Anda tidak perlu men-deploy penginstal VCF di salah satu node yang sedang disiapkan. |
└─ target_gce_node
|
Kondisional | string
|
Node bare-metal target yang menghosting workload deployment awal.
Wajib ada jika objek vcf_deployment_config ditentukan. |
└─ vcf_appliance_root_password_secret
|
Kondisional | string
|
Nama secret Secret Manager yang berisi sandi root peralatan VCF. |
└─
vcf_appliance_local_user_password_secret |
Kondisional | string
|
Nama secret Secret Manager yang berisi sandi pengguna lokal (admin) peralatan VCF. |
└─ vcf_installer_ip_source
|
Kondisional | string atau
object
|
Sumber alamat IP untuk penginstal VCF (SDDC Manager). Tentukan
{"reserved_address": "ADDRESS_NAME"}, {"forwarding_rule":
"RULE_NAME"}, atau string URI resource langsung (misalnya,
projects/PROJECT_ID/regions/REGION/forwardingRules/RULE_NAME). |
└─ vcf_installer_fqdn
|
Kondisional | string
|
Nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk penginstal VCF (SDDC Manager). |
└─ offline_depot_subnet_cidr
|
Kondisional | string
|
Rentang CIDR IPv4 utama untuk subnet depot offline khusus (misalnya, /29). Tidak boleh tumpang tindih dengan atau menggunakan kembali subnet yang ada di VPC. |
└─ dns_server
|
Opsional | string
|
Alamat IP server DNS (misalnya, IP DNS yang dicadangkan dari subnet Anda atau server DNS kustom). Nilai defaultnya adalah server metadataGoogle Cloud (169.254.169.254) jika dihilangkan.
Tentukan alamat IP dari subnet non-Lapisan 2 jika Anda menggunakan Cloud DNS. |
Contoh konfigurasi
Tab berikut menunjukkan contoh konfigurasi config.json (berdasarkan template yang tersedia di direktori python/examples/) untuk berbagai pendekatan penargetan instance dan strategi alokasi IP:
Daftar node eksplisit
Gunakan konfigurasi ini (python/examples/config_explicit_nodes.json) untuk menargetkan nama instance ESXi tertentu:
{
// 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 awalan nama node
Gunakan konfigurasi ini (python/examples/config_prefix_filter.json) untuk
menemukan instance ESXi secara dinamis yang cocok dengan awalan nama dan menggunakan
aturan penerusan:
{
// 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 penemuan subnet
Gunakan konfigurasi ini (python/examples/config_subnet_filter.json) untuk
menemukan instance ESXi yang terpasang ke subnet tertentu secara dinamis dan menyediakan
URI resource lengkap untuk sumber IP:
{
// 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"
}
}
Hanya persiapan node (tanpa penginstal VCF)
Hilangkan objek vcf_deployment_config dalam file config.json jika Anda
tidak perlu men-deploy peralatan penginstal VCF di salah satu node yang sedang
disiapkan (misalnya, saat menyiapkan node untuk penambahan node hari ke-2 atau
pembuatan cluster data workload):
{
"project": "PROJECT_ID",
"zone": "ZONE",
"gce_nodes": {
"subnet": "SUBNET_NAME"
},
"esxi_root_password_secret": "esxi-root-password"
}
Ganti kode berikut dalam file config.json Anda (dan hapus komentar inline
sebelum menjalankan skrip Python):
PROJECT_ID: ID project Google Cloud tempat instance ESXi bare-metal Anda berada.ZONE: zona Google Cloud tempat instance ESXi bare-metal Anda berada (misalnya,us-east4-c).SUBNET_NAME: nama subnet VPC yang terpasang ke instance ESXi Anda (misalnya,vcf-mgmt-subnet).
Menjalankan skrip toolkit
Lakukan autentikasi dengan Google Cloud menggunakan Kredensial Default Aplikasi di terminal jumpbox:
gcloud auth application-default login --no-browser
Dengan lingkungan virtual Anda yang aktif (source venv/bin/activate) dan
config.json yang dikonfigurasi, jalankan toolkit:
python3 -m vcf_deployer.main --config config.json
Alur kerja eksekusi
Skrip ini menjalankan pemeriksaan validasi otomatis dan menjalankan tahap penyiapan berikut:
- Validasi pra-migrasi: Mengonfirmasi bahwa instance target menjalankan image ESXi yang didukung, memvalidasi akses Secret Manager, memverifikasi keselarasan CIDR IP, dan menghitung thumbprint sertifikat SSL.
- Konfigurasi kredensial dan reset sandi: Terhubung ke setiap host dan
mereset sandi
rootESXi awal ke rahasiaesxi-root-passwordyang disimpan di Secret Manager. - Pembuatan vSwitch dan grup port: Mengonfigurasi
vSwitch0dan membuat grup port yang diberi tag VLAN (vlan-VLAN_ID-RANDOM_SUFFIX). - Inisialisasi vSAN: Memformat SSD NVMe lokal menjadi
vsanDatastore. - Deployment penginstal VCF: Men-deploy OVA VCF ke
target_gce_node, memasukkan konfigurasi jaringan, dan memulai peralatan.
Setelah eksekusi selesai, nonaktifkan lingkungan virtual:
deactivate
Tugas pascadeployment
Setelah menjalankan toolkit dan men-deploy peralatan penginstal VCF, lakukan konfigurasi pasca-deployment berikut:
Menonaktifkan egress internet di jumpbox (opsional)
Setelah dependensi Python diinstal, Anda dapat menghapus Cloud NAT untuk menerapkan keamanan egress yang ketat. Di workstation terraform.tfvars Anda:
enable_internet = false
Terapkan kembali Terraform:
terraform apply
Meninjau masalah umum sebelum melanjutkan
Tinjau semua masalah yang terdokumentasi di halaman Masalah umum sebelum Anda memulai deployment VCF. Mengabaikan masalah ini dapat menyebabkan kegagalan deployment.
Pemecahan masalah
Bagian ini menjelaskan cara mendiagnosis dan menyelesaikan masalah umum saat mengonfigurasi atau menjalankan toolkit.
Memeriksa log eksekusi toolkit di jumpbox
Saat Anda menjalankan toolkit di jumpbox, skrip Python akan menulis log eksekusi mendetail ke direktori ~/logs/ di direktori utama jumpbox. Setiap
file log diberi nama vcf_deployer_TIMESTAMP.log. Jika langkah deployment penginstal VCF atau persiapan node gagal, periksa file vcf_deployer_*.log terbaru di ~/logs/ untuk mendiagnosis kegagalan.
Kegagalan deployment penginstal VCF karena sandi yang lemah
- Gejala: Skrip toolkit Python gagal atau berperilaku tidak terduga selama deployment dan inisialisasi penginstal VCF.
- Penyelesaian: Jangan masukkan sandi yang lemah untuk pengguna VCF di Secret Manager, karena sandi yang lemah dapat menyebabkan skrip Python untuk deployment penginstal VCF gagal. Pastikan semua sandi mematuhi panduan kompleksitas sandi Broadcom.
Izin ditolak (roles/iam.serviceAccountTokenCreator)
- Gejala: Error selama peniruan akun layanan saat menjalankan Terraform.
- Penyelesaian: Pastikan identitas yang menjalankan Terraform memiliki
roles/iam.serviceAccountTokenCreatoryang diberikan di akun layanan runner Terraform.
Kegagalan koneksi SSH IAP (403 Forbidden / waktu tunggu habis)
- Gejala:
gcloud compute sshgagal membuat tunnel IAP. - Resolusi:
- Pastikan Cloud Identity-Aware Proxy API (
iap.googleapis.com) diaktifkan. - Pastikan identitas pengguna Anda memiliki
roles/iap.tunnelResourceAccessordanroles/compute.viewer. - Pastikan aturan firewall
allow-iap-ssh-*ada dan mengizinkan traffic masuk dari35.235.240.0/20di port TCP 22.
- Pastikan Cloud Identity-Aware Proxy API (
Peringatan penghapusan subnet saat penerapan ulang (flag create_subnet)
- Gejala: Menjalankan
terraform applysetelah menetapkanenable_internet = falseakan mencoba menghancurkan subnet. - Penyelesaian: Pertahankan
create_subnet = truejika Terraform membuat subnet. Mengubahcreate_subnetmenjadifalseakan menginstruksikan Terraform untuk berhenti mengelola resource, dan menjadwalkannya untuk dihapus.
Langkah berikutnya
- Jika Anda telah menyiapkan node dan men-deploy penginstal VCF untuk deployment domain pengelolaan:
- Konfigurasikan koneksi ke depot offline regional di penginstal VCF untuk mendownload paket software yang diperlukan:
- Protokol:
HTTPS - FQDN (jangan gunakan alamat IP):
offline-depot.REGION.selfmanagedvmwareengine.goog(gantiREGIONdengan region Google Cloud tempat node bare-metal Anda berada) - Port:
443 - Username:
vcf-depot-user - Password:
Google1!
- Protokol:
- Deploy domain pengelolaan:
- Jika Anda menyediakan resource Google Cloud menggunakan
modul Terraform end-to-end
(Deploy node dan VCF menggunakan Terraform dan toolkit),
konversikan output Terraform
management_domain_deployment_input_configke JSON menggunakan skrip bantuan (scripts/export_deployment_config.py), ganti semua kolom yang ditandai sebagaiuser_should_inputdengan nilai target Anda, dan berikan file JSON ke penginstal VCF. - Jika Anda menyediakan resource Google Cloud tanpa menggunakan modul Terraform end-to-end, berikan input konfigurasi domain pengelolaan secara manual di penginstal VCF.
- Untuk mengetahui petunjuk cara menyelesaikan alur kerja pengaktifan penginstal VCF, lihat Men-deploy fleet VCF baru atau instance VCF baru dalam dokumentasi Broadcom.
- Jika Anda menyediakan resource Google Cloud menggunakan
modul Terraform end-to-end
(Deploy node dan VCF menggunakan Terraform dan toolkit),
konversikan output Terraform
- Konfigurasikan koneksi ke depot offline regional di penginstal VCF untuk mendownload paket software yang diperlukan:
- Jika Anda menyiapkan node untuk ditambahkan ke cluster yang ada: Tambahkan node yang telah disiapkan ke cluster VMware VCF 9.x menggunakan UI atau API VMware.
- Pelajari cara menambahkan dan menghapus node di Mengelola kapasitas node atau Mengelola kapasitas node menggunakan Terraform.