Halaman ini menjelaskan cara menginstal lingkungan tamu secara manual untuk instance virtual machine (VM) yang menjalankan image kustom di Compute Engine.
Pada umumnya, jika menggunakan VM yang dibuat menggunakan image publik yang disediakan Google, Anda tidak perlu menginstal lingkungan tamu. Untuk mengetahui informasi tentang kapan harus menggunakan lingkungan tamu, lihat Kapan harus menginstal atau mengupdate lingkungan tamu secara manual.
Sebelum menginstal lingkungan tamu secara manual, gunakan prosedur Memvalidasi lingkungan tamu untuk memeriksa apakah lingkungan tamu berjalan di VM Anda. Jika lingkungan tamu tersedia di VM Anda, tetapi sudah usang, update lingkungan tamu.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Alat impor. Opsi ini disarankan. Namun, perlu diingat bahwa alat impor tidak hanya menginstal lingkungan tamu, tetapi juga melakukan update konfigurasi lainnya pada image seperti mengonfigurasi jaringan, mengonfigurasi bootloader, dan menginstal Google Cloud CLI. Untuk mengetahui petunjuk cara menggunakan alat impor, tinjau Membuat image yang dapat di-booting.
Alat impor mendukung berbagai sistem operasi dan versi. Untuk mengetahui informasi selengkapnya, lihat detail sistem operasi.
Penginstalan manual. Pilih salah satu opsi berikut:
- Hubungkan ke instance menggunakan SSH atau RDP dan instal lingkungan tamu di tempat
- Clone disk booting dan instal lingkungan tamu menggunakan skrip startup
- Pastikan versi sistem operasi Anda didukung.
Tentukan versi CentOS/RHEL/Rocky Linux, dan buat file repo 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 dan periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat mulai kembali.
Pastikan Anda dapat terhubung ke instance menggunakan SSH.
- Pastikan versi sistem operasi Anda didukung.
Instal kunci GPG repo publik:
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Tentukan nama distro Debian, dan 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 dan periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat mulai kembali.
Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Pastikan versi sistem operasi Anda didukung.
Aktifkan repositori Universe. Canonical memublikasikan paket untuk lingkungan tamunya 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 dan periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat mulai kembali.
Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Pastikan versi sistem operasi Anda didukung.
Aktifkan Modul Cloud Publik.
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 dan periksa log konsolnya untuk memastikan lingkungan tamu dimuat saat mulai kembali.
Pastikan Anda dapat terhubung ke instance menggunakan SSH.
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
.Pastikan versi sistem operasi Anda didukung.
Buat instance baru untuk berfungsi sebagai instance penyelamatan. Beri nama instance ini rescue. Instance penyelamatan ini tidak perlu menjalankan OS Linux yang sama dengan instance yang bermasalah. Contoh ini menggunakan Debian 9 pada instance penyelamatan.
Hentikan instance yang bermasalah dan buat salinan boot disk-nya.
Tetapkan nama variabel untuk instance yang bermasalah. Hal ini memudahkan Anda untuk mereferensikan instance di langkah berikutnya.
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 disk booting 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 penyelamatan dan pasang volume root untuk instance penyelamatan. 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, sehingga ID volume harus berupa /dev/sdb1. Untuk kasus kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamatan menggunakan SSH:
gcloud compute ssh rescue
Jalankan langkah-langkah berikut di 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
Pindahkan skrip
rc.local
ke volume root disk baru dan tetapkan izin. Pindahkan skriprc.local
yang ada. Skrip sementara akan menggantikannya saat selesai.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 penyelamatan.
Lepaskan disk baru dari instance penyelamatan.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Buat instance untuk berfungsi sebagai pengganti. Saat Anda membuat instance pengganti, tentukan disk baru sebagai boot disk. Anda dapat membuat instance pengganti menggunakan Konsol Google Cloud:
Di konsol Google Cloud, buka halaman Instance VM.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Change, lalu klik Existing Disks. Pilih disk baru.
Klik Create. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti dimulai, skrip
rc.local
sementara akan berjalan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk menemukan 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 untuk instance pengganti.
Instance pengganti juga otomatis dimulai ulang saat skrip
rc.local
sementara selesai. Selama booting ulang kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Jika yakin bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Pastikan versi sistem operasi Anda didukung
Buat instance baru untuk berfungsi sebagai instance penyelamatan. Beri nama instance ini rescue. Instance penyelamatan 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. Hal ini memudahkan untuk mereferensikan instance di langkah berikutnya.
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 disk booting 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 penyelamatan dan pasang volume root untuk instance penyelamatan. 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, sehingga ID volume harus berupa /dev/sdb1. Untuk kasus kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamatan menggunakan SSH:
gcloud compute ssh rescue
Jalankan langkah-langkah berikut di 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
Pindahkan skrip
rc.local
ke volume root disk baru dan tetapkan izin. Pindahkan skriprc.local
yang ada. Skrip sementara akan menggantikannya saat selesai.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 penyelamatan.
Lepaskan disk baru dari instance penyelamatan.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Buat instance baru untuk berfungsi sebagai pengganti. Saat Anda membuat instance pengganti, tentukan disk baru sebagai boot disk. Anda dapat membuat instance pengganti menggunakan Konsol Google Cloud:
Di konsol Google Cloud, buka halaman Instance VM.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Change, lalu klik Existing Disks. Pilih disk baru.
Klik Create. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti dimulai, skrip
rc.local
sementara akan berjalan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk menemukan 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 untuk instance pengganti.
Instance pengganti juga otomatis dimulai ulang saat skrip
rc.local
sementara selesai. Selama booting ulang kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Jika yakin bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Pastikan versi sistem operasi Anda didukung
Buat instance baru untuk berfungsi sebagai instance penyelamatan. Beri nama instance ini rescue. Instance penyelamatan 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. Hal ini memudahkan untuk mereferensikan instance di langkah berikutnya.
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 disk booting 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 penyelamatan dan pasang volume root untuk instance penyelamatan. Karena prosedur ini hanya memasang satu disk tambahan, ID perangkat disk baru adalah /dev/sdb. Ubuntu memberi label volume rootnya 1 secara default, sehingga ID volume harus berupa /dev/sdb1. Untuk kasus kustom, gunakan
lsblk
untuk menentukan ID volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Hubungkan ke instance penyelamatan 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
Pindahkan skrip
rc.local
ke volume root disk baru dan tetapkan izin. Pindahkan skriprc.local
yang ada. Skrip sementara akan menggantikannya saat selesai.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 penyelamatan.
Lepaskan disk baru dari instance penyelamatan.
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 Instance VM.
Klik instance yang bermasalah, lalu klik Buat yang serupa.
Tentukan nama untuk instance pengganti. Di bagian Boot disk, klik Change, lalu klik Existing Disks. Pilih disk baru.
Klik Create. Instance pengganti akan otomatis dimulai setelah dibuat.
Saat instance pengganti dimulai, skrip
rc.local
sementara akan berjalan dan menginstal lingkungan tamu. Untuk melihat progres skrip ini, periksa log konsol untuk menemukan 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 untuk instance pengganti.
Instance pengganti juga otomatis dimulai ulang saat skrip
rc.local
sementara selesai. Selama booting ulang kedua, Anda dapat memeriksa log konsol untuk memastikan lingkungan tamu dimuat.Pastikan Anda dapat terhubung ke instance menggunakan SSH.
Jika yakin bahwa instance pengganti berfungsi, Anda dapat menghentikan atau menghapus instance yang bermasalah.
Di konsol Google Cloud, buka halaman Instance VM.
- Klik instance yang perlu Anda periksa.
- Mulai ulang atau reset instance.
- Di bagian Logs, klik Serial port 1 (console).
- Telusuri output yang diharapkan yang mereferensikan tabel di atas.
- 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.
Telusuri output yang diharapkan yang mereferensikan tabel di atas.
- Baca tips pemecahan masalah.
- Pelajari lebih lanjut cara menerapkan metadata.
- Pelajari kunci SSH.
Metode penginstalan
Ada beberapa cara untuk menginstal lingkungan tamu. Pilih salah satu opsi berikut:
Sistem operasi yang didukung
Anda dapat menginstal lingkungan tamu secara manual di VM yang menggunakan versi image OS yang berada 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 Fedora CoreOS dan sistem operasi yang dioptimalkan untuk Container. Jika Anda memerlukan salah satu sistem operasi ini, sebaiknya gunakan image publik, karena lingkungan tamu disertakan sebagai bagian inti dari semua image publik.
Menginstal lingkungan tamu
Menginstal lingkungan tamu di tempat
Gunakan metode ini untuk menginstal lingkungan tamu jika Anda dapat terhubung ke instance target menggunakan SSH. Jika 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 image yang diimpor jika Anda dapat terhubung menggunakan autentikasi berbasis sandi SSH. File ini juga dapat digunakan untuk menginstal ulang lingkungan tamu jika Anda memiliki setidaknya satu akun pengguna dengan SSH berbasis kunci yang berfungsi.
CentOS/RHEL/Rocky
Debian
Ubuntu
SLES
Windows
Sebelum memulai, pastikan versi sistem operasi Anda didukung.
Untuk menginstal lingkungan tamu Windows, jalankan perintah berikut di prompt PowerShell versi 3.0 atau yang lebih tinggi yang telah ditingkatkan. Perintah
Invoke-WebRequest
dalam petunjuk di bawah memerlukan versi PowerShell yang lebih tinggi dari 3.0.Meng-clone disk booting 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 diselesaikan di konsol Google Cloud atau Cloud Shell.
Metode ini hanya menunjukkan prosedur untuk distribusi Linux. Untuk Windows, gunakan salah satu dari dua metode penginstalan lainnya.
Gunakan Cloud Shell untuk menjalankan prosedur ini. Jika Anda tidak menggunakan Cloud Shell, instal prosesor JSON command line
jq
. Anda dapat menggunakan pemroses ini untuk memfilter output gcloud CLI. Cloud Shell telah menginstaljq
sebelumnya.CentOS/RHEL/Rocky
Debian
Ubuntu
Memperbarui lingkungan tamu
Jika Anda mendapatkan pesan bahwa lingkungan tamu sudah usang, update paket untuk sistem operasi Anda.
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
Kehadiran lingkungan tamu dapat ditentukan dengan memeriksa log sistem yang ditampilkan ke konsol saat instance dimulai, atau dengan mencantumkan paket yang diinstal saat terhubung ke instance.
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 untuk instance, ikuti langkah-langkah berikut.
Konsol
gcloud
Layanan yang dimuat untuk lingkungan tamu
Tabel ini merangkum layanan yang harus dimuat di instance dengan lingkungan tamu yang berfungsi. Perintah untuk mencantumkan layanan harus dijalankan setelah terhubung ke instance, sehingga pemeriksaan ini hanya dapat dilakukan jika Anda memiliki akses ke instance tersebut.
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
Paket yang diinstal untuk lingkungan tamu
Tabel ini merangkum paket yang harus diinstal di instance dengan lingkungan tamu yang berfungsi. Perintah untuk mencantumkan paket yang diinstal harus dijalankan setelah terhubung ke instance, sehingga pemeriksaan ini hanya dapat dilakukan jika Anda memiliki akses ke instance tersebut.
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 selanjutnya
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 2024-12-22 UTC.
-