Skrip startup menjalankan tugas selama proses startup untuk virtual machine (VM). Dokumen ini memberikan langkah-langkah yang harus diikuti untuk menggunakan skrip startup di instance VM.
Skrip startup adalah alat otomatisasi yang menjalankan tugas selama proses startup VM. Gunakan skrip startup untuk mengotomatiskan tugas konfigurasi dan deployment VM pada instance baru atau yang sudah ada, sehingga menghemat waktu dan mengurangi upaya konfigurasi manual.
Dokumen ini ditujukan untuk developer dalam grup operator aplikasi atau administrator platform yang ingin menggunakan skrip startup untuk VM di lingkungan Distributed Cloud. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal, dan mengonfigurasi gdcloud CLI.
Semua perintah untuk Distributed Cloud menggunakan gdcloud atau kubectl CLI, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig server Management API untuk mengganti
MANAGEMENT_API_SERVERdalam petunjuk ini.
Meminta peran IAM
Untuk menggunakan skrip startup untuk VM, hubungi Admin IAM Project Anda untuk meminta peran berikut di project Anda:
Admin Project Virtual Machine (
project-vm-admin): membuat, mengubah, mencantumkan, dan menghapus VM di namespace project.Admin Secret (
secret-admin): mendapatkan, mencantumkan, membuat, memperbarui, menghapus, menambal, dan memantau secret Kubernetes di namespace project. Gunakan peran ini untuk menentukan secret skrip startup. Anda tidak memerlukan peran ini untuk menentukan skrip startup teks biasa.
Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.
Memformat nama skrip startup Windows
Skrip startup untuk VM Windows harus mengikuti format penamaan tertentu dengan nama skrip dan ekstensi file yang ditambahkan, dipisahkan dengan 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 penghapusan ekstensi file, seperti create-directory.ps1 dan
create-directory.
Berikut ekstensi file yang akan digunakan untuk skrip startup Windows:
ps1: Berisi perintah PowerShell.cmd: Berisi perintah batch untuk interpreter Command Prompt.bat: Berisi perintah batch.
Menjalankan skrip startup Windows secara berurutan
Anda dapat menggunakan beberapa skrip startup. Jenis file yang berisi skrip akan memengaruhi urutan menjalankan setiap skrip. Tabel berikut menunjukkan urutan menjalankan skrip startup Windows:
| Skrip Windows | Urutan untuk 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 file dan nama 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.
Spesifikasi VM contoh 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
# …
Mengirimkan skrip startup
Distributed Cloud 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 | Teks biasa |
| Skrip lebih 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 biasa atau sebagai secret Kubernetes.
Contoh berikut menentukan skrip startup sebagai teks biasa 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 booting.
- Skrip startup memiliki hak istimewa root default.
- Dalam secret Kubernetes, nama
scriptSecretRefdispecVM harus cocok dengan kolommetadata.name. - Dalam 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 Membuat VM baru dengan skrip startup.