Preparar nós e implantar o VCF usando o kit de ferramentas
Nesta página, descrevemos como usar o kit de ferramentas da solução VMware no Google Cloud para preparar nós ESXi bare metal, configurar redes vSwitch e repositórios de dados vSAN e implantar o dispositivo instalador do VMware Cloud Foundation (VCF).
Visão geral
O kit de ferramentas da solução VMware automatiza a configuração inicial de instâncias do ESXi bare metal implantadas no projeto do Google Cloud . Quando executado em uma VM jumpbox, o kit de ferramentas realiza as seguintes ações:
- Verificação de credenciais do host e redefinição de senha: conecta-se a cada
instância do ESXi bare metal e redefine a senha inicial do ESXi
rootpara o secretesxi-root-passwordarmazenado no Secret Manager. - Configuração de rede: configura o
vSwitch0e cria grupos de portas com tags de VLAN para a rede do instalador do VCF. - Configuração de armazenamento: inicializa SSDs locais em um pool
vsanDatastore. - Implantação do instalador do VCF: faz o download do Open Virtual Appliance (OVA) do instalador do VCF no repositório off-line, implanta o dispositivo em um host ESXi de destino designado, injeta parâmetros de rede e DNS e inicializa o instalador.
Escolher um caminho de implantação
É possível executar o kit de ferramentas usando uma das seguintes abordagens:
- Caminho um: provisionar um jumpbox usando o Terraform (recomendado): use o Terraform para provisionar uma VM de jumpbox dedicada do Compute Engine dentro da VPC do host ESXi, da sub-rede VPC, do gateway do Cloud NAT e das regras de firewall SSH do Identity-Aware Proxy (IAP).
- Caminho dois: use uma VM jumpbox: execute o kit de ferramentas diretamente de uma VM do Linux localizada dentro da VPC do host ESXi em uma sub-rede com o Acesso privado do Google ativado.
Antes de começar
Antes de executar o kit de ferramentas, conclua os seguintes pré-requisitos:
Rede de sub-rede da camada 2 baseada em VLAN na lista de permissão
A solução VMware exige que as sub-redes da sua rede de nuvem privada virtual (VPC) tenham a propriedade Resolver máscara de sub-rede definida como Transmitir intervalo principal apenas com aprendizado para oferecer suporte à rede baseada em VLAN. Abra um tíquete de suporte na Central de suporte do console doGoogle Cloud com as seguintes informações:
- Produto: Google Cloud VMware Engine
- Prioridade: P2
- Categoria: conectividade de rede
- Impacto nos negócios: pergunta técnica geral
- Forneça mais detalhes:
Allowlist L2 network connectivity for my project, além do ID do projeto, do número do projeto e da região e zona de destino da implantação.
Para mais informações sobre o suporte a redes baseadas em VLAN, consulte Emulação de camada 2: transmissão ARP e aprendizado de MAC personalizado.
Ativar APIs obrigatórias
Você precisa ter um projeto ativo do Google Cloud com o faturamento ativado. Pode ser o mesmo projeto do Google Cloud em que os hosts do ESXi estão ou um projeto de jumpbox separado. Ative as APIs a seguir:
- API Compute Engine (
compute.googleapis.com): para projetos de jumpbox e host do ESXi - API Identity and Access Management (IAM) (
iam.googleapis.com): para o projeto jumpbox - API Cloud Resource Manager (
cloudresourcemanager.googleapis.com): para projetos de jumpbox e host do ESXi - API Cloud Identity-Aware Proxy (
iap.googleapis.com): para o projeto jumpbox - API Secret Manager (
secretmanager.googleapis.com): para o projeto de host do ESXi
Para ativar as APIs usando a CLI gcloud, execute o seguinte comando:
gcloud services enable \
compute.googleapis.com \
iam.googleapis.com \
cloudresourcemanager.googleapis.com \
iap.googleapis.com \
secretmanager.googleapis.com \
--project='PROJECT_ID'
Substitua PROJECT_ID pelo ID do projeto de destino do Google Cloud .
Configurar as permissões do IAM
O fluxo de trabalho do kit de ferramentas usa as seguintes identidades e papéis:
- Invocador do Terraform: o usuário ou a identidade de CI/CD que inicia o
terraform apply. Requer o Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator) na conta de serviço do Terraform Runner se estiver representando o executor. - Terraform Runner: a identidade que provisiona a infraestrutura do Terraform:
- Administrador de rede do Compute (
roles/compute.networkAdmin) - Administrador da instância do Compute v1 (
roles/compute.instanceAdmin.v1) - Administrador de segurança do Compute (
roles/compute.securityAdmin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser) - Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin) no projeto de destino (se estiver usando o gerenciamento automatizado do IAM com o Terraform)
- Administrador de rede do Compute (
- Usuário SSH do jumpbox: a identidade que se conecta à VM do jumpbox usando o IAP:
- Acessador de recursos do túnel do IAP (
roles/iap.tunnelResourceAccessor) - Leitor do Compute (
roles/compute.viewer)
- Acessador de recursos do túnel do IAP (
- Executor de script do Jumpbox: o usuário ou a conta de serviço que executa o script do kit de ferramentas do Python no jumpbox:
- Acessador de secrets do Secret Manager (
roles/secretmanager.secretAccessor) - Administrador do Compute (
roles/compute.admin) - Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin)
- Acessador de secrets do Secret Manager (
- Agente de serviço de desvio de rede do VMware Engine (P4SA)
(
service-PROJECT_NUMBER@gcp-sa-network-drift.):- Administrador de rede do Compute (
roles/compute.networkAdmin)
- Administrador de rede do Compute (
Armazenar credenciais no Secret Manager
O kit de ferramentas recupera senhas no ambiente de execução do Secret Manager
e usa o secret esxi-root-password para redefinir a senha inicial de root em
cada instância de ESXi bare-metal. Crie secrets no projeto do Google Cloud
para a senha do ESXi root, a senha do VCF root e a senha do usuário local do 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'
Antes de executar os comandos, substitua o seguinte:
PROJECT_ID: o ID do projeto de destino doGoogle Cloud .YOUR_ESXI_ROOT_PASSWORD: a nova senha doroota ser definida nos hosts ESXi bare metal, substituindo a senha inicial da instância.YOUR_VCF_ROOT_PASSWORD: a senharootdo dispositivo instalador do VCF.YOUR_VCF_ADMIN_PASSWORD: a senha do usuário administrador local do dispositivo instalador do VCF.
Provisionar um jumpbox usando o Terraform
Se você não tiver um jumpbox com conectividade de rede com os hosts ESXi, use os módulos do Terraform fornecidos para implantar uma VM de jumpbox.
Clonar o repositório do kit de ferramentas
Clone o repositório do kit de ferramentas na estação de trabalho local:
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
Configurar variáveis do Terraform
Acesse o diretório infrastructure e crie o arquivo terraform.tfvars:
cd infrastructure
cp terraform.tfvars.example terraform.tfvars
Atualize o arquivo terraform.tfvars com os parâmetros do projeto:
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"
A tabela a seguir descreve as principais variáveis de entrada do Terraform:
| Variável | Requisito | Padrão | Descrição |
|---|---|---|---|
project_id
|
Obrigatório | Nenhum | ID do projeto doGoogle Cloud em que o Terraform implanta a infraestrutura. |
region
|
Obrigatório | Nenhum | Região de destino Google Cloud(por exemplo,
us-central1). |
zone
|
Opcional | ${region}-a
|
Zona de destino. Defina essa variável para corresponder à zona dos hosts ESXi bare metal para minimizar a latência. |
vpc_name
|
Condicional | ""
|
Nome da rede VPC que hospeda os nós do ESXi. Obrigatório
se a variável create_subnet
estiver definida como
true. |
create_subnet
|
Opcional | true
|
Defina como true para
criar uma nova sub-rede
ou false para usar uma
sub-rede atual. |
subnet_name
|
Opcional | "smve-toolkit-subnet"
|
Nome da sub-rede
da VM do jumpbox. Se
a variável create_subnet
estiver definida como
false, a sub-rede
precisará existir na
rede vpc_name. |
subnet_cidr
|
Condicional | ""
|
Intervalo CIDR IPv4 principal (mínimo /29). Obrigatório se a variável create_subnet estiver definida como true. |
enable_internet
|
Opcional | true
|
Controla
o Cloud Router,
o Cloud NAT e
a criação de rotas padrão
para saída de dados para a internet.
Defina como false
após a configuração para remover
o gateway NAT, o roteador
e a rota. |
jumpbox_name
|
Opcional | "smve-toolkit-jumpbox"
|
Nome da VM de jumpbox do Compute Engine. |
machine_type
|
Opcional | "e2-micro"
|
Tipo de máquina para a instância de VM do jumpbox. |
boot_disk_size
|
Opcional | 30
|
Tamanho do disco de inicialização em GB para a instância de VM do jumpbox (mínimo de 10 GB). |
boot_disk_type
|
Opcional | "pd-balanced"
|
Tipo de disco permanente
para o disco de inicialização do jumpbox
(pd-balanced,
pd-standard,
pd-ssd,
pd-extreme). |
boot_disk_image
|
Opcional | "debian-cloud/debian-12"
|
Família de imagens do disco de inicialização do SO ou imagem específica self_link. |
jumpbox_internal_ip
|
Opcional | ""
|
Endereço IPv4 interno estático (por exemplo, "10.10.0.5"), nome de IP reservado ou URI. O padrão é um endereço IP temporário dinâmico. |
service_account_email
|
Opcional | ""
|
E-mail da conta de serviço personalizada a ser anexado à VM do jumpbox. O padrão é a conta de serviço padrão do Compute Engine. |
Implantar a infraestrutura do jumpbox
Inicialize e aplique a configuração do 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
Substitua TERRAFORM_RUNNER_SA pelo endereço de e-mail da conta de serviço do executor do Terraform.
Conectar-se ao jumpbox usando o IAP
Conecte-se à VM do jumpbox usando o encaminhamento de TCP do IAP (não é necessário um endereço IP público):
gcloud compute ssh smve-toolkit-jumpbox \
--project='PROJECT_ID' \
--zone='ZONE' \
--tunnel-through-iap
Antes de executar o comando, substitua o seguinte:
PROJECT_ID: o ID do projeto do Google Cloud que hospeda a VM do jumpbox.ZONE: a Google Cloud zona em que a VM jumpbox está implantada.
Usar uma VM jumpbox atual
Se você usar uma VM jumpbox, ela precisará ser uma VM do Linux Compute Engine localizada na mesma rede VPC que hospeda os nós bare metal do ESXi. Esse requisito de posicionamento da VPC é obrigatório para garantir a conectividade de rede com o endpoint do Private Service Connect (PSC) do repositório off-line que hospeda o OVA do instalador do VCF.
Antes de executar o kit de ferramentas, verifique se a VM de jumpbox atual atende aos seguintes requisitos:
- Posicionamento da VPC: é preciso implantar a VM na rede VPC que hospeda os nós do ESXi.
- Google Cloud Acesso à API: a sub-rede que hospeda a VM do jumpbox precisa ter o
Acesso privado do Google ativado (
private_ip_google_access = true) ou acesso de saída à Internet para acessarsecretmanager.googleapis.com,compute.googleapis.comeiam.googleapis.com. - Saída de instalação de pacotes: acesso HTTP/HTTPS de saída (usando o Cloud NAT, um proxy corporativo ou saída direta) para instalar dependências do Python.
- Ativação da API e permissões do IAM: a identidade que executa
o script precisa ter os papéis
roles/secretmanager.secretAccessor,roles/compute.admineroles/resourcemanager.projectIamAdminno projeto do Google Cloud . - Conectividade SSH: o jumpbox precisa permitir a entrada SSH na porta TCP 22 do
intervalo de IP do IAP (
35.235.240.0/20) ou de intervalos de IP públicos autorizados, e a identidade de conexão precisa ter os papéis aplicáveis (roles/iap.tunnelResourceAccessoreroles/compute.viewer).
Configurar o kit de ferramentas no jumpbox
No terminal do jumpbox, instale as dependências e faça o download do script do kit de ferramentas.
Instalar pacotes do sistema
Instale o Python 3, pip, venv e o Git:
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git
Acessar os scripts do kit de ferramentas
Clone o repositório ou copie os scripts da estação de trabalho local:
Opção A (clonar usando o 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/pythonOpção B (copiar da estação de trabalho local usando
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
Crie e ative um ambiente virtual Python
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
Configurar o arquivo de configuração do script do kit de ferramentas
Crie um arquivo de configuração config.json na VM do jumpbox para especificar as instâncias de destino do ESXi e as configurações de implantação do VCF.
Parâmetros de configuração
| Parâmetro | Obrigatório | Tipo de dados | Descrição |
|---|---|---|---|
project
|
Sim | string
|
ID do projeto de destino Google Cloud em que as instâncias bare metal do ESXi estão. |
zone |
Sim | string |
Zona de destino Google Cloud em que os nós do ESXi residem. |
gce_nodes
|
Sim | list(string)
ou object
|
Lista explícita de nomes de instâncias bare metal do ESXi (por exemplo,
["vcf-mgmt-sample-node-1", "vcf-mgmt-sample-node-2"]) ou um
objeto que descobre instâncias por prefix (por exemplo,
{"prefix": "vcf-mgmt-sample"}) ou subnet ({"subnet":
"vcf-mgmt-subnet"}). |
esxi_root_password_secret
|
Sim | string
|
Nome do secret do Secret Manager ou caminho do recurso que contém a senha raiz do ESXi. |
vcf_deployment_config
|
Opcional | object
|
Objeto de configuração para implantação e inicialização do instalador do VCF. Omita esse objeto se você não precisar implantar o instalador do VCF em nenhum dos nós que estão sendo preparados. |
└─ target_gce_node
|
Condicional | string
|
Nó bare metal de destino que hospeda as cargas de trabalho de implantação inicial.
Obrigatório se o objeto vcf_deployment_config estiver definido. |
└─ vcf_appliance_root_password_secret
|
Condicional | string
|
Nome do secret do Secret Manager que contém a senha raiz do dispositivo VCF. |
└─
vcf_appliance_local_user_password_secret |
Condicional | string
|
Nome do secret do Secret Manager que contém a senha do usuário local (administrador) do dispositivo do VCF. |
└─ vcf_installer_ip_source
|
Condicional | string ou
object
|
Origem do endereço IP para o instalador do VCF (SDDC Manager). Especifique
{"reserved_address": "ADDRESS_NAME"}, {"forwarding_rule":
"RULE_NAME"} ou uma string de URI de recurso direto (por exemplo,
projects/PROJECT_ID/regions/REGION/forwardingRules/RULE_NAME). |
└─ vcf_installer_fqdn
|
Condicional | string
|
Nome de domínio totalmente qualificado (FQDN) do instalador do VCF (SDDC Manager). |
└─ offline_depot_subnet_cidr
|
Condicional | string
|
Intervalo CIDR IPv4 principal para a sub-rede dedicada do repositório off-line
(por exemplo, /29). Não pode se sobrepor nem reutilizar
sub-redes na VPC. |
└─ dns_server
|
Opcional | string
|
Endereço IP do servidor DNS (por exemplo, o IP de DNS reservado da
sua sub-rede ou um servidor DNS personalizado). O padrão será o
servidor de metadadosGoogle Cloud (169.254.169.254) se omitido.
Especifique um endereço IP de uma sub-rede que não seja da camada 2 se você usar o Cloud DNS. |
Configurações de amostra
As guias a seguir mostram exemplos de configurações de config.json (com base em modelos
disponíveis no diretório python/examples/) para diferentes abordagens de segmentação de instâncias
e estratégias de alocação de IP:
Lista de nós explícita
Use essa configuração (python/examples/config_explicit_nodes.json) para
segmentar nomes de instâncias do ESXi específicos:
{
// 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"
}
}
Filtro de prefixo do nome do nó
Use essa configuração (python/examples/config_prefix_filter.json) para
descobrir dinamicamente instâncias do ESXi que correspondam a um prefixo de nome e use uma
regra de encaminhamento:
{
// 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"
}
}
Filtro de descoberta de sub-rede
Use essa configuração (python/examples/config_subnet_filter.json) para
descobrir dinamicamente instâncias do ESXi anexadas a uma sub-rede específica e fornecer
um URI de recurso completo para a origem do 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"
}
}
Somente preparação de nós (sem instalador do VCF)
Omita o objeto vcf_deployment_config no arquivo config.json se você
não precisar implantar o dispositivo instalador do VCF em nenhum dos nós que estão sendo
preparados (por exemplo, ao preparar nós para adição de nós no dia 2 ou
criação de cluster de dados de carga de trabalho):
{
"project": "PROJECT_ID",
"zone": "ZONE",
"gce_nodes": {
"subnet": "SUBNET_NAME"
},
"esxi_root_password_secret": "esxi-root-password"
}
Substitua o seguinte no arquivo config.json (e remova todos os comentários inline
antes de executar o script Python):
PROJECT_ID: o ID do projeto do Google Cloud em que as instâncias do ESXi bare metal estão.ZONE: a zona do Google Cloud em que as instâncias do ESXi bare metal estão localizadas (por exemplo,us-east4-c).SUBNET_NAME: o nome da sub-rede VPC anexada às instâncias do ESXi (por exemplo,vcf-mgmt-subnet).
Executar o script do kit de ferramentas
Autentique-se com o Google Cloud usando o Application Default Credentials no terminal do jumpbox:
gcloud auth application-default login --no-browser
Com o ambiente virtual ativo (source venv/bin/activate) e o
config.json configurado, execute o kit de ferramentas:
python3 -m vcf_deployer.main --config config.json
Fluxo de trabalho de execução
O script executa verificações de validação automatizadas e as seguintes etapas de configuração:
- Validação pré-voo: confirma que as instâncias de destino executam imagens ESXi compatíveis, valida o acesso ao Secret Manager, verifica o alinhamento do CIDR de IP e calcula as impressões digitais do certificado SSL.
- Configuração de credenciais e redefinição de senha: conecta-se a cada host e
redefine a senha inicial do ESXi
rootpara o secretesxi-root-passwordarmazenado no Secret Manager. - Criação de vSwitch e grupo de portas: configura
vSwitch0e cria grupos de portas com tag de VLAN (vlan-VLAN_ID-RANDOM_SUFFIX). - Inicialização do vSAN: formata SSDs NVMe locais em um
vsanDatastore. - Implantação do instalador do VCF: implanta o OVA do VCF no
target_gce_node, injeta a configuração de rede e inicia o dispositivo.
Depois que a execução for concluída, desative o ambiente virtual:
deactivate
Tarefas pós-implantação
Depois de executar o kit de ferramentas e implantar o dispositivo do instalador do VCF, faça a seguinte configuração pós-implantação:
Desativar a saída de dados para a Internet no jumpbox (opcional)
Depois que as dependências do Python forem instaladas, será possível desativar o Cloud NAT para
aplicar uma segurança de saída rigorosa. Na estação de trabalho terraform.tfvars:
enable_internet = false
Aplique o Terraform novamente:
terraform apply
Analisar os problemas conhecidos antes de continuar
Analise todos os problemas documentados na página Problemas conhecidos antes de iniciar a implantação do VCF. Ignorar esses problemas pode causar falhas na implantação.
Solução de problemas
Nesta seção, descrevemos como diagnosticar e resolver problemas comuns ao configurar ou executar o kit de ferramentas.
Inspecionar os registros de execução do kit de ferramentas no jumpbox
Quando você executa o kit de ferramentas no jumpbox, o script Python grava registros de execução detalhados no diretório ~/logs/ no diretório inicial do jumpbox. Cada
arquivo de registro é chamado de vcf_deployer_TIMESTAMP.log. Se uma etapa de preparação de nó ou de implantação do instalador do VCF falhar, inspecione o arquivo vcf_deployer_*.log mais recente em ~/logs/ para diagnosticar a falha.
Falha na implantação do instalador do VCF devido a senhas fracas
- Sintoma: o script do kit de ferramentas do Python falha ou se comporta de maneira inesperada durante a implantação e a inicialização do instalador do VCF.
- Resolução: não insira senhas fracas para usuários do VCF no Secret Manager, porque elas podem causar falhas no script Python para a implantação do instalador do VCF. Verifique se todas as senhas seguem as diretrizes de complexidade de senha da Broadcom.
Permissão negada (roles/iam.serviceAccountTokenCreator)
- Sintoma: erros durante a identidade temporária de conta de serviço ao executar o Terraform.
- Resolução: verifique se a identidade que executa o Terraform tem
roles/iam.serviceAccountTokenCreatorconcedido na conta de serviço do executor do Terraform.
Falha na conexão SSH do IAP (403 Proibido / tempo limite)
- Sintoma: o
gcloud compute sshnão consegue estabelecer um túnel do IAP. - Resolução:
- Verifique se a API Cloud Identity-Aware Proxy (
iap.googleapis.com) está ativada. - Verifique se a identidade do usuário tem
roles/iap.tunnelResourceAccessoreroles/compute.viewer. - Verifique se a regra de firewall
allow-iap-ssh-*existe e permite a entrada de35.235.240.0/20na porta TCP 22.
- Verifique se a API Cloud Identity-Aware Proxy (
Aviso de exclusão de sub-rede ao reaplicar (flag create_subnet)
- Sintoma: executar
terraform applydepois de definirenable_internet = falsetenta destruir a sub-rede. - Resolução: mantenha
create_subnet = truese o Terraform tiver criado a sub-rede. Mudarcreate_subnetparafalseinstrui o Terraform a parar de gerenciar o recurso, programando-o para exclusão.
A seguir
- Se você preparou os nós e implantou um instalador do VCF para a implantação do domínio de gerenciamento:
- Configure a conexão com o repositório off-line regional no instalador do VCF para fazer o download dos pacotes de software necessários:
- Protocolo:
HTTPS - FQDN (não use um endereço IP):
offline-depot.REGION.selfmanagedvmwareengine.goog(substituaREGIONpela região do Google Cloud em que os nós bare metal estão) - Porta:
443 - Nome de usuário:
vcf-depot-user - Senha:
Google1!
- Protocolo:
- Implante o domínio de gerenciamento:
- Se você provisionou os recursos do Google Cloud usando os
módulos do Terraform de ponta a ponta
(Implantar nós e o VCF usando o Terraform e o kit de ferramentas),
converta a saída do Terraform
management_domain_deployment_input_configem JSON usando o script auxiliar (scripts/export_deployment_config.py), substitua todos os campos marcados comouser_should_inputpelos valores de destino e forneça o arquivo JSON ao instalador do VCF. - Se você provisionou os recursos do Google Cloud sem usar os módulos do Terraform de ponta a ponta, forneça as entradas de configuração do domínio de gerenciamento manualmente no instalador do VCF.
- Para instruções sobre como concluir o fluxo de trabalho de ativação do instalador do VCF, consulte Implantar uma nova frota do VCF ou uma nova instância do VCF na documentação da Broadcom.
- Se você provisionou os recursos do Google Cloud usando os
módulos do Terraform de ponta a ponta
(Implantar nós e o VCF usando o Terraform e o kit de ferramentas),
converta a saída do Terraform
- Configure a conexão com o repositório off-line regional no instalador do VCF para fazer o download dos pacotes de software necessários:
- Se você preparou os nós para adicionar a um cluster atual: adicione os nós preparados ao cluster do VMware VCF 9.x usando a interface ou as APIs do VMware.
- Saiba como adicionar e remover nós em Gerenciar a capacidade de nós ou Gerenciar a capacidade de nós usando o Terraform.