Membuat tugas patch


Anda dapat menggunakan Patch untuk menerapkan patch sistem operasi di seluruh grup instance virtual machine (VM).

Untuk menerapkan patch ke VM, selesaikan langkah-langkah berikut:

  1. Siapkan VM.
  2. Jalankan tugas patch.

Sebelum memulai

  • Tinjau kuota OS Config.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Batasan

  • Anda dapat men-deploy dan menjalankan tugas patch hanya untuk VM dalam satu project Google Cloud. Anda tidak dapat menjalankan tugas patch di seluruh project Google Cloud, meskipun VM berada di VPC Bersama. Namun, Anda dapat melihat data kepatuhan patch di seluruh project.
  • Batasan berikut berlaku saat Anda mem-patch VM yang merupakan bagian dari grup instance terkelola (MIG):
    • Ketika MIG memperbaiki VM, MIG akan membuat ulang VM berdasarkan template instance. Tindakan ini dapat mengembalikan VM ke status tidak di-patch.
    • Mem-patch VM dapat menyebabkan hasil yang tidak terduga pada MIG yang penskalaan otomatisnya diaktifkan. Autoscaler menghapus VM yang di-patch saat beban menurun dan membuat VM baru, tanpa patch apa pun, menggunakan template instance MIG saat beban meningkat. Misalnya, jika pemakaian CPU rata-rata kurang dari target utilisasi yang Anda tentukan untuk penskalaan otomatis, MIG dapat menghapus beberapa VM yang di-patch selagi melakukan penskalaan.

Sistem operasi yang didukung

Untuk mengetahui daftar lengkap sistem operasi dan versi yang mendukung Patch, lihat Detail sistem operasi.

Menyiapkan VM

Untuk menggunakan fitur Patch, selesaikan langkah-langkah berikut:

  1. Untuk semua VM, siapkan VM Manager.
  2. Untuk VM Windows, Google merekomendasikan menonaktifkan update otomatis pada VM. Hal ini mengurangi konflik antara update otomatis Windows dan layanan Patch.

Izin

Pemilik project Google Cloud memiliki akses penuh untuk menjalankan dan mengelola tugas patch. Untuk semua pengguna lainnya, Anda harus memberikan izin. Anda dapat memberikan salah satu peran terperinci berikut:

  • roles/osconfig.patchJobExecutor: Berisi izin untuk menjalankan, membatalkan, mendapatkan, dan mencantumkan tugas patch. Ini juga berisi izin untuk melihat detail instance untuk tugas patch.
  • roles/osconfig.patchJobViewer: Berisi izin akses hanya baca untuk mendapatkan dan mencantumkan tugas patch. Ini juga berisi izin untuk melihat detail instance untuk tugas patch.

Misalnya, untuk memberikan akses kepada pengguna guna menjalankan tugas patch, gunakan perintah berikut:

gcloud projects add-iam-policy-binding project-id \
    --member user:user-id@gmail.com \
    --role roles/osconfig.patchJobExecutor

Ganti kode berikut:

  • project-id: Project ID.
  • user-id: Nama pengguna Google Workspace pengguna.

Menjalankan tugas patch

Anda dapat menjalankan tugas patch menggunakan Google Cloud Console, Google Cloud CLI, atau REST.

Saat Anda menjalankan tugas patch, patching VM akan dimulai secara bersamaan pada semua instance yang ditentukan oleh filter instance.

Setelah memulai tugas patch, Anda dapat memantau patch menggunakan Dasbor Patch. Perlu waktu sekitar 30 menit setelah tugas patch dimulai sebelum data diisi di dasbor.

Konsol

  1. Di konsol Google Cloud, buka halaman Compute Engine > VM Manager > Patch.

    Buka halaman Patch

  2. Klik New patch deployment.
  3. Di bagian Target VMs, pilih zona yang berisi VM yang ingin dilakukan patching. Anda juga dapat memilih untuk memilih semua zona.

    Setelah memilih zona, Anda dapat memfilter lebih lanjut VM dalam zona tersebut.

    Misalnya, untuk mem-patch VM tertentu di zona yang Anda pilih, masukkan filter nama dan label seperti berikut:

    • Awalan nama: test-
    • Label: env=dev dan app=web
  4. Di bagian Patch configuration, konfigurasikan patch-nya.

    1. Tentukan Nama untuk patch Anda.
    2. Pilih update yang diperlukan untuk sistem operasi Anda. Untuk mengetahui informasi selengkapnya, lihat konfigurasi patch.
  5. Di bagian Scheduling, selesaikan aktivitas berikut:

  6. Di bagian Rollout options, konfigurasikan opsi peluncuran patch:

    • Pilih apakah akan melakukan patching zona satu per satu atau melakukan patching zona secara serentak.
    • Tetapkan anggaran gangguan. Anggaran gangguan adalah jumlah atau persentase VM di zona tempat Anda ingin terganggu pada satu waktu oleh proses patching.
  7. Opsional: Di bagian Advanced options, Anda dapat menyelesaikan tugas-tugas berikut:

  8. Klik Deploy.

gcloud

Gunakan perintah os-config patch-jobs execute untuk menjalankan tugas patch. Ganti instance-filter dengan filter instance yang Anda inginkan. Untuk mengetahui informasi selengkapnya tentang filter instance, lihat filter instance.

gcloud compute os-config patch-jobs execute instance-filter

Untuk mengetahui informasi selengkapnya tentang update yang diterapkan, lihat apa yang disertakan dalam tugas patch OS. Untuk menyesuaikan update, gunakan flag opsional.

Contoh

Contoh 1 Untuk menjalankan tugas patch dengan konfigurasi berikut:

  • Nama instance: instance-1
  • Zona: us-east1-b
  • Deskripsi: patch for instance-1

    Anda akan menjalankan perintah berikut:

gcloud compute os-config patch-jobs execute \
    --instance-filter-names="zones/us-east1-b/instances/instance-1" \
    --description "patch for instance-1"

Contoh 2 Misalnya Anda ingin menjalankan tugas patch secara asinkron dengan konfigurasi berikut:

  • Patch harus dijalankan pada semua instance dalam project.
  • Tugas patch harus habis waktunya dan berhenti setelah 1 jam 30 menit.
  • Komputer harus dimulai ulang berdasarkan setelan sistem setelah menginstal update.
  • Pada VM yang menjalankan Apt, patching dilakukan menggunakan apt dist-upgrade.
  • Pada VM yang menjalankan Windows, hanya terapkan patch untuk update KB4339284.
  • Pada VM yang menjalankan Yum, patching dilakukan menggunakan utilitas yum update-minimal --security.

Anda akan menjalankan perintah berikut:

gcloud compute os-config patch-jobs execute \
    --instance-filter-all \
    --duration="1h30m" --reboot-config="DEFAULT" \
    --apt-dist --windows-exclusive-patches=4339284 \
    --yum-minimal --yum-security \
    --async

REST

Di API, buat permintaan POST untuk menjalankan tugas patch baru. Anda harus secara eksplisit menentukan semua kolom konfigurasi yang wajib diisi seperti yang dijelaskan dalam dokumentasi API patchJobs.execute.

Untuk mengetahui informasi selengkapnya tentang update yang diterapkan, lihat apa yang disertakan dalam tugas patch OS. Untuk menyesuaikan pembaruan, gunakan parameter PatchConfig.

Misalnya, tugas patch yang hanya berisi kolom wajib diisi akan terlihat seperti berikut.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter": instance-filter
}

Ganti kode berikut:

  • project-id: Project ID Anda.
  • instance-filter: Parameter filter yang Anda inginkan. Untuk mengetahui informasi selengkapnya tentang filter instance, lihat filter instance.

Contoh

Contoh 1 Misalnya Anda ingin menjalankan tugas patch pada instance bernama instance1 yang terletak di us-east1-b. Dalam contoh ini, kami menambahkan deskripsi dan menentukan bahwa tugas berjalan selama 1 jam 30 menit. Ganti project-id dengan project ID Anda.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "description":"patch instance1 in us-east1-b",
  "duration":"5400s",
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}

Contoh 2 Tugas patch berikut memilih VM yang memiliki konfigurasi berikut:

  • Memiliki label env=dev dan app=web.
  • Menggunakan salah satu dari asia-east1-b atau asia-east1-c.
  • Memiliki awalan test-.

Di perintah berikut, ganti project-id dengan project ID Anda.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "groupLabels":[
      {
        "labels":{
          "env":"dev",
          "app":"web"
        }
      }
    ],
    "instanceNamePrefixes":[
      "test-"
    ],
    "zones":[
      "asia-east1-b",
      "asia-east1-c"
    ]
  }
}

Contoh 3

Misalnya Anda ingin menjalankan tugas patch dengan konfigurasi berikut:

  • Patch harus dijalankan pada semua instance dalam project.
  • Tugas patch harus habis waktunya dan berhenti setelah 1 jam 30 menit. API mengharuskan waktu dinyatakan dalam detik, jadi tetapkan ini ke 5400 detik.
  • Komputer harus dimulai ulang berdasarkan setelan sistem setelah menginstal update.
  • Pada VM yang menjalankan Apt, patching dilakukan menggunakan apt dist-upgrade.
  • Pada VM yang menjalankan Windows, hanya terapkan patch untuk update KB4339284.
  • Pada VM yang menjalankan Yum, patching dilakukan menggunakan utilitas yum update-minimal --security.

Anda akan membuat permintaan berikut:

Di perintah berikut, ganti project-id dengan project ID Anda.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
 "duration":"5400s",
 "instanceFilter":{
   "all":true
 },
 "patchConfig":{
   "rebootConfig":"DEFAULT",
   "apt":{
     "type":"DIST"
   },
   "yum":{
     "security":true,
     "minimal":true
   },
   "windowsUpdate":{
     "exclusivePatches":"4339284"
   }
 }
}

Filter instance

Anda dapat menentukan instance yang akan disertakan dalam tugas patch dengan menggunakan filter. Filter berikut didukung untuk tugas patch:

  • Filter menurut nama: Membatasi tugas patch ke instance dengan nama tertentu. Nama instance harus ditetapkan menggunakan URI lengkap. Format URI yang didukung mencakup hal berikut:

    • zones/zone/instances/instance-name
    • projects/project-id/zones/zone/instances/instance-name
    • https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
  • Filter menurut awalan nama: Membatasi tugas patch ke instance dengan awalan tertentu dalam namanya.

  • Filter menurut zona: Membatasi tugas patch ke instance di zona tertentu.

  • Filter menurut label: Membatasi tugas patch ke instance dengan label tertentu.

Anda juga dapat menjalankan tugas patch pada semua instance di project Google Cloud dengan menetapkan kolom all di instanceFilter ke true. Untuk mengetahui informasi selengkapnya, lihat contoh filter instance.

Contoh filter instance

Skenario filter gcloud Filter API
Semua instance dalam project Google Cloud

--instance-filter-all

{
  "instanceFilter":{
    "all":"true"
  }
}
Instance dengan nama instance1 yang terletak di zona us-east1-b.

--instance-filter-names="zones/us-east1-b/instances/instance1"

{
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}
Instance dengan awalan app-

--instance-filter-name-prefixes="app-"

{
  "instanceFilter":{
    "instanceNamePrefixes":[
      "app-"
    ]
  }
}
Instance dalam zona us-east1-b atau us-east1-c

--instance-filter-zones="us-east1-b","us-east1-c"

{
  "instanceFilter":{
    "zones":[
      "us-east1-b",
      "us-east1-c"
    ]
  }
}
Instance dengan label kombinasi env=dev dan app=web serta instance dengan env=dev dan app=worker.

--instance-filter-group-labels="env=dev,app=web"
--instance-filter-group-labels="env=dev,app=worker"

{
  "instanceFilter":{
    "groupLabels":[
      {
        "labels":{
          "env":"dev",
          "app":"web"
        }
      },
      {
        "labels":{
          "env":"dev",
          "app":"worker"
        }
      }
    ]
  }
}

Menggabungkan filter instance

Filter instance juga dapat digabungkan. Misalnya, untuk menjalankan tugas patch untuk instance yang memiliki awalan test-, yang terletak di zona us-east1-c, dan yang memiliki label env=dev dan app=web, jalankan perintah berikut:

gcloud compute os-config patch-jobs execute \
    --instance-filter-name-prefixes="test-" \
    --instance-filter-zones="us-east1-c" \
    --instance-filter-group-labels="env=prod,app=web"

Konfigurasi patch

Saat menjalankan tugas patch, Anda dapat menentukan parameter untuk mengontrol patch yang diterapkan pada VM. Parameter konfigurasi patch bergantung pada platform dan sering kali diteruskan ke alat update sistem yang mendasarinya. Patch sebenarnya berasal dari repositori paket (Linux) atau server Windows Update (Windows) yang dikonfigurasi di VM.

Anda dapat menentukan konfigurasi patch berikut untuk VM Anda:

  • Untuk Windows, tentukan klasifikasi patch yang akan diterapkan (misalnya, Security dan Critical) atau menargetkan KB tertentu untuk dikecualikan. Untuk mengetahui informasi selengkapnya tentang klasifikasi patch, baca Dokumentasi dukungan Microsoft.
  • Untuk RHEL, Rocky Linux, dan CentOS, sistem dasarnya adalah yum.

    • Untuk patch yang menargetkan VM RHEL dan Rocky Linux, Anda dapat menentukan paket security dan minimal.
    • Untuk VM CentOS, tidak ada metadata security di repositori yum CentOS. Oleh karena itu, Anda tidak perlu menentukan opsi security saat mengupdate paket keamanan. Jika Anda tidak menentukan paket apa pun, tugas patch akan mengupdate semua paket, termasuk yang memiliki update keamanan.
    • Anda juga dapat mengecualikan paket tertentu. Untuk informasi selengkapnya, lihat halaman manual yum.
  • Untuk Debian & Ubuntu, sistem yang mendasarinya adalah apt. Untuk patch yang menargetkan VM ini, Anda dapat menentukan dist-upgrade atau upgrade standar. Anda juga dapat mengecualikan paket tertentu. Untuk mengetahui informasi lebih lanjut, lihat halaman manual Debian atau halaman man Ubuntu.

  • Untuk SuSE, sistem yang mendasarinya adalah zypper, khususnya menggunakan patch zypper. Untuk patch yang menargetkan VM ini, Anda dapat menentukan opsi seperti:

    • with update: mengupdate semua paket yang tidak tercakup oleh patch
    • with optional: patch opsional diperlakukan sesuai kebutuhan
    • Kategori atau tingkat keparahan patch yang akan diterapkan

    Anda juga dapat mengecualikan patch tertentu.

Secara opsional, untuk semua sistem operasi yang didukung, Anda dapat memilih untuk menginstal patch yang disetujui hanya dengan menentukan update ini. Dengan begitu, Anda dapat memasukkan daftar paket atau patch yang disetujui. Saat Anda memilih patch yang disetujui ini, hanya paket atau patch yang disetujui yang diinstal. Semua parameter konfigurasi patch lainnya dilewati selama update.

Contoh

Konsol

  1. Ikuti langkah-langkah yang diuraikan di tab konsol untuk membuat tugas patch atau deployment patch.
  2. Di bagian Patch configuration, pilih parameter untuk tugas patch Anda.
  3. Buat konfigurasi tambahan yang diperlukan untuk tugas patch atau deployment Anda.
  4. Klik Deploy.

gcloud

Misalnya, untuk menjalankan tugas patch pada semua instance di zona northamerica-northeast1-a dengan konfigurasi patch khusus untuk berbagai sistem operasi, jalankan perintah gcloud compute os-config patch-jobs execute:

gcloud compute os-config patch-jobs execute \
    --instance-filter-zones="northamerica-northeast1-a" \
    --apt-dist \
    --yum-security \
    --yum-minimal \
    --zypper-categories=security \
    --windows-classifications=critical,security \
    --reboot-config=default

Untuk mempelajari lebih lanjut opsi yang didukung, jalankan perintah berikut:

gcloud compute os-config patch-jobs execute --help

REST

Misalnya, untuk menjalankan tugas patch pada semua instance di zona northamerica-northeast1-a dengan konfigurasi patch khusus untuk berbagai sistem operasi, jalankan perintah berikut:

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
    "instanceFilter":{
        "zones":[
            "northamerica-northeast1-a"
        ]
    },
    "patchConfig":{
        "apt": {
            "type": "dist-upgrade"
        },
        "yum": {
            "security": true,
            "minimal": true
        },
        "zypper": {
            "categories": ["security"]
        },
        "windowsUpdate": {
            "classifications": ["CRITICAL", "SECURITY"]
        },
        "rebootConfig": "DEFAULT"
    }
}

Untuk mempelajari lebih lanjut parameter yang didukung, tinjau dokumentasi PatchConfig API.

Masa pemeliharaan

Masa pemeliharaan adalah total durasi waktu yang Anda izinkan untuk menjalankan tugas patch. Waktu tunggu tugas patch akan habis jika tidak selesai dalam periode pemeliharaan yang ditentukan.

Misalnya, jika Anda menetapkan masa pemeliharaan 60 minutes, tidak ada tugas patch baru yang akan dimulai 60 menit setelah waktu mulai. Beberapa proses seperti mendownload file atau memulai ulang mungkin terjadi di luar masa pemeliharaan ini, tetapi tidak ada tugas patch baru yang akan dimulai.

Opsi mulai ulang

Saat menjalankan tugas patch, Anda dapat menentukan opsi mulai ulang untuk patch tersebut. Tersedia opsi-opsi berikut:

  • Default: Agen memutuskan apakah perlu dimulai ulang dengan memeriksa sinyal yang diketahui di setiap OS. Beberapa mulai ulang dapat terjadi selama patching dan mungkin terjadi sebelum patch diinstal.
  • Selalu: Perangkat akan di-reboot setelah update selesai.
  • Tidak pernah: Perangkat tidak di-reboot setelah update selesai. Dalam beberapa kasus, ini mungkin berarti bahwa tidak semua patch diterapkan sepenuhnya.

Skrip pra-patch dan pasca-patch

Saat menjalankan tugas patch, Anda dapat menentukan skrip yang akan dijalankan sebagai bagian dari proses patch. Skrip ini berguna untuk melakukan tugas-tugas seperti menonaktifkan aplikasi dan menjalankan health check.

  • Skrip pra-patch dijalankan sebelum patching dimulai. Jika mulai ulang sistem diperlukan sebelum patching dimulai, skrip pra-patch akan berjalan sebelum mulai ulang.
  • Skrip pasca-patch dijalankan setelah patching diselesaikan. Jika mulai ulang sistem diperlukan sebagai bagian dari patching, skrip pasca-patch akan berjalan setelah mulai ulang.

Tugas patch menerima satu skrip pra-patch dan satu skrip pasca-patch untuk Linux, serta satu skrip pra-patch dan satu skrip pasca-patch untuk Windows. Skrip Linux dan Windows harus disediakan menggunakan tanda, parameter, atau bagian yang sesuai saat ditentukan dari Google Cloud CLI, REST, atau Konsol Google Cloud. Skrip Linux hanya berjalan di VM Linux dan skrip Windows hanya berjalan di VM Windows.

File skrip ini dapat disimpan di VM atau di bucket Cloud Storage versioned. Jika objek Cloud Storage Anda tidak dapat dibaca oleh publik, pastikanakun layanan Compute Engine default untuk project Google Cloud memiliki izin IAM yang diperlukan untuk membaca objek Cloud Storage. Untuk memastikan Anda memiliki izin yang tepat, periksa setelan izin di objek Cloud Storage.

Jika Anda ingin menggunakan bucket Cloud Storage untuk menyimpan skrip, buat bucket Cloud Storage dan upload skrip Anda ke bucket tersebut.

Contoh

Konsol

  1. Ikuti langkah-langkah yang diuraikan di tab konsol untuk membuat tugas patch atau deployment patch.
  2. Di bagian Advanced options, untuk bagian pra-patch dan pasca-patch, klik Browse. Halaman objek Cloud Storage akan ditampilkan.
  3. Dari halaman objek Cloud Storage, pilih bucket Cloud Storage yang berisi skrip, lalu pilih objek atau file Cloud Storage.
  4. Buat konfigurasi tambahan yang diperlukan untuk tugas patch atau deployment Anda.
  5. Klik Deploy.

gcloud

Misalnya, untuk menjalankan tugas patch pada semua instance di zona northamerica-northeast1-a dengan skrip pra- dan pasca-patch untuk instance Linux dan Windows, jalankan perintah berikut:

gcloud compute os-config patch-jobs execute \
    --instance-filter-zones="northamerica-northeast1-a" \
    --async \
    --pre-patch-linux-executable="/tmp/pre_patch_script.sh" \
    --post-patch-linux-executable="gs://my-patch-scripts/linux/post_patch_script#1523477886880" \
    --pre-patch-windows-executable="C:\\Users\\user\\pre-patch-script.cmd" \
    --post-patch-windows-executable="gs://my-patch-scripts/windows/post_patch_script.ps1#135920493447"

Untuk mempelajari lebih lanjut format file yang dapat diterima, jalankan perintah berikut:

gcloud compute os-config patch-jobs execute --help

REST

Misalnya, untuk menjalankan tugas patch pada semua instance di zona northamerica-northeast1-a dengan skrip pra- dan pasca-patch untuk instance Linux dan Windows, jalankan perintah berikut:

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "zones":[
      "northamerica-northeast1-a"
    ]
  },
  "patchConfig":{
    "preStep":{
      "linuxExecStepConfig":{
        "localPath":"/tmp/pre_patch_script.sh"
      },
      "windowsExecStepConfig":{
        "interpreter":"SHELL",
        "localPath":"C:\\Users\\user\\pre-patch-script.cmd"
      }
    },
    "postStep":{
      "linuxExecStepConfig":{
        "gcsObject":{
          "bucket":"my-patch-scripts",
          "generationNumber":"1523477886880",
          "object":"linux/post_patch_script"
        }
      },
      "windowsExecStepConfig":{
        "gcsObject":{
          "bucket":"my-patch-scripts",
          "generationNumber":"135920493447",
          "object":"windows/post_patch_script.ps1"
        },
        "interpreter":"POWERSHELL"
      }
    }
  }
}

Untuk mempelajari lebih lanjut format file yang dapat diterima, tinjau bagian ExecStepConfig dalam dokumentasi API PatchConfig.

Opsi peluncuran patch

Anda dapat memilih untuk mem-patch VM satu zona pada satu waktu (zona berdasarkan zona), atau mem-patch semua zona sekaligus (zona serentak).

Selain menentukan pilihan untuk peluncuran zona, Anda juga dapat menentukan anggaran gangguan zona untuk VM Anda.

Anggaran gangguan zona

Anggaran gangguan adalah jumlah (atau persentase) maksimum VM per zona untuk mengalami gangguan pada waktu tertentu.

Apa yang dianggap sebagai VM yang terganggu?

Selama patching, VM dianggap terganggu sejak agen Konfigurasi OS diberi tahu untuk dimulai hingga patching selesai. Waktu gangguan ini mencakup waktu untuk menyelesaikan mulai ulang dan langkah pasca-patch.

Sebuah VM juga dihitung sebagai bagian dari anggaran gangguan jika memenuhi salah satu kondisi berikut:

  • Operasi patching gagal saat menerapkan patch
  • Operasi patching gagal saat menjalankan langkah sebelum atau sesudah patch
  • Operasi patching gagal merespons dengan notifikasi berhasil sebelum waktu habis

Cara kerja anggaran gangguan

Untuk peluncuran zona demi zona, jika anggaran gangguan dalam suatu zona terlampaui, tugas patch akan berhenti. Hal ini terjadi karena melanjutkan ke zona berikutnya memerlukan penyelesaian proses patch di zona sebelumnya.

Misalnya, jika anggaran gangguan memiliki nilai 10, dan 8 VM gagal melakukan patch di zona saat ini, tugas patch akan terus melakukan patching 2 VM pada satu waktu hingga zona tersebut selesai. Jika zona tersebut berhasil diselesaikan, patch akan dimulai dengan 10 VM pada satu waktu di zona berikutnya. Jika 10 VM di zona berikutnya gagal dilakukan patching, tugas patch akan berhenti.

Contoh

Konsol

  1. Ikuti langkah-langkah yang diuraikan di tab konsol untuk membuat tugas patch atau deployment patch.
  2. Di bagian Rollout options, konfigurasikan opsi peluncuran:
    • Pilih apakah akan melakukan patching zona satu per satu atau melakukan patching semua zona secara serentak.
    • Tetapkan anggaran gangguan. Anggaran gangguan adalah jumlah atau persentase VM di zona tempat Anda ingin terganggu pada satu waktu oleh proses patching.
  3. Buat konfigurasi tambahan yang diperlukan untuk tugas patch atau deployment Anda.
  4. Klik Deploy.

gcloud

Contoh 1

Contoh ini menunjukkan perintah os-config patch-jobs execute untuk menjalankan tugas patch dengan spesifikasi berikut:

  • Melakukan patching pada semua VM di project Anda
  • Melakukan patching pada zona VM berdasarkan zona
  • Memastikan bahwa tidak lebih dari 10 VM di zona yang sama yang terganggu pada waktu tertentu
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=zone-by-zone \
   --rollout-disruption-budget=10

Contoh 2

Contoh ini menunjukkan perintah os-config patch-jobs execute untuk menjalankan tugas patch dengan spesifikasi berikut:

  • Melakukan patching pada semua VM di project Anda
  • Melakukan patching pada zona secara serentak
  • Memastikan bahwa tidak lebih dari 50 persen VM di zona yang sama akan terganggu pada waktu tertentu
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=concurrent-zones \
   --rollout-disruption-budget-percent=50

REST

Contoh ini menunjukkan metode patchJobs.execute untuk menjalankan tugas patch dengan spesifikasi berikut:

  • Melakukan patching pada semua VM di zona us-central1-a, us-central1-c, dan us-central1-f
  • Melakukan patching pada zona secara serentak
  • Memastikan bahwa tidak lebih dari 25 persen instance di zona yang sama yang terganggu pada waktu tertentu
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "zones":[
      "us-central1-a",
      "us-central1-c",
      "us-central1-f"
    ]
  },
  "rollout": {
    "disruptionBudget": {
      "percent": 25
    },
    "mode": "CONCURRENT_ZONES"
  }
}

Untuk mempelajari peluncuran patch lebih lanjut, tinjau dokumentasi API PatchRollout.

Mengaktifkan patching software Microsoft pada VM Windows

Saat Anda menjalankan tugas patch pada VM Windows, secara default, Patch hanya menerapkan patch untuk sistem operasi Windows.

Anda dapat menerapkan update untuk software Microsoft seperti Microsoft SQL Server, SharePoint Server, atau framework .NET yang berjalan pada VM Windows saat Anda menjalankan tugas patch. Secara default, patching aplikasi ini dinonaktifkan untuk menghindari gangguan layanan dan untuk memisahkan update yang direncanakan untuk software tersebut. Untuk mengaktifkan patching perangkat lunak Microsoft secara otomatis, Anda dapat menggunakan Windows UI atau PowerShell.

UI Windows

  1. Di menu Windows Start, pilih Settings > Update & Security > Windows Update.
  2. Di bagian Advanced options, aktifkan Receive updates for other Microsoft products when you update Windows.

PowerShell

 $service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager'
 $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

Melakukan debuging tugas patch

Jika patch gagal, Anda dapat menggunakan langkah-langkah berikut untuk membantu menemukan dan menyelesaikan masalah.

  1. Tinjau detail instance untuk tugas patch yang terpengaruh. Hal ini membantu Anda mengidentifikasi instance mana yang gagal atau pada status apa instance tersebut macet. Daftar detail instance juga berisi pesan error singkat untuk setiap instance.

    Jika patch gagal dengan status NO_AGENT_DETECTED atau TIMED_OUT, biasanya ini berarti layanan mengirimkan permintaan kepada agen untuk memulai patch, tetapi tidak pernah mendapatkan balasan dari agen tersebut. Tinjau kemungkinan penyebab dan perbaikan berikut:

    • Instance tidak berjalan. Untuk memperbaikinya, mulai instance VM.
    • Verifikasi penyiapan menggunakan checklist verifikasi.
    • Setelan jaringan pada jaringan VPC atau instance tidak mengizinkan agen OS Config untuk berkomunikasi dengan OS Config API. Untuk memperbaikinya, periksa setelan jaringan.
  2. Jika detail instance tidak memberikan informasi yang cukup, tinjau log Cloud Logging atau konsol port serial. Agen OS Config menulis entri log-nya ke kedua lokasi. Di Cloud Logging, Anda dapat memfilter menggunakan ID tugas patch untuk melihat semua entri log yang terkait dengan tugas patch tersebut. Anda juga dapat mengaktifkan logging debug dengan menetapkan nilai metadata osconfig-log-level=debug di tingkat project VM atau Google Cloud.

Apa langkah selanjutnya?