Como criar e gerenciar instâncias do Windows Server

O Compute Engine fornece imagens públicas com o Windows Server que podem ser usadas para criar instâncias. Para instruções sobre como criar uma instância do Windows Server com o SQL Server pré-instalado, consulte Como criar instâncias do SQL Server.

Para mais informações sobre as instâncias do Windows Server e os aplicativos do Windows que podem ser executados no Compute Engine, consulte Windows no Compute Engine.

Antes de começar

Como criar uma instância do Windows Server

Para criar uma instância com o Windows Server, especifique a família de imagens referente à versão específica do Windows de que você precisa. O Compute Engine oferece várias versões do Windows Server, a maioria delas disponível como imagens regulares e de VM protegida. As imagens de VMs protegidas oferecem recursos de segurança como firmware compatível com UEFI, inicialização segura e inicialização medida e segura de vTPM. Se você escolher o armazenamento SSD para sua instância, não poderá usar os recursos de monitoramento de integridade da VM protegida e não poderá usar o vTPM para proteger os dados. Para uma lista das famílias de imagens disponíveis, consulte imagens públicas.

Como criar uma instância do Windows Server que use um IP externo para ser ativada

Nesta seção, descrevemos como criar uma instância do Windows Server que tenha um endereço IP externo. É preciso configurar sua rede VPC para permitir acesso a kms.windows.googlecloud.com.

Como criar a instância do Windows Server

Console

Para criar uma instância básica do Windows:

  1. No Console do GCP, acesse a página Instâncias de VMs.

    Acessar a página "Instâncias de VMs"

  2. Clique em Criar instância.
  3. Na seção Disco de inicialização, clique em Alterar para começar a configurar o disco de inicialização.
  4. Na guia Imagens do SO, escolha a Windows image.

  5. Clique em Selecionar.
  6. Clique em Criar para criar a instância.

Para criar uma instância de VM protegida do Windows, siga estas etapas:

  1. Acesse a página "Instâncias de VMs".

    Acessar a página de instâncias de VM

  2. Clique em Criar instância.
  3. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização.
  4. Na guia Imagens do SO, escolha uma imagem do Windows.
    Selecione Mostrar imagens com recursos de VM protegida para ver apenas imagens de VM protegida.

  5. Clique em Selecionar.

  6. Opcionalmente, altere as configurações da instância da VM protegida:

    1. Clique na guia Segurança na seção Gerenciamento, segurança, discos, rede.
    2. Se você quiser desativar a inicialização segura, desmarque Ativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para mais informações, consulte Inicialização segura.
    3. Se quiser desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês), desmarque Ativar vTPM. O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

    4. Se você quiser desativar o monitoramento de integridade, desmarque Ativar monitoramento de integridade. O monitoramento de integridade permite monitorar a integridade da inicialização das suas instâncias de VM protegidas usando o Stackdriver Monitoring. Para mais informações, consulte Monitoramento de integridade.

  7. Clique em Criar para criar a instância.

gcloud

Use o comando compute images list para ver uma lista de imagens do Windows Server.

Use o seguinte comando para ver as imagens de VMs não protegidas disponíveis no Windows Server:

gcloud compute images list --project windows-cloud --no-standard-images

Use o seguinte comando para ver uma lista de imagens de VMs protegidas disponíveis, incluindo imagens do Windows:

gcloud compute images list --project gce-uefi-images --no-standard-images

Use o compute instances create para criar uma nova instância e especificar a família de imagens de uma das imagens públicas do Windows Server.

gcloud compute instances create [INSTANCE_NAME] \
    --image-project windows-cloud \
    --image-family [IMAGE_FAMILY] \
    --machine-type [MACHINE_TYPE] \
    --boot-disk-size [BOOT_DISK_SIZE] \
    --boot-disk-type [BOOT_DISK_TYPE]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_FAMILY] é uma das famílias de imagem pública das imagens do Windows Server;
  • [MACHINE_TYPE] é um dos tipos de máquina disponíveis;
  • [BOOT_DISK_SIZE] é o tamanho do disco de inicialização em GB. Discos permanentes maiores têm mais capacidade;
  • [BOOT_DISK_TYPE] é o tipo de disco de inicialização da instância. Especifique pd-ssd para usar um disco permanente SSD mais veloz ou pd-standard para usar um disco permanente HDD padrão.

Se for escolhida uma imagem compatível com a VM protegida, é possível alterar as configurações de VM protegida da instância usando uma das sinalizações a seguir:

  • --no-shielded-secure-boot: desativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para obter mais informações, consulte Inicialização segura.
  • --no-shielded-vtpm: desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês). O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

  • --no-shielded-integrity-monitoring: desativar o monitoramento de integridade. O monitoramento de integridade permite monitorar a integridade da inicialização das suas instâncias de VM protegidas usando o Stackdriver Monitoring. Para mais informações, consulte Monitoramento de integridade.

O exemplo a seguir cria uma instância de VM protegida do Windows 2012 com a inicialização segura desativada:

 gcloud compute instances create my-instance \
 --image-family windows-2012-r2 --image-project gce-uefi-images \
 --no-shielded-secure-boot

API

Para criar uma instância com a API, inclua a propriedade initializeParams na solicitação de criação da instância e especifique uma imagem do Windows. Por exemplo, o corpo da solicitação pode ter a seguinte aparência:

instance = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "[DISK_NAME]",
         "sourceImage": "https://compute.googleapis.com/compute/v1/projects/windows-cloud/global/images/family/[IMAGE_FAMILY]",
         "diskSizeGb": "[BOOT_DISK_SIZE]",
         "diskType": "[BOOT_DISK_TYPE]",
       }
    }],
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
     }],
    "network": "global/networks/default"
  }],
  "serviceAccounts": [{
       "email": DEFAULT_SERVICE_EMAIL,
       "scopes": DEFAULT_SCOPES
  }]
}

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_FAMILY] é uma das famílias de imagens públicas das imagens do Windows Server ou do SQL Server;
  • [ZONE] é a zona da instância;
  • [MACHINE_TYPE] é um dos tipos de máquina disponíveis;
  • [BOOT_DISK_SIZE] é o tamanho do disco de inicialização em GB. Discos permanentes maiores têm mais capacidade;
  • [BOOT_DISK_TYPE] é o tipo de disco de inicialização da instância. Especifique pd-ssd para usar um disco permanente SSD mais veloz ou pd-standard para usar um disco permanente HDD padrão.

Se você tiver escolhido uma imagem compatível com VM protegida, será possível alterar as configurações da VM protegida da instância usando os itens do corpo da solicitação booleana a seguir:

  • enableSecureBoot: ativar ou desativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para mais informações, consulte Inicialização segura.
  • enableVtpm: ativar ou desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês). O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

  • enableIntegrityMonitoring: ativar ou desativar o monitoramento de integridade. O monitoramento de integridade permite monitorar e verificar a integridade do tempo de execução de suas instâncias de VM protegidas usando os relatórios do Stackdriver Monitoring. Para mais informações, consulte Monitoramento de integridade.

Para mais informações sobre como criar uma instância, leia a documentação de instances.insert().

Depois de criar a instância do Windows ou do SQL Server, defina a senha inicial da instância para se conectar a ela pelo RDP.

Como criar uma instância do Windows Server que use um endereço IP interno para ser ativada

Antes de criar uma instância do Windows Server que tenha apenas um endereço IP interno, é preciso verificar ou configurar rotas e regras de firewall na sua rede VPC para permitir acesso a kms.windows.googlecloud.com. Além disso, você precisa ativar o Acesso privado do Google para sub-redes em sua rede VPC que contenham instâncias do Windows apenas com endereços IP internos.

Ao criar uma nova instância usando a linha de comando gcloud, use a sinalização --no-address para garantir que não seja atribuído um endereço IP externo a ela:

gcloud compute instances create [INSTANCE_NAME] --network [NETWORK_NAME] \
   --subnet [SUBNET_NAME] \
   --no-address \
   --zone [ZONE] \
   --image-project windows-cloud \
   --image-family [IMAGE_FAMILY] \
   --machine-type [MACHINE_TYPE] \
   --boot-disk-size [BOOT_DISK_SIZE] \
   --boot-disk-type [BOOT_DISK_TYPE]

Substitua os seguintes marcadores por valores válidos:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [SUBNET_NAME] é o nome da sub-rede na rede VPC que a instância usará. A sub-rede precisa estar na mesma região que a zona escolhida para a instância.
  • [IMAGE_FAMILY] é uma das famílias de imagem pública das imagens do Windows Server.
  • [MACHINE_TYPE] é um dos tipos de máquina disponíveis.
  • [BOOT_DISK_SIZE] é o tamanho do disco de inicialização em GB. Discos permanentes maiores têm mais capacidade.
  • [BOOT_DISK_TYPE] é o tipo de disco de inicialização da instância. Especifique pd-ssd para usar um disco permanente SSD mais veloz ou pd-standard para usar um disco permanente HDD padrão.

Como essa instância não tem um endereço IP externo, não é possível se conectar diretamente a ela pela Internet. É possível se conectar a partir de outra rede conectada à sua rede VPC usando o Cloud Interconnect ou o Cloud VPN. Outra possibilidade é se conectar a uma instância bastion por meio do RDP e se conectar à instância que tem apenas um endereço IP interno.

Como configurar o acesso a kms.windows.googlecloud.com

Para ativação e renovação do Windows, sua rede VPC precisa atender aos requisitos a seguir de roteamento e regras de firewall.

Requisitos de roteamento

As instâncias do Windows precisam ser capazes de alcançar kms.windows.googlecloud.com (35.190.247.13) por meio de uma rota que tenha o gateway de Internet padrão como próximo salto. Não é possível ativar instâncias do Windows usando um gateway NAT baseado em instância ou o Cloud NAT porque kms.windows.googlecloud.com rejeita solicitações de ativação de endereços IP que não são confirmados como instâncias do Compute Engine.

É possível usar a rota padrão em sua rede VPC para rotear o tráfego diretamente para kms.windows.googlecloud.com. Se você remover essa rota ou se planeja fazer isso no futuro, crie uma rota estática personalizada com o destino 35.190.247.13 e o próximo salto definido como gateway de Internet padrão:

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=35.190.247.13/32 \
    --network=[NETWORK] \
    --next-hop-gateway=default-internet-gateway

Substitua [ROUTE_NAME] por um nome para esta rota e [NETWORK] pelo nome da sua rede VPC.

A rota padrão ou uma rota estática personalizada, conforme descrito acima, permitirá que instâncias com endereços IP externos alcancem kms.windows.googlecloud.com. Se você tiver instâncias do Windows sem endereços IP externos, também precisará ativar o Acesso privado do Google para que instâncias apenas com endereços IP internos possam enviar tráfego para o endereço IP externo para kms.windows.googlecloud.com. Esse endereço IP, 35.190.247.13, está incluído na lista de endereços IP para APIs e serviços do Google.

Requisitos de regra de firewall

A regra de firewall de permissão de saída implícita permite que as instâncias façam solicitações e recebam respostas estabelecidas. A menos que você tenha criado regras de firewall personalizadas que negam a saída, suas instâncias do Windows podem se comunicar com kms.windows.googlecloud.com.

Se você personalizar as regras de firewall, uma boa prática é criar uma regra de permissão de saída de alta prioridade que permita explicitamente a comunicação com 35.190.247.13. Dessa forma, ao modificar as regras do firewall, você não desativará acidentalmente a ativação do Windows.

Os seguintes exemplos de gcloud criam a regra de permissão de saída recomendada com a prioridade mais alta:

gcloud compute firewall-rules create [RULE_NAME] \
    --direction=EGRESS \
    --network=[NETWORK] \
    --action=ALLOW \
    --rules=tcp:1688 \
    --destination-ranges=35.190.247.13/32 \
    --priority=0

Substitua [RULE_NAME] por um nome para esta regra de firewall e [NETWORK] pelo nome da sua rede VPC.

Como verificar se uma instância foi iniciada

As instâncias do Windows têm um tempo de inicialização mais longo por causa do processo sysprep. O Console do Cloud pode mostrar que a instância está em execução mesmo que o processo do sysprep ainda não esteja completo. Para confirmar se ela foi inicializada e está pronta para ser usada, verifique a saída da porta serial com o seguinte comando:

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

[INSTANCE_NAME] é o nome da instância que você quer verificar.

...[snip]...
Running schtasks with arguments /run /tn GCEStartup
-->  SUCCESS: Attempted to run the scheduled task "GCEStartup".
-------------------------------------------------------------
Instance setup finished. [INSTANCE_NAME] is ready to use.
-------------------------------------------------------------

Como desativar atualizações de componentes fornecidas pelo Google

Se você tiver instâncias do Windows com versões de imagem v20170509 e posteriores ou com a versão do agente 4.1.0 e posterior, os componentes fornecidos pelo Google, como os scripts agent, metadata e sysprep, serão atualizados automaticamente usando uma tarefa programada. A tarefa programada é configurada pelo pacote google-compute-engine-auto-updater.

Se quiser gerenciar atualizações manualmente ou usando um sistema alternativo, desative essas atualizações automáticas de componente removendo o pacote google-compute-engine-auto-updater:

  1. Na instância do Windows Server, abra um terminal do PowerShell como administrador.
  2. Execute o comando googet remove para remover o pacote:

    PS C:\\> googet remove google-compute-engine-auto-updater
    

Se quiser, reinstale o pacote para ativar atualizações automáticas de componente:

  1. Na instância do Windows Server, abra um terminal do PowerShell como administrador.
  2. Execute o comando googet install para instalar o pacote:

    PS C:\\> googet install google-compute-engine-auto-updater
    

Como alternativa, é possível desativar as atualizações definindo o valor disable-agent-updates como true nos metadados personalizados do projeto ou da instância. O valor de metadados desativa atualizações sem remover o pacote ou a tarefa.

Como ativar e desativar recursos de instância do Windows

Se você tiver instâncias do Windows com versões de imagem v20170509 e posteriores ou com a versão do agente 4.1.0 e posterior, poderá definir a configuração de instância em um arquivo de configuração ou em metadados personalizados do projeto ou da instância. O arquivo de configuração está no formato INI e está localizado no seguinte caminho:

C:\Program Files\Google\Compute Engine\instance_configs.cfg

O sistema substitui as definições de configuração na seguinte ordem de prioridade, da prioridade mais alta à mais baixa:

  1. parâmetros de configuração que você definiu no arquivo de configuração
  2. parâmetros de configuração definidos nos metadados personalizados da instância
  3. Parâmetros de configuração definidos nos metadados personalizados do projeto

Por exemplo, se for possível ativar o recurso accountManager em um arquivo de configuração, sua instância ignorará os parâmetros que você definiu em metadados personalizados para desativar esse recurso.

Uma vantagem de definir esses parâmetros no arquivo de configuração é que as configurações permanecem quando você cria uma imagem personalizada para uma instância do Windows Server. Metadados personalizados de nível de instância não persistem após o fim da vida útil da instância.

É possível desativar diferentes recursos da instância do Windows usando os exemplos a seguir.

Desativar o gerente da conta, que também desativa a redefinição de senhas com a ferramenta de linha de comando gcloud ou no console:

  • Arquivo de configuração:

    [accountManager]
    disable=true
    
  • Nos metadados personalizados, defina disable-account-manager como true.

Desative o administrador de endereços:

  • Entrada do arquivo de configuração:

    [addressManager]
    disable=true
    
  • Nos metadados personalizados, defina disable-address-manager como true.

Clustering de failover do Windows Server

Ative o agente do cluster de failover do Windows Server:

  • Entrada do arquivo de configuração:

    [wsfc]
    enable=true
    
  • Nos metadados personalizados, defina enable-wsfc como true.

Como usar vários balanceadores de carga internos

Especifique o endereço IP da instância de balanceamento de carga interno para o cluster de failover. Esta é uma configuração avançada que não precisa ser configurada para um cluster de failover dedicado.

Geralmente, uma instância de balanceamento de carga interno é usada para direcionar o tráfego de rede para uma instância de VM de cada vez. Quando uma segunda instância de balanceamento de carga interno que usa as instâncias de VM de clustering de failover é adicionada como parte do back-end de um site com balanceamento de carga, você tem dois endereços IP de balanceamento de carga interno. Se o clustering de failover usar 10.0.0.10 e o balanceador de carga do site usar 10.0.0.11, será preciso especificar o endereço IP do balanceador de carga usado para o clustering de failover. Isso desambigua o endereço que está sendo usado para o cluster.

  • Entrada do arquivo de configuração:

    [wsfc]
    addresses=10.0.0.10
    
  • Nos metadados personalizados, defina wsfc-addrs como 10.0.0.10.

Como alterar a porta do agente de clustering

Defina a porta do agente de clustering de failover. A porta padrão é 59998. Só é preciso especificar a porta quando quiser usar uma diferente:

  • Entrada do arquivo de configuração:

    [wsfc]
    port=12345
    
  • Nos metadados personalizados, defina wsfc-agent-port como o número da porta.

Observações sobre a versão de imagem

Imagens mais antigas não usam um arquivo de configuração e só têm um subconjunto de recursos. As versões de imagem entre a v20160112 e a v20170509 ou a versão de agente do Windows entre 3.2.1.0 e 4.0.0 exigem que você use os seguintes valores de metadados personalizados:

  • Defina disable-account-manager como true nos metadados da instância para desativar o gerente da conta.
  • Defina disable-address-manager como true nos metadados da instância para desativar o administrador de endereços.

A seguir