Um script de arranque executa tarefas durante o processo de arranque de uma máquina virtual (VM). Esta página fornece os passos a seguir para usar scripts de arranque em instâncias de VM.
Antes de começar
Para usar os comandos da gdcloud
interface de linhas de comando (CLI), certifique-se de que transferiu, instalou e configurou a CLI gdcloud
.
Todos os comandos para a nuvem distribuída usam a CLI gdcloud
ou kubectl
e requerem um ambiente de sistema operativo (SO).
Obtenha o caminho do ficheiro kubeconfig
Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para o ficheiro kubeconfig do servidor da API de gestão para substituir
MANAGEMENT_API_SERVER
nestas instruções.
Peça autorizações e acesso
Para realizar as tarefas indicadas nesta página, tem de ter a função de administrador da máquina virtual do projeto. Siga os passos para validar o seu acesso ou peça ao administrador de IAM do projeto que lhe atribua a função de administrador de máquinas virtuais do projeto (project-vm-admin
) no espaço de nomes do projeto onde a VM reside.
Formate os nomes dos scripts de arranque do Windows
Os scripts de arranque para VMs do Windows têm de seguir um formato de nomenclatura específico com o nome do script e a extensão do ficheiro anexados, separados por travessões. Por exemplo,
create-directory-ps1
, com create-directory
como nome do script e ps1
como extensão do ficheiro. Os formatos incorretos incluem a utilização de pontos em vez de traços e a omissão da extensão do ficheiro, como create-directory.ps1
e create-directory
.
Seguem-se as extensões de ficheiros a usar para scripts de arranque do Windows:
ps1
: Contém comandos do PowerShell.cmd
: contém comandos de lote para o intérprete de linha de comandos.bat
: contém comandos em lote.
Execute scripts de arranque do Windows por ordem
Pode usar vários scripts de arranque. O tipo de ficheiro que contém o script afeta a ordem de execução de cada script. A tabela seguinte mostra a ordem de execução dos scripts de arranque do Windows:
Script do Windows | Ordem de execução |
---|---|
Script do PowerShell | Primeiro em cada arranque. |
Script de lote | Segundos em cada arranque. |
Script de comando | Terceiro em cada arranque. |
Se dois scripts de arranque tiverem a mesma extensão de ficheiro, os scripts são executados com base na extensão de ficheiro e no nome por ordem alfabética. Por exemplo, se os nomes dos scripts de inicialização forem alpha-script-ps1
e beta-script-ps1
, o script alpha-script-ps1
é executado antes do script beta-script-ps1
.
A especificação de VM de exemplo seguinte mostra a ordem do script de arranque do Windows e a estrutura no campo startupScripts
:
...
startupScripts:
- name: create-directory-ps1
script: |-
New-Item -ItemType Directory -Path C:\ -Name NewDir
Get-ChildItem -Path C:\
- name: hello-world-bat
script: |-
ECHO "Hello World!"
- name: list-directories-cmd
script: |-
dir C:\Windows > files.txt
...
Transmita um script de arranque
O Distributed Cloud executa scripts de arranque por ordem alfabética, com base no nome de cada script de arranque.
A tabela seguinte mostra o formato do guião a usar com base no tamanho do guião:
Tamanho do script | Formato de script |
---|---|
Scripts até 2048 bytes | Limpar texto |
Scripts com mais de 2048 bytes | Segredo do Kubernetes |
Defina um script de arranque
Para usar um script de arranque, tem de adicionar o campo startupScripts
ao campo spec
da VM. Neste campo, pode especificar vários scripts de arranque como texto simples ou como um segredo do Kubernetes.
O exemplo seguinte especifica os scripts de arranque como texto não cifrado e um segredo do Kubernetes:
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
name: "vm-test"
spec:
...
startupScripts:
- name: create-directory-ps1
script: |-
New-Item -ItemType Directory -Path C:\ -Name NewDir
Get-ChildItem -Path C:\
- name: list-directories-cmd
scriptSecretRef:
name: list-directories
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: list-directories
data:
script:
ZGlyIEM6XFdpbmRvd3MgID4gZmlsZXMudHh0Cg==
Reveja as seguintes considerações:
- O script de arranque é executado sempre que o sistema é iniciado.
- O script de arranque tem privilégios de raiz predefinidos.
- No segredo do Kubernetes, o nome do
scriptSecretRef
na VMspec
tem de corresponder ao campometadata.name
. - No secret do Kubernetes, especifique o conteúdo do guião de arranque adicionando uma chave
script
ao campodata
.
Crie uma nova VM com um script de arranque do Windows
Para criar uma VM com um script de arranque do Windows, siga os passos em Crie uma nova VM com um script de arranque.