Halaman ini menjelaskan cara menginstal lingkungan tamu secara manual di instance virtual machine (VM). Lingkungan tamu adalah kumpulan skrip, daemon, dan biner yang diperlukan instance untuk berjalan di Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Lingkungan tamu.
Pada sebagian besar kasus, jika Anda menggunakan image OS publik yang disediakan Google, lingkungan tamu akan otomatis disertakan. Untuk mengetahui daftar lengkap image OS yang otomatis menyertakan lingkungan tamu, lihat Detail sistem operasi.
Jika lingkungan tamu tidak diinstal atau sudah usang, instal atau update. Untuk mengidentifikasi skenario ini, lihat Kapan harus menginstal atau mengupdate lingkungan tamu.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
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
-
Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
- Set a default region and zone.
Kapan harus menginstal atau mengupdate lingkungan tamu
Pada umumnya, Anda tidak perlu menginstal atau mengupdate lingkungan tamu secara manual. Tinjau bagian berikut untuk mengetahui kapan Anda mungkin perlu menginstal atau mengupdate secara manual.
Memeriksa persyaratan penginstalan
Sebelum menginstal lingkungan tamu, gunakan prosedur Memvalidasi lingkungan tamu untuk memeriksa apakah lingkungan tamu berjalan di instance Anda. Jika lingkungan tamu tersedia di instance Anda, tetapi sudah tidak berlaku, perbarui lingkungan tamu.
Anda mungkin perlu menginstal lingkungan tamu dalam situasi berikut:
Image OS yang disediakan Google yang Anda perlukan tidak menginstal lingkungan tamu.
Anda mengimpor image kustom atau disk virtual ke Compute Engine dan memilih untuk mencegah penginstalan otomatis lingkungan tamu.
Saat mengimpor disk virtual atau image kustom, Anda dapat mengizinkan Compute Engine menginstal lingkungan tamu untuk Anda. Namun, jika Anda memilih untuk tidak menginstal lingkungan tamu selama proses impor, Anda harus menginstal lingkungan tamu secara manual.
Anda memigrasikan VM ke Compute Engine menggunakan Migrate to Virtual Machines.
Untuk menginstal lingkungan tamu, lihat Metode penginstalan.
Memeriksa persyaratan update
Anda mungkin perlu memperbarui lingkungan tamu dalam situasi berikut:
Anda memiliki instance yang menggunakan image OS yang lebih lama dari
v20141218
.Anda menggunakan image OS yang tidak memiliki pengoptimalan lingkungan tamu untuk disk SSD Lokal.
Untuk mengupdate lingkungan tamu, lihat Mengupdate lingkungan tamu.
Metode penginstalan
Anda dapat menginstal lingkungan tamu dengan beberapa cara. Pilih salah satu opsi berikut:
Alat impor. Alat impor adalah opsi yang direkomendasikan. Namun, alat impor menginstal lingkungan tamu dan juga melakukan update konfigurasi lainnya pada image, seperti mengonfigurasi jaringan, mengonfigurasi bootloader, dan menginstal Google Cloud CLI. Untuk mengetahui petunjuknya, lihat Membuat image dapat di-boot.
Alat impor mendukung berbagai sistem operasi dan versi. Untuk mengetahui informasi selengkapnya, lihat halaman detail sistem operasi.
Penginstalan manual. Pilih salah satu opsi berikut:
- Hubungkan ke instance menggunakan SSH atau RDP dan instal lingkungan tamu di tempat
- Clone boot disk Anda dan instal lingkungan tamu menggunakan skrip startup
Sistem operasi yang didukung
Anda dapat menginstal atau mengupdate lingkungan tamu di VM yang menggunakan versi image OS dalam siklus proses ketersediaan umum (GA) atau tahap siklus proses dukungan yang diperpanjang.
Untuk meninjau daftar versi image OS dan tahap siklus prosesnya di Compute Engine, lihat Detail sistem operasi.
Batasan
Anda tidak dapat menginstal atau menggunakan alat impor secara manual untuk menginstal lingkungan tamu untuk sistem operasi Fedora CoreOS dan Container-Optimized (COS). Untuk COS, Google merekomendasikan penggunaan image publik yang disediakan Google, yang mencakup lingkungan tamu sebagai komponen inti.
Menginstal lingkungan tamu
Untuk menginstal lingkungan tamu secara manual, pilih salah satu metode berikut, bergantung pada kemampuan Anda untuk terhubung ke instance:
- Jika Anda dapat terhubung ke instance menggunakan SSH atau RDP, instal lingkungan tamu di tempat.
- Jika Anda tidak dapat terhubung ke instance, instal lingkungan tamu dengan meng-clone boot disk-nya dan menggunakan skrip startup.
Menginstal lingkungan tamu di tempat
Gunakan metode ini untuk menginstal lingkungan tamu jika Anda dapat terhubung ke instance target menggunakan SSH. Jika Anda tidak dapat terhubung ke instance untuk menginstal lingkungan tamu, Anda dapat menginstal lingkungan tamu dengan meng-clone boot disk-nya dan menggunakan skrip startup.
Prosedur ini berguna untuk gambar yang diimpor jika Anda dapat terhubung menggunakan autentikasi berbasis sandi SSH. Anda juga dapat menggunakannya untuk menginstal ulang lingkungan tamu jika Anda memiliki setidaknya satu akun pengguna dengan SSH berbasis kunci yang berfungsi.
CentOS/RHEL/Rocky
- Pastikan versi sistem operasi Anda didukung.
Tentukan versi CentOS/RHEL/Rocky Linux. Kemudian, buat file repositori sumber,
/etc/yum.repos.d/google-cloud.repo
:eval $(grep VERSION_ID /etc/os-release) sudo tee /etc/yum.repos.d/google-cloud.repo << EOM [google-compute-engine] name=Google Compute Engine baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-el${VERSION_ID/.*}-x86_64-stable enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
Perbarui daftar paket:
sudo yum makecache sudo yum updateinfo
Instal paket lingkungan tamu:
sudo yum install -y google-compute-engine google-osconfig-agent
Mulai ulang instance. Kemudian, periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat dimulai kembali.
Hubungkan ke instance menggunakan SSH untuk memverifikasi. Untuk mendapatkan petunjuk mendetail, lihat menghubungkan ke instance menggunakan SSH.
Debian
- Pastikan versi sistem operasi Anda didukung.
Instal kunci GPG repositori publik:
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Tentukan nama distro Debian. Kemudian, buat file daftar sumber,
/etc/apt/sources.list.d/google-cloud.list
:eval $(grep VERSION_CODENAME /etc/os-release) sudo tee /etc/apt/sources.list.d/google-cloud.list << EOM deb http://packages.cloud.google.com/apt google-compute-engine-${VERSION_CODENAME}-stable main deb http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-${VERSION_CODENAME} main EOM
Perbarui daftar paket:
sudo apt update
Instal paket lingkungan tamu:
sudo apt install -y google-cloud-packages-archive-keyring sudo apt install -y google-compute-engine google-osconfig-agent
Mulai ulang instance. Kemudian, periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat dimulai kembali.
Hubungkan ke instance menggunakan SSH untuk memverifikasi. Untuk mendapatkan petunjuk mendetail, lihat menghubungkan ke instance menggunakan SSH.
Ubuntu
Pastikan versi sistem operasi Anda didukung.
Aktifkan repositori Universe. Canonical memublikasikan paket untuk lingkungan tamu ke repositori Universe.
sudo apt-add-repository universe
Perbarui daftar paket:
sudo apt update
Instal paket lingkungan tamu:
sudo apt install -y google-compute-engine google-osconfig-agent
Mulai ulang instance. Kemudian, periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat dimulai kembali.
Hubungkan ke instance menggunakan SSH untuk memverifikasi. Untuk mendapatkan petunjuk mendetail, lihat menghubungkan ke instance menggunakan SSH.
SLES
Pastikan versi sistem operasi Anda didukung.
Aktifkan Public Cloud Module
product=$(sudo SUSEConnect --list-extensions | grep -o "sle-module-public-cloud.*") [[ -n "$product" ]] && sudo SUSEConnect -p "$product"
Perbarui daftar paket:
sudo zypper refresh
Instal paket lingkungan tamu:
sudo zypper install -y google-guest-{agent,configs,oslogin} \ google-osconfig-agent sudo systemctl enable /usr/lib/systemd/system/google-*
Mulai ulang instance. Kemudian, periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat dimulai kembali.
Hubungkan ke instance menggunakan SSH untuk memverifikasi. Untuk mendapatkan petunjuk mendetail, lihat menghubungkan ke instance menggunakan SSH.
Windows
Sebelum memulai, pastikan versi sistem operasi Anda didukung.
Untuk menginstal lingkungan tamu Windows, jalankan perintah berikut di command prompt PowerShell versi 3.0 atau yang lebih tinggi dengan hak istimewa. Perintah
Invoke-WebRequest
memerlukan PowerShell versi 3.0 atau yang lebih tinggi.Download dan instal
GooGet
.[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest https://github.com/google/googet/releases/download/v2.18.3/googet.exe -OutFile $env:temp\googet.exe; & "$env:temp\googet.exe" -root C:\ProgramData\GooGet -noconfirm install -sources ` https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable googet; Remove-Item "$env:temp\googet.exe"
Selama penginstalan,
GooGet
menambahkan konten ke lingkungan sistem. Setelah penginstalan selesai, luncurkan konsol PowerShell baru. Atau, berikan jalur lengkap ke filegooget.exe
(C:\ProgramData\GooGet\googet.exe).Buka konsol baru dan tambahkan repositori
google-compute-engine-stable
.googet addrepo google-compute-engine-stable https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable
Instal paket lingkungan tamu Windows inti.
googet -noconfirm install google-compute-engine-windows ` google-compute-engine-sysprep google-compute-engine-metadata-scripts ` google-compute-engine-vss google-osconfig-agent
Instal paket lingkungan tamu Windows opsional.
googet -noconfirm install google-compute-engine-auto-updater
Menggunakan perintah
googet
.Untuk melihat paket yang tersedia, jalankan perintah
googet available
.Untuk melihat paket yang diinstal, jalankan perintah
googet installed
.Untuk mengupdate ke versi paket terbaru, jalankan perintah
googet update
.Untuk melihat perintah tambahan, jalankan
googet help
.
Meng-clone boot disk dan menggunakan skrip startup
Jika Anda tidak dapat terhubung ke instance untuk menginstal lingkungan tamu secara manual, instal lingkungan tamu menggunakan prosedur ini, yang mencakup langkah-langkah berikut yang dapat Anda selesaikan di konsol Google Cloud atau Cloud Shell.
Metode ini hanya berlaku untuk distribusi Linux. Untuk Windows, gunakan salah satu dari dua metode penginstalan lainnya.
Gunakan Cloud Shell untuk menjalankan prosedur ini. Untuk menjalankan prosedur ini jika Anda tidak menggunakan Cloud Shell, instal prosesor JSON command line
jq
. Pemroses ini memfilter output gcloud CLI.jq
sudah diinstal sebelumnya di Cloud Shell.CentOS/RHEL/Rocky
Pastikan versi sistem operasi Anda didukung.
Buat instance baru untuk berfungsi sebagai instance penyelamat. Beri nama instance ini rescue. Instance penyelamat ini tidak perlu menjalankan OS Linux yang sama dengan instance yang bermasalah. Contoh ini menggunakan Debian 9 di instance penyelamatan.
Hentikan instance yang bermasalah dan buat salinan boot disk-nya.
Tetapkan nama variabel untuk instance yang bermasalah. Variabel ini mempermudah mereferensikan instance pada langkah-langkah selanjutnya.
export PROB_INSTANCE_NAME=VM_NAME
Ganti VM_NAME dengan nama instance yang bermasalah.
Hentikan instance yang bermasalah.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Dapatkan nama boot disk untuk instance yang bermasalah.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Buat snapshot boot disk.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Membuat disk baru dari snapshot.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Hapus snapshot:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Pasang disk baru ke instance penyelamat dan pasang volume root untuk instance penyelamat. Karena prosedur ini hanya memasang satu disk tambahan, ID perangkat disk baru adalah /dev/sdb. CentOS/RHEL/Rocky Linux menggunakan volume pertama pada disk sebagai volume root secara default; oleh karena itu, ID volume harus berupa /dev/sdb1. Untuk konfigurasi kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamat menggunakan SSH:
gcloud compute ssh rescue
Jalankan langkah-langkah berikut pada instance penyelamatan.
Pasang volume root disk baru.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount -o nouuid "$DEV" "$NEW_DISK_MOUNT_POINT"
Buat skrip
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing Google guest environment for CentOS/RHEL/Rocky Linux ==" sleep 30 # Wait for network. echo "Determining CentOS/RHEL/Rocky Linux version..." eval $(grep VERSION_ID /etc/os-release) if [[ -z $VERSION_ID ]]; then echo "ERROR: Could not determine version of CentOS/RHEL/Rocky Linux." exit 1 fi echo "Updating repo file..." tee "/etc/yum.repos.d/google-cloud.repo" << EOM [google-compute-engine] name=Google Compute Engine baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-el${VERSION_ID/.*}-x86_64-stable enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM echo "Running yum makecache..." yum makecache echo "Running yum updateinfo..." yum updateinfo echo "Running yum install google-compute-engine..." yum install -y google-compute-engine rpm -q google-compute-engine if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi echo "Removing this rc.local script." rm /etc/rc.d/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.d/rc.local" fi echo "Restarting the instance..." reboot EOF
Cadangkan file
rc.local
yang ada, pindahkan skriprc.local
sementara ke tempatnya di disk yang di-mount, dan tetapkan izin agar skrip sementara dapat dieksekusi saat booting. Skrip sementara menggantikan skrip asli saat selesai melakukan booting. Untuk melakukannya, jalankan perintah berikut:if [ -f "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" ]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local"
Lepaskan volume root disk baru.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir \ "$NEW_DISK_MOUNT_POINT"
Keluar dari sesi SSH ke instance penyelamat.
Lepaskan disk baru dari instance penyelamat.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Buat instance untuk berfungsi sebagai pengganti. Saat membuat instance pengganti, tentukan disk baru sebagai boot disk. Anda dapat membuat instance pengganti menggunakan konsol Google Cloud :
Di konsol Google Cloud , buka halaman VM instances.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Ubah, lalu klik Disk yang Ada. Pilih disk baru.
Klik Buat. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti di-boot, skrip
rc.local
sementara dijalankan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk baris yang dikeluarkan oleh skriprc.local
sementara. Untuk melihat log, jalankan perintah berikut:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Ganti REPLACEMENT_VM_NAME dengan nama yang Anda tetapkan ke instance pengganti.
Instance pengganti akan otomatis di-reboot saat skrip
rc.local
sementara selesai. Selama reboot kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Setelah memverifikasi bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Debian
Pastikan versi sistem operasi Anda didukung
Buat instance baru untuk berfungsi sebagai instance penyelamat. Beri nama instance ini rescue. Instance penyelamat ini tidak perlu menjalankan OS Linux yang sama dengan instance yang bermasalah. Contoh ini menggunakan Debian 9 di instance penyelamatan.
Hentikan instance yang bermasalah dan buat salinan boot disk-nya.
Tetapkan nama variabel untuk instance yang bermasalah. Variabel ini mempermudah mereferensikan instance pada langkah-langkah selanjutnya.
export PROB_INSTANCE_NAME=VM_NAME
Ganti VM_NAME dengan nama instance yang bermasalah.
Hentikan instance yang bermasalah.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Dapatkan nama boot disk untuk instance yang bermasalah.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Buat snapshot boot disk.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Membuat disk baru dari snapshot.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Hapus snapshot:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Pasang disk baru ke instance penyelamat dan pasang volume root untuk instance penyelamat. Karena prosedur ini hanya memasang satu disk tambahan, ID perangkat disk baru adalah /dev/sdb. Debian menggunakan volume pertama pada disk sebagai volume root secara default; oleh karena itu, ID volume harus /dev/sdb1. Untuk konfigurasi kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamat menggunakan SSH:
gcloud compute ssh rescue
Jalankan langkah-langkah berikut pada instance penyelamatan.
Pasang volume root disk baru.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount "$DEV" "$NEW_DISK_MOUNT_POINT"
Buat skrip
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing Google guest environment for Debian ==" export DEBIAN_FRONTEND=noninteractive sleep 30 # Wait for network. echo "Determining Debian version..." eval $(grep VERSION_CODENAME /etc/os-release) if [[ -z $VERSION_CODENAME ]]; then echo "ERROR: Could not determine Debian version." exit 1 fi echo "Adding GPG key for Google cloud repo." curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - echo "Updating repo file..." tee "/etc/apt/sources.list.d/google-cloud.list" << EOM deb http://packages.cloud.google.com/apt google-compute-engine-${VERSION_CODENAME}-stable main deb http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-${VERSION_CODENAME} main EOM echo "Running apt update..." apt update echo "Installing packages..." for pkg in google-cloud-packages-archive-keyring google-compute-engine; do echo "Running apt install ${pkg}..." apt install -y ${pkg} if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi done echo "Removing this rc.local script." rm /etc/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.local" fi echo "Restarting the instance..." reboot EOF
Cadangkan file
rc.local
yang ada, pindahkan skriprc.local
sementara ke tempatnya di disk yang di-mount, dan tetapkan izin agar skrip sementara dapat dieksekusi saat booting. Skrip sementara menggantikan skrip asli saat selesai melakukan booting. Untuk melakukannya, jalankan perintah berikut:if [[ -f "$NEW_DISK_MOUNT_POINT/etc/rc.local" ]]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.local"
Lepaskan volume root disk baru.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Keluar dari sesi SSH ke instance penyelamat.
Lepaskan disk baru dari instance penyelamat.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Buat instance baru untuk berfungsi sebagai pengganti. Saat membuat instance pengganti, tentukan disk baru sebagai boot disk. Anda dapat membuat instance pengganti menggunakan konsol Google Cloud :
Di konsol Google Cloud , buka halaman VM instances.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Ubah, lalu klik Disk yang Ada. Pilih disk baru.
Klik Buat. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti di-boot, skrip
rc.local
sementara dijalankan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk baris yang dikeluarkan oleh skriprc.local
sementara. Untuk melihat log, jalankan perintah berikut:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Ganti REPLACEMENT_VM_NAME dengan nama yang Anda tetapkan ke instance pengganti.
Instance pengganti akan otomatis di-reboot saat skrip
rc.local
sementara selesai. Selama reboot kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Setelah memverifikasi bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Ubuntu
Pastikan versi sistem operasi Anda didukung
Buat instance baru untuk berfungsi sebagai instance penyelamat. Beri nama instance ini rescue. Instance penyelamat ini tidak perlu menjalankan OS Linux yang sama dengan instance yang bermasalah. Contoh ini menggunakan Debian 9 di instance penyelamatan.
Hentikan instance yang bermasalah dan buat salinan boot disk-nya.
Tetapkan nama variabel untuk instance yang bermasalah. Variabel ini menyederhanakan referensi instance pada langkah-langkah selanjutnya.
export PROB_INSTANCE_NAME=VM_NAME
Ganti VM_NAME dengan nama instance yang bermasalah.
Hentikan instance yang bermasalah.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Dapatkan nama boot disk untuk instance yang bermasalah.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Buat snapshot boot disk.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Membuat disk baru dari snapshot.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Hapus snapshot:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Pasang disk baru ke instance penyelamat dan pasang volume root untuk instance penyelamat. Karena prosedur ini hanya memasang satu disk tambahan, ID perangkat disk baru adalah /dev/sdb. Ubuntu memberi label volume root-nya 1 secara default; oleh karena itu, ID volume harus berupa /dev/sdb1. Untuk konfigurasi kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamat menggunakan SSH:
gcloud compute ssh rescue
Jalankan langkah-langkah berikut pada instance penyelamatan.
Pasang volume root disk baru.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount "$DEV" "$NEW_DISK_MOUNT_POINT"
Buat skrip
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing a Linux guest environment for Ubuntu ==" sleep 30 # Wait for network. echo "Running apt update..." apt update echo "Installing packages..." echo "Running apt install google-compute-engine..." apt install -y google-compute-engine if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi echo "Removing this rc.local script." rm /etc/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.local" fi echo "Restarting the instance..." reboot EOF
Cadangkan file
rc.local
yang ada, pindahkan skriprc.local
sementara ke tempatnya di disk yang di-mount, dan tetapkan izin agar skrip sementara dapat dieksekusi saat booting. Skrip sementara menggantikan skrip asli saat selesai melakukan booting. Untuk melakukannya, jalankan perintah berikut:if [[ -f "$NEW_DISK_MOUNT_POINT/etc/rc.local" ]]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.local"
Lepaskan volume root disk baru.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Keluar dari sesi SSH ke instance penyelamat.
Lepaskan disk baru dari instance penyelamat.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Buat instance baru untuk berfungsi sebagai pengganti. Saat membuat instance pengganti, tentukan disk baru sebagai boot disk. Anda dapat membuat instance pengganti menggunakan konsol Google Cloud :
Di konsol Google Cloud , buka halaman VM instances.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Ubah, lalu klik Disk yang Ada. Pilih disk baru.
Klik Buat. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti di-boot, skrip
rc.local
sementara dijalankan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk baris yang dikeluarkan oleh skriprc.local
sementara. Untuk melihat log, jalankan perintah berikut:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Ganti REPLACEMENT_VM_NAME dengan nama yang Anda tetapkan ke instance pengganti.
Instance pengganti akan otomatis di-reboot saat skrip
rc.local
sementara selesai. Selama reboot kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Setelah memverifikasi bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Memperbarui lingkungan tamu
Jika Anda menerima pesan bahwa lingkungan tamu sudah usang, update paket untuk sistem operasi Anda sebagai berikut:
CentOS/RHEL/Rocky
Untuk mengupdate sistem operasi CentOS, RHEL, dan Rocky Linux, jalankan perintah berikut:
sudo yum makecache sudo yum install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
Debian
Untuk mengupdate sistem operasi Debian, jalankan perintah berikut:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
Ubuntu
Untuk mengupdate sistem operasi Ubuntu, jalankan perintah berikut:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
SLES
Untuk mengupdate sistem operasi SLES, jalankan perintah berikut:
sudo zypper refresh sudo zypper install google-guest-{agent,configs,oslogin} \ google-osconfig-agent
Windows
Untuk mengupdate sistem operasi Windows, jalankan perintah berikut:
googet update
Memvalidasi lingkungan tamu
Anda dapat memeriksa apakah lingkungan tamu diinstal dengan memeriksa log sistem yang dikeluarkan ke konsol saat instance di-boot, atau dengan mencantumkan paket yang diinstal saat terhubung ke instance.
Melihat log konsol yang diharapkan untuk lingkungan tamu
Tabel ini merangkum output yang diharapkan untuk log konsol yang dikeluarkan oleh instance dengan lingkungan tamu yang berfungsi saat dimulai.
Sistem operasi Pengelolaan layanan Output yang diharapkan CentOS/RHEL/Rocky Linux
Debian
Ubuntu
SLES
Container-Optimized OS 89 dan yang lebih barusystemd google_guest_agent: GCE Agent Started (version YYYYMMDD.NN) google_metadata_script_runner: Starting startup scripts (version YYYYMMDD.NN) OSConfigAgent Info: OSConfig Agent (version YYYYMMDD.NN)
Container-Optimized OS 85 dan yang lebih lama systemd Started Google Compute Engine Accounts Daemon Started Google Compute Engine Network Daemon Started Google Compute Engine Clock Skew Daemon Started Google Compute Engine Instance Setup Started Google Compute Engine Startup Scripts Started Google Compute Engine Shutdown Scripts
Windows GCEGuestAgent: GCE Agent Started (version YYYYMMDD.NN) GCEMetadataScripts: Starting startup scripts (version YYYYMMDD.NN) OSConfigAgent Info: OSConfig Agent (version YYYYMMDD.NN)
Untuk melihat log konsol instance, ikuti langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman VM instances.
- Pilih instance yang perlu Anda periksa.
- Mulai ulang atau reset instance.
- Di bagian Logs, klik Serial port 1 (console).
- Cari output yang diharapkan dalam tabel yang mendahului langkah-langkah ini.
gcloud
- Mulai ulang atau reset instance.
Gunakan subperintah
gcloud compute instances get-serial-port-output
untuk terhubung menggunakan Google Cloud CLI. Contoh:gcloud compute instances get-serial-port-output VM_NAME
Ganti VM_NAME dengan nama instance yang perlu Anda periksa.
Cari output yang diharapkan dalam tabel yang mendahului langkah-langkah ini.
Melihat layanan yang dimuat menurut versi sistem operasi
Tabel ini merangkum layanan yang harus dimuat di instance dengan lingkungan tamu yang berfungsi. Anda harus menjalankan perintah untuk mencantumkan layanan setelah terhubung ke instance. Oleh karena itu, Anda hanya dapat melakukan pemeriksaan ini jika Anda memiliki akses ke instance.
Sistem operasi Perintah untuk mencantumkan layanan Output yang diharapkan CentOS/RHEL/Rocky Linux
Debiansudo systemctl list-unit-files \ | grep google | grep enabled
google-disk-expand.service enabled google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
Ubuntu sudo systemctl list-unit-files \ | grep google | grep enabled
google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
Container-Optimized OS sudo systemctl list-unit-files \ | grep google
var-lib-google.mount disabled google-guest-agent.service disabled google-osconfig-agent.service disabled google-osconfig-init.service disabled google-oslogin-cache.service static google-shutdown-scripts.service disabled google-startup-scripts.service disabled var-lib-google-remount.service static google-oslogin-cache.timer disabled
SLES 12+ sudo systemctl list-unit-files \ | grep google | grep enabled
google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
Windows Get-Service GCEAgent Get-ScheduledTask GCEStartup
Running GCEAgent GCEAgent \ GCEStartup Ready
Melihat paket yang diinstal menurut versi sistem operasi
Tabel ini merangkum paket yang harus diinstal pada instance dengan lingkungan tamu yang berfungsi. Anda harus menjalankan perintah untuk mencantumkan paket yang diinstal setelah terhubung ke instance. Oleh karena itu, Anda hanya dapat melakukan pemeriksaan ini jika Anda memiliki akses ke instance.
Untuk mengetahui informasi selengkapnya tentang paket ini, lihat Komponen lingkungan tamu.
Sistem operasi Perintah untuk mencantumkan paket Output yang diharapkan CentOS/RHEL/Rocky Linux rpm -qa --queryformat '%{NAME}\n' \ | grep -iE 'google|gce'
google-osconfig-agent google-compute-engine-oslogin google-guest-agent gce-disk-expand google-cloud-sdk google-compute-engine
Debian apt list --installed \ | grep -i google
gce-disk-expand google-cloud-packages-archive-keyring google-cloud-sdk google-compute-engine-oslogin google-compute-engine google-guest-agent google-osconfig-agent
Ubuntu apt list --installed \ | grep -i google
google-compute-engine-oslogin google-compute-engine google-guest-agent google-osconfig-agent
SUSE (SLES) rpm -qa --queryformat '%{NAME}\n' \ | grep -i google
google-guest-configs google-osconfig-agent google-guest-oslogin google-guest-agent
Windows googet installed
certgen googet google-compute-engine-auto-updater google-compute-engine-driver-gga google-compute-engine-driver-netkvm google-compute-engine-driver-pvpanic google-compute-engine-driver-vioscsi google-compute-engine-metadata-scripts google-compute-engine-powershell google-compute-engine-sysprep google-compute-engine-vss google-compute-engine-windows google-osconfig-agent
Langkah berikutnya
- Baca tips pemecahan masalah.
- Pelajari lebih lanjut cara menerapkan metadata.
- Pelajari kunci SSH.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-09-10 UTC.
-