Um script de arranque executa tarefas durante o processo de arranque de uma máquina virtual (VM). Este documento fornece os passos a seguir para usar scripts de arranque em instâncias de VM.
Um script de arranque é uma ferramenta de automatização que executa tarefas durante o processo de arranque da VM. Use scripts de arranque para automatizar tarefas de configuração e implementação de VMs em instâncias novas ou existentes, poupando tempo e reduzindo o esforço de configuração manual.
Este documento destina-se a programadores em grupos de administrador da plataforma ou operador de aplicações que querem usar scripts de arranque para VMs num ambiente de nuvem distribuída. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
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_SERVERnestas instruções.
Peça funções de IAM
Para usar scripts de arranque para uma VM, contacte o administrador do IAM do projeto para pedir as seguintes funções no seu projeto:
Administrador do projeto da máquina virtual (
project-vm-admin): criar, modificar, listar e eliminar VMs no espaço de nomes do projeto.Administrador de segredos (
secret-admin): obter, listar, criar, atualizar, eliminar, aplicar patch e monitorizar segredos do Kubernetes no espaço de nomes do projeto. Use esta função para especificar segredos de scripts de arranque. Não precisa desta função para especificar scripts de início em texto simples.
Todas as funções de VMs têm de ser associadas ao espaço de nomes do projeto onde a VM reside. Siga os passos para validar o seu acesso.
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 traços. 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
travessões 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 em 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 | Segundo em cada arranque. |
| Script de comandos | 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 da 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 simples 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
scriptSecretRefna VMspectem de corresponder ao campometadata.name. - No secret do Kubernetes, especifique o conteúdo do guião de arranque adicionando uma chave
scriptao 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.