Um script de inicialização é um arquivo que executa tarefas durante o processo de inicialização de uma instância de máquina virtual (VM). Os scripts de inicialização podem ser aplicados a todas as VMs de um projeto ou a uma única VM. Os scripts de inicialização especificados pelos metadados no nível da VM substituem os scripts de inicialização especificados pelos metadados no nível do projeto, e os scripts de inicialização só são executados quando uma rede está disponível. Este documento descreve como usar scripts de inicialização em instâncias de VM do Windows Server. Para obter informações sobre como adicionar um script de inicialização no nível do projeto, consulte gcloud compute project-info add-metadata
.
Os scripts de inicialização do Windows devem ser shell de comando ( .cmd
), PowerShell ( .ps1
) ou scripts de arquivo em lote ( .bat
) e devem ter a extensão de arquivo apropriada.
Se você especificar um script de inicialização usando um dos procedimentos deste documento, o Compute Engine fará o seguinte:
Copia o script de inicialização para a VM
O Agendador de tarefas executa o script de inicialização como a conta
LocalSystem
quando a VM é inicializada
Para obter informações sobre as diversas tarefas relacionadas aos scripts de inicialização e quando executar cada uma delas, consulte o documento de visão geral dos scripts de inicialização .
Antes de começar
- Leia a visão geral dos scripts de inicialização .
- Leia sobre os conceitos básicos de metadados de VM .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
No console do Google Cloud, acesse a página Criar uma instância .
Para Disco de inicialização , selecione Alterar e faça o seguinte:
- Na guia Imagens públicas , escolha um sistema operacional Windows Server.
- Clique em Selecionar .
Expanda a seção Opções avançadas e faça o seguinte:
- Expanda a seção Gerenciamento .
Na seção Metadados , clique em Adicionar item para definir a chave e o valor :
Chave : definida como
windows-startup-script-ps1
.Os scripts de inicialização passados para a VM usando chaves de metadados começando com
windows-startup-script
são executados em cada inicialização após a inicialização da VM.Valor : adicione o seguinte script:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script added directly.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Clique em Criar .
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no nome da VM.
Clique em Editar .
Em Metadados , especifique o seguinte:
-
key
:windows-startup-script-ps1
-
value
: o conteúdo do script de inicialização
-
PROJECT_ID : o ID do projeto
ZONE : a zona para criar a nova VM
Obtenha o valor
tags.fingerprint
da VM usando o métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua o seguinte:
PROJECT_ID : o ID do projeto
ZONE : a zona da VM
VM_NAME : a zona da VM
Passe o script de inicialização usando o valor
fingerprint
, juntamente com a chave de metadados e o valor do script de inicialização, em uma chamada para o métodoinstances.setMetadata
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "fingerprint": FINGERPRINT, "items": [ { "key": "windows-startup-script-ps1", "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '<html><body><p>Windows startup script added directly.</p></body></html>' > C:\\inetpub\\wwwroot\\index.html" } ], ... }
Substitua o seguinte:
PROJECT_ID : o ID do projeto
ZONE : a zona da VM
VM_NAME : a zona da VM
FINGERPRINT : o valor
tags.fingerprint
obtido usando o métodoinstances.get
Crie um arquivo local (
.ps1
) para armazenar o script de inicialização.Observe o caminho relativo da CLI gcloud para o script de inicialização.
Adicione o seguinte script de inicialização ao arquivo:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script passed from a file on your local workstation.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
- VM_NAME : o nome da VM
- FILE_PATH : o caminho relativo para o arquivo de script de inicialização
Crie um arquivo para armazenar o script de inicialização. Este exemplo usa um arquivo PowerShell (
.ps1
).Adicione o seguinte script do PowerShell ao arquivo, que instala um servidor web e cria uma página web simples:
# Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Windows startup script passed from Cloud Storage.</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Por padrão, os proprietários e editores de projetos podem acessar arquivos do Cloud Storage no mesmo projeto, a menos que haja controles de acesso explícitos que não permitam isso.
Se o bucket ou objeto do Cloud Storage for menos seguro que os metadados, há risco de escalonamento de privilégios se o script de inicialização for modificado e a VM for reinicializada. Isso ocorre porque após a reinicialização da VM, o script de inicialização é executado como
LocalSystem
e pode usar as permissões da conta de serviço anexada para acessar outros recursos.No console do Google Cloud, acesse a página Criar uma instância .
Para Disco de inicialização , selecione Alterar e faça o seguinte:
- Na guia Imagens públicas , escolha um sistema operacional Windows Server.
- Clique em Selecionar .
Na seção Identidade e acesso à API , selecione uma conta de serviço que tenha a função de Visualizador de Objetos de Armazenamento .
Expanda a seção Opções avançadas e faça o seguinte:
- Expanda a seção Gerenciamento .
Na seção Metadados , adicione valores para o seguinte:
Chave : a chave de metadados. Especifique a chave de metadados
windows-startup-script-url
para que o script seja executado durante cada inicialização após a inicialização.Valor : o valor dos metadados. Defina o local do Cloud Storage do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
Substitua o seguinte:
- BUCKET : o nome do bucket que contém o arquivo de script de inicialização
- FILE : o nome do arquivo de script de inicialização
- URL autenticado :
Para criar a VM, clique em Criar .
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no nome da VM.
Clique em Editar .
Em Metadados , adicione os seguintes valores:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
- VM_NAME : o nome da VM.
- CLOUD_STORAGE_URL : os valores dos metadados. Configure o local do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
PROJECT_ID : o ID do projeto.
ZONE : a zona na qual criar a nova VM.
CLOUD_STORAGE_URL : o valor dos metadados. Defina o local do Cloud Storage do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
Obtenha o valor
tags.fingerprint
da VM usando o métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua o seguinte:
PROJECT_ID : o ID do projeto
ZONE : a zona da VM
VM_NAME : a zona da VM
Passe o script de inicialização usando o valor
fingerprint
, juntamente com a chave de metadados e o valor do script de inicialização, em uma chamada para o métodoinstances.setMetadata
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "fingerprint": FINGERPRINT, "items": [ { "key": "windows-startup-script-url", "value": "CLOUD_STORAGE_URL" } ], ... }
Substitua o seguinte:
PROJECT_ID : o ID do projeto.
ZONE : a zona da VM.
VM_NAME : a zona da VM.
FINGERPRINT : o valor
tags.fingerprint
obtido usando o métodoinstances.get
.CLOUD_STORAGE_URL : o valor dos metadados. Defina o local do Cloud Storage do arquivo de script de inicialização usando um dos seguintes formatos:
- URL autenticado :
https://storage.googleapis.com/ BUCKET / FILE
- URI de armazenamento gcloud :
gs:// BUCKET / FILE
- URL autenticado :
Crie um script de inicialização que consulte o valor de uma chave de metadados. Por exemplo, o seguinte script de inicialização do PowerShell (
.ps1
) consulta o valor da chave de metadadosfoo
.$METADATA_VALUE = (Invoke-RestMethod -Headers @{'Metadata-Flavor' = 'Google'} -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/foo") # Installing IIS Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature # Ensure the directory exists if (-not (Test-Path("C:\inetpub\wwwroot"))) {New-Item "C:\inetpub\wwwroot" -Type Directory} # Write the expanded string out to the file, overwriting the file if it already exists. "<html><body><p>Accessing metadata value of foo: $METADATA_VALUE</p></body></html>" | Out-File -FilePath C:\inetpub\wwwroot\index.html -Encoding ascii -Force
Defina o valor da chave de metadados
foo
ao criar uma VM usando o comandogcloud compute instances create
a seguir. Neste exemplo, o script de inicialização é passado para a VM a partir de um arquivo local.gcloud
gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019 \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH \ --metadata=foo=bar
Substitua o seguinte:
VM_NAME : o nome da VM
FILE_PATH : o caminho relativo para o arquivo de script de inicialização
Para obter mais informações sobre como especificar um par chave-valor de metadados, consulte Definir e remover metadados personalizados .
Visualize o IP externo em um navegador da web para verificar se o script de inicialização gera o valor de
foo
. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.Executando o seguinte comando:
C:\Program Files\Google\Compute Engine\metadata_scripts\run_startup_scripts.cmd
Porta serial 1 no console do Google Cloud. Para obter mais informações, consulte Visualizando a saída da porta serial .
Log de aplicativos do Visualizador de eventos do Windows.
IAP Desktop de uma estação de trabalho Windows. Para obter mais informações, consulte o repositório GoogleCloudPlatform/iap-desktop no GitHub.
Saiba como usar scripts de inicialização em VMs Linux .
Aprenda como adicionar um script de desligamento .
Saiba mais sobre metadados de VM .
Saiba como executar scripts de inicialização em VMs do Windows e ingressar em um domínio gerenciado do Microsoft AD .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Chaves de metadados para scripts de inicialização do Windows
Um script de inicialização é passado para uma VM a partir de um local especificado por uma chave de metadados. Uma chave de metadados especifica se o script de inicialização é armazenado localmente, no Cloud Storage ou transmitido diretamente para a VM. A chave de metadados usada também pode depender do tamanho ou do tipo de arquivo do script de inicialização.
A tabela a seguir mostra as chaves de metadados que você pode usar para scripts de inicialização do Windows e fornece informações sobre qual chave usar com base no local de armazenamento, tamanho e tipo de arquivo do script de inicialização.
Chave de metadados Usar para sysprep-specialize-script-ps1
Passando um script do PowerShell não assinado que é armazenado localmente ou adicionado diretamente e que tem até 256 KB de tamanho sysprep-specialize-script-cmd
Passando um script de shell de comando armazenado localmente ou adicionado diretamente e com tamanho de até 256 KB sysprep-specialize-script-bat
Passando um script de arquivo em lote armazenado localmente ou adicionado diretamente e com tamanho de até 256 KB sysprep-specialize-script-url
Transmitir um arquivo em lote, shell de comando, script do PowerShell assinado/não assinado ou executável armazenado no Cloud Storage e com tamanho superior a 256 KB windows-startup-script-ps1
Passando um script do PowerShell não assinado que é armazenado localmente ou adicionado diretamente e que tem até 256 KB de tamanho windows-startup-script-cmd
Passando um script de shell de comando armazenado localmente ou adicionado diretamente e com tamanho de até 256 KB windows-startup-script-bat
Passando um script de arquivo em lote armazenado localmente ou adicionado diretamente e com tamanho de até 256 KB windows-startup-script-url
Transmitir um arquivo em lote, shell de comando, script do PowerShell assinado/não assinado ou executável armazenado no Cloud Storage e com tamanho superior a 256 KB Para obter mais informações sobre a ordem de execução dos vários tipos de scripts de inicialização, consulte o repositório GoogleCloudPlatform/compute-image-windows no GitHub.
Ordem de execução dos scripts de inicialização do Windows
Você pode usar vários scripts de inicialização. Os scripts de inicialização armazenados localmente ou adicionados diretamente são executados antes dos scripts de inicialização armazenados no Cloud Storage. O tipo de arquivo que contém o script também afeta a ordem de execução. A tabela a seguir mostra, com base na chave de metadados, a ordem de execução dos scripts de inicialização do Windows.
Chave de metadados Ordem de execução sysprep-specialize-script-ps1
Primeiro durante a inicialização sysprep-specialize-script-cmd
Segundo durante a inicialização inicial sysprep-specialize-script-bat
Terceiro durante a inicialização inicial sysprep-specialize-script-url
Quarto durante a inicialização inicial windows-startup-script-ps1
Primeiro durante cada inicialização após a inicialização inicial windows-startup-script-cmd
Segundo durante cada inicialização após a inicialização inicial windows-startup-script-bat
Terceiro durante cada inicialização após a inicialização inicial windows-startup-script-url
Quarto durante cada inicialização após a inicialização inicial Passando um script de inicialização do Windows diretamente
Passe o conteúdo de um arquivo em lote, shell de comando ou script de inicialização não assinado do PowerShell diretamente para uma VM do Windows Server. Os procedimentos a seguir mostram como passar um script do PowerShell não assinado.
Console
Passando um script de inicialização do Windows diretamente para uma nova VM
Passando um script de inicialização do Windows diretamente para uma VM existente
Verificando o script de inicialização
Depois que a VM for iniciada, visualize o IP externo em um navegador da Web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (Bash)
Passando um script de inicialização do Windows diretamente para uma nova VM
Transmita o conteúdo de um script de inicialização diretamente para uma VM do Windows Server ao criá-lo usando o seguinte comando
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Passando um script de inicialização do Windows diretamente para uma VM existenteAdicione o script de inicialização diretamente a uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Verificando o script de inicializaçãoDepois que a VM for iniciada, visualize o IP externo em um navegador da Web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (prompt de comando)
Passando um script de inicialização do Windows diretamente para uma nova VM
Transmita o conteúdo de um script de inicialização diretamente para uma VM do Windows Server ao criá-lo usando o seguinte comando
gcloud compute instances create
:gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Passando um script de inicialização do Windows diretamente para uma VM existenteAdicione o script de inicialização diretamente a uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Verificando o script de inicializaçãoDepois que a VM for iniciada, visualize o IP externo em um navegador da Web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (PowerShell)
Passando um script de inicialização do Windows diretamente para uma nova VM
Transmita o conteúdo de um script de inicialização diretamente para uma VM do Windows Server ao criá-lo usando o seguinte comando
gcloud compute instances create
:gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Passando um script de inicialização do Windows diretamente para uma VM existenteAdicione o script de inicialização diretamente a uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata=windows-startup-script-ps1='Import-Module servermanager Install-WindowsFeature Web-Server -IncludeAllSubFeature "<html><body><p>Windows startup script added directly.</p></body></html>" > C:\inetpub\wwwroot\index.html'
Substitua VM_NAME pelo nome da VM.
Verificando o script de inicializaçãoDepois que a VM for iniciada, visualize o IP externo em um navegador da Web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
DESCANSAR
Passando um script de inicialização do Windows diretamente para uma nova VM
Passe o conteúdo de um script de inicialização diretamente para uma VM do Windows Server ao criá-lo usando o método
instances.insert
a seguir.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "networkInterfaces": [ { "accessConfigs": [ { "type": "ONE_TO_ONE_NAT" } ] } ], "metadata": { "items": [ { "key": "windows-startup-script-ps1", "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '<html><body><p>Windows startup script added directly.</p></body></html>' > C:\\inetpub\\wwwroot\\index.html" } ] }, ... }
Substitua o seguinte:
Passando um script de inicialização do Windows diretamente para uma VM existente
Verificando o script de inicialização
Depois que a VM for iniciada, visualize o IP externo em um navegador da Web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
Passando um script de inicialização do Windows a partir de um arquivo local
Você pode armazenar um script de inicialização em um arquivo em lote local, um script de shell de comando ou um script do PowerShell não assinado em sua estação de trabalho e transmitir o arquivo local como metadados para uma VM ao criá-lo. Você não pode usar arquivos armazenados em VMs como scripts de inicialização.
Antes de passar um script de inicialização do Windows de um arquivo local para uma VM, faça o seguinte:
gcloud (Bash)
Passando um script de inicialização do Windows de um arquivo local para uma nova VM
Crie uma VM e transmita o conteúdo de um arquivo local para ser usado como script de inicialização usando o comando
gcloud compute instances create
com a sinalização--metadata-from-file
:gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Transmita um script de inicialização para uma VM existente a partir de um arquivo local usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME \ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (prompt de comando)
Passando um script de inicialização do Windows de um arquivo local para uma nova VM
Crie uma VM e transmita o conteúdo de um arquivo local para ser usado como script de inicialização usando o comando
gcloud compute instances create
com a sinalização--metadata-from-file
:gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Transmita um script de inicialização para uma VM existente a partir de um arquivo local usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ^ --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (PowerShell)
Passando um script de inicialização do Windows de um arquivo local para uma nova VM
Crie uma VM e transmita o conteúdo de um arquivo local para ser usado como script de inicialização usando o comando
gcloud compute instances create
com a sinalização--metadata-from-file
:gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Transmita um script de inicialização para uma VM existente a partir de um arquivo local usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ` --metadata-from-file=windows-startup-script-ps1=FILE_PATH
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
Passando um script de inicialização do Windows do Cloud Storage
Você pode armazenar um script de inicialização como um arquivo em lote, um script de shell de comando, um script do PowerShell assinado/não assinado ou um executável no Cloud Storage e passá-lo para uma VM ao criá-lo. Depois de adicionar um script de inicialização ao Cloud Storage, você terá um URL que poderá usar para fazer referência ao script de inicialização ao criar uma VM.
Antes de adicionar um script de inicialização de um bucket do Cloud Storage, faça o seguinte:
Implicações de segurança
Console
Transmitir um script de inicialização armazenado no Cloud Storage para uma nova VM
Transmitir um script de inicialização armazenado no Cloud Storage para uma VM existente
Verificando o script de inicialização
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (Bash)
Transmitir um script de inicialização armazenado no Cloud Storage para uma nova VM
Passe um script de inicialização armazenado no Cloud Storage para uma VM do Windows Server usando o comando
gcloud compute instances create
a seguir. Para o valor da sinalização--scopes
, usestorage-ro
para que a VM possa acessar o Cloud Storage.gcloud compute instances create VM_NAME \ --image-project=windows-cloud \ --image-family=windows-2019-core \ --scopes=storage-ro \ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Transmita um script de inicialização armazenado no Cloud Storage para uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME \ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (prompt de comando)
Transmitir um script de inicialização armazenado no Cloud Storage para uma nova VM
Passe um script de inicialização armazenado no Cloud Storage para uma VM do Windows Server usando o comando
gcloud compute instances create
a seguir. Para o valor da sinalização--scopes
, usestorage-ro
para que a VM possa acessar o Cloud Storage.gcloud compute instances create VM_NAME ^ --image-project=windows-cloud ^ --image-family=windows-2019-core ^ --scopes=storage-ro ^ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Transmita um script de inicialização armazenado no Cloud Storage para uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ^ --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
gcloud (PowerShell)
Transmitir um script de inicialização armazenado no Cloud Storage para uma nova VM
Passe um script de inicialização armazenado no Cloud Storage para uma VM do Windows Server usando o comando
gcloud compute instances create
a seguir. Para o valor da sinalização--scopes
, usestorage-ro
para que a VM possa acessar o Cloud Storage.gcloud compute instances create VM_NAME ` --image-project=windows-cloud ` --image-family=windows-2019-core ` --scopes=storage-ro ` --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Transmita um script de inicialização armazenado no Cloud Storage para uma VM existente usando o seguinte comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME ` --metadata=windows-startup-script-url=CLOUD_STORAGE_URL
Substitua o seguinte:
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
DESCANSAR
Transmitir um script de inicialização armazenado no Cloud Storage para uma nova VM
Transmita um script de inicialização armazenado no Cloud Storage para uma VM do Windows Server usando o método
instances.insert
a seguir. Ao camposcopes
, adicionehttps://www.googleapis.com/auth/devstorage.read_only
para que a VM possa acessar o Cloud Storage.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "networkInterfaces": [ { "accessConfigs": [ { "type": "ONE_TO_ONE_NAT" } ] } ], "serviceAccounts": [ { "email": "default", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only" ] } ], "metadata": { "items": [ { "key": "windows-startup-script-url", "value": "CLOUD_STORAGE_URL" }, ... ] }, ... }
Substitua o seguinte:
Transmitir um script de inicialização armazenado no Cloud Storage para uma VM existente
Verificando o script de inicialização
Visualize o IP externo em um navegador da web para verificar se o script de inicialização criou o site. Talvez seja necessário aguardar cerca de 10 minutos para que o script de inicialização de amostra seja concluído.
Acessando metadados de um script de inicialização do Windows
Em um script de inicialização você pode acessar valores de metadados. Por exemplo, você pode usar o mesmo script para várias VMs e parametrizar cada script individualmente, passando diferentes valores de metadados para cada VM.
Para acessar um valor de metadados personalizado de um script de inicialização, faça o seguinte:
Executando novamente um script de inicialização do Windows
Execute novamente um script de inicialização em uma VM do Windows fazendo o seguinte:
Visualizando a saída de um script de inicialização do Windows
Visualize a saída de um script de inicialização do Windows Server usando qualquer um dos seguintes procedimentos e verificando eventos
GCEMetadataScripts
:O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-