Skrip startup menjalankan tugas selama proses startup untuk virtual machine (VM). Halaman ini memberikan langkah-langkah yang harus diikuti untuk menggunakan skrip startup di instance VM.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi CLI gdcloud.
Semua perintah untuk appliance air-gapped GDC menggunakan CLI gdcloud atau
kubectl, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
- Temukan nama server Management API, atau tanyakan kepada Administrator Platform (PA) Anda nama servernya. 
- Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya. 
- Gunakan jalur untuk menggantikan - MANAGEMENT_API_SERVER{"</var>"}}dalam petunjuk ini.
Meminta izin dan akses
Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project VirtualMachine Admin. Ikuti langkah-langkah untuk
memverifikasi
akses Anda atau meminta Admin IAM Project
menetapkan
peran Project VirtualMachine Admin (project-vm-admin) kepada Anda di namespace
project tempat VM berada.
Memformat nama skrip startup Windows
Skrip startup untuk VM Windows harus mengikuti format penamaan tertentu dengan nama skrip dan ekstensi file yang ditambahkan, dipisahkan oleh tanda hubung. Misalnya,
create-directory-ps1, dengan create-directory sebagai nama skrip dan ps1
sebagai ekstensi file. Format yang salah mencakup penggunaan titik sebagai pengganti
tanda hubung dan tidak menyertakan ekstensi file, seperti create-directory.ps1 dan
create-directory.
Berikut menunjukkan ekstensi file yang akan digunakan untuk skrip startup Windows:
- ps1: Berisi perintah PowerShell.
- cmd: Berisi perintah batch untuk penafsir Command Prompt.
- bat: Berisi perintah batch.
Menjalankan skrip startup Windows secara berurutan
Anda dapat menggunakan beberapa skrip startup. Jenis file yang berisi skrip memengaruhi urutan menjalankan setiap skrip. Tabel berikut menunjukkan urutan menjalankan skrip startup Windows:
| Skrip Windows | Perintah yang akan dijalankan | 
|---|---|
| Skrip Powershell | Pertama pada setiap booting. | 
| Skrip batch | Kedua pada setiap booting. | 
| Skrip perintah | Ketiga pada setiap booting. | 
Jika dua skrip startup memiliki ekstensi file yang sama, skrip akan dijalankan berdasarkan ekstensi dan nama file dalam urutan abjad. Misalnya, jika nama skrip
startup Anda adalah alpha-script-ps1 dan beta-script-ps1,
alpha-script-ps1 akan berjalan sebelum beta-script-ps1.
Contoh spesifikasi VM berikut menunjukkan urutan dan struktur skrip startup Windows di kolom 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
...
Meneruskan skrip startup
Perangkat GDC yang terisolasi dari internet menjalankan skrip startup dalam urutan abjad, berdasarkan nama setiap skrip startup.
Tabel berikut menunjukkan format skrip yang akan digunakan berdasarkan ukuran skrip Anda:
| Ukuran skrip | Format skrip | 
|---|---|
| Skrip hingga 2048 byte | Hapus teks | 
| Skrip yang lebih besar dari 2048 byte | Secret Kubernetes | 
Menentukan skrip startup
Untuk menggunakan skrip startup, Anda harus menambahkan kolom startupScripts ke kolom spec
VM. Dalam kolom ini, Anda dapat menentukan beberapa skrip startup sebagai teks
yang jelas atau sebagai secret Kubernetes.
Contoh berikut menentukan skrip startup sebagai teks yang jelas dan secret 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==
Tinjau pertimbangan berikut:
- Skrip startup berjalan pada setiap proses booting.
- Skrip startup memiliki hak istimewa root default.
- Dalam secret Kubernetes, nama scriptSecretRefdispecVM harus cocok dengan kolommetadata.name.
- Di secret Kubernetes, tentukan konten skrip startup dengan menambahkan kunci
scriptke kolomdata.
Membuat VM baru dengan skrip startup Windows
Untuk membuat VM dengan skrip startup Windows, ikuti langkah-langkah di bagian Membuat VM baru dengan skrip startup.