Menjadwalkan tugas patch

Selain menjalankan tugas patch sesuai permintaan, Anda mungkin ingin memiliki tugas patch yang berjalan otomatis berdasarkan jadwal yang ditetapkan dengan membuat deployment patch.

Setiap deployment patch dapat memiliki jadwal satu kali yang menjalankan tugas patch pada tanggal dan waktu tertentu, atau jadwal berulang, yang menjalankan tugas patch pada interval tertentu.

Filter instance memungkinkan Anda melakukan patch pada banyak instance secara bersamaan. Filter ini diterapkan ke setiap tugas patch individual saat dijalankan. Ini memastikan bahwa perubahan dalam proyek Anda ditangkap secara real-time. Misalnya, deployment patch dibuat untuk menerapkan patch ke semua instance di zona asia-souteast1-b mulai dua minggu dari sekarang. Pada saat membuat patch, Anda memiliki 20 instance di zona, tetapi 40 instance baru ditambahkan ke zona beberapa hari kemudian. Karena filter tersebut diterapkan saat patch dimulai, 60 instance akan diupdate. Hal ini memungkinkan Anda menambahkan dan menghapus instance tanpa perlu memperbarui jadwal deployment patch.

Sebelum memulai

  • Tinjau kuota OS Config.
  • Jika Anda belum melakukannya, siapkan autentikasi. Authentication adalah proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat mengautentikasi 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

Anda dapat menjadwalkan tugas patch menggunakan Konsol Google Cloud, Google Cloud CLI, atau REST.

Izin

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

  • roles/osconfig.patchDeploymentAdmin: Berisi izin untuk membuat, menghapus, mendapatkan, dan mencantumkan deployment patch.
  • roles/osconfig.patchDeploymentViewer: Berisi izin akses hanya baca guna mendapatkan dan mencantumkan deployment patch.

Misalnya, untuk memberi administrator akses ke patch deployment, jalankan perintah berikut berikut:

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

Ganti kode berikut:

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

Membuat deployment patch

Saat Anda membuat deployment patch, nama deployment patch harus memenuhi persyaratan penamaan berikut:

  • Setiap nama dalam suatu project harus unik
  • Hanya menggunakan huruf kecil, angka, dan tanda hubung
  • Diawali dengan huruf
  • Diakhiri dengan angka atau huruf
  • Berisi antara 1 hingga 63 karakter

Di Google Cloud CLI dan REST, nama deployment patch disebut sebagai patch-deployment-id.

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

console

  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.

    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 informasi selengkapnya, lihat apa yang disertakan dalam tugas patch OS.
  5. Di bagian Scheduling, selesaikan aktivitas berikut:

  6. Di bagian Opsi peluncuran, 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-deployments create untuk membuat deployment patch.

gcloud compute os-config patch-deployments create patch-deployment-id \
    --file patch-deployment-file

Ganti kode berikut:

  • patch-deployment-id: Nama deployment patch Anda.
  • patch-deployment-file: Jalur ke file YAML atau JSON yang berisi konfigurasi untuk deployment patch.

Contoh file YAML deployment patch

Contoh file YAML berikut dapat digunakan untuk membuat jadwal berulang bagi semua instance di zona us-west2-b dan us-west2-c. Jadwal berulang memiliki spesifikasi berikut:

  • Tanggal dimulai adalah 09 Januari 2019 pukul 19.30
  • Tanggal akhir adalah 9 Januari 2020 pukul 19.30
  • Zona waktu yang akan digunakan adalah "America/Los_Angeles"
  • Jalankan setiap minggu pada hari Selasa
instanceFilter:
  zones:
  - us-west2-b
  - us-west2-c
recurringSchedule:
  frequency: WEEKLY
  weekly:
    dayOfWeek: TUESDAY
  timeOfDay:
    hours: 19
    minutes: 30
  timeZone:
    id: America/Los_Angeles
  startTime: '2019-09-01T12:00:00Z'
  endTime: '2020-09-01T12:00:00Z'

REST

Di API, buat permintaan POST untuk membuat deployment patch baru. Anda harus secara eksplisit menentukan semua kolom konfigurasi yang wajib diisi seperti yang dijelaskan dalam dokumentasi API patchDeployments.create. Misalnya, deployment patch dengan kolom wajib diisi minimal (filter dan jadwal instance) akan terlihat seperti berikut. Ganti project-id dengan project ID Anda.

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

{
  "instanceFilter": instance-filter

  // Add one of the following parameters:
  "recurringSchedule": schedule
  "oneTimeSchedule": schedule
}

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.
  • schedule: Berikan parameter oneTimeSchedule atau recurringSchedule yang menjelaskan parameter penjadwalan seperti tanggal, waktu, dan frekuensi untuk menjalankan tugas patch.

Contoh

Contoh 1: Buat jadwal satu kali untuk menjalankan tugas patch pada 10 Januari 2020 pukul 00.00 UTC di semua instance di zona us-west2-b dan us-west2-c.

{
 "instanceFilter":{
   "zones":[
     "us-west2-b",
     "us-west2-c"
   ]
 },
 "oneTimeSchedule": {
   "executeTime": "2020-01-10T00:00:00Z"
 }
}

Contoh 2: Membuat jadwal berulang untuk semua instance di zona tersebut us-west2-b dan us-west2-c. Jadwal berulang memiliki spesifikasi berikut:

  • Tanggal dimulai adalah 09 Januari 2019 pukul 19.30
  • Tanggal akhir adalah 9 Januari 2020 pukul 19.30
  • Zona waktu yang akan digunakan adalah "America/Los_Angeles"
  • Jalankan setiap minggu pada hari Selasa
POST https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments
{
  "instanceFilter":{
    "zones":[
      "us-west2-b",
      "us-west2-c"
    ]
  },
  "recurringSchedule":{
    "frequency":"WEEKLY",
    "weekly":{
      "dayOfWeek":"TUESDAY"
    },
    "timeOfDay":{
      "hours":19,
      "minutes":30
    },
    "timeZone":{
      "id":"America/Los_Angeles"
    },
    "startTime":"2019-09-01T12:00:00Z",
    "endTime":"2020-09-01T12:00:00Z"
  }
}

Mencantumkan deployment patch

console

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

    Buka halaman Patch

  2. Pilih tab Deployment terjadwal.

gcloud

Gunakan perintah os-config patch-deployments list untuk mencantumkan deployment patch.

gcloud compute os-config patch-deployments list

Perintah ini menampilkan semua deployment patch. Outputnya akan terlihat seperti berikut:

NAME              LAST_RUN                  NEXT_RUN              FREQUENCY
first-deployment  2019-12-18T00:07:00.738Z  ---                   Once: Scheduled for 2019-12-18T00:07:00.000Z
my-deployment1    2020-01-05T14:00:00.228Z  2020-01-12T14:00:00Z  Recurring - Weekly
my-deployment2    ---                       2020-01-15T05:30:00Z  Recurring - Monthly on specific date(s)

Anda dapat menggunakan lebih banyak tanda untuk membatasi dan memformat penelusuran. Misalnya, untuk menampilkan 10 deployment patch pertama di halaman ke-2, jalankan perintah berikut. Ganti project-id dengan project ID Anda.

gcloud compute os-config patch-deployments list --limit 10 --page-size 2

REST

Di API, buat permintaan GET ke metode patchDeployments.list. Ganti project-id dengan project ID Anda.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments

Menjelaskan deployment patch

console

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

    Buka halaman Patch

  2. Pilih tab Deployment terjadwal.
  3. Klik nama deployment yang ingin ditinjau.

gcloud

Gunakan perintah os-config patch-deployments describe untuk mendeskripsikan deployment patch. Ganti patch-deployment-id dengan nama untuk deployment patch Anda.

gcloud compute os-config patch-deployments describe patch-deployment-id

REST

Di API, buat permintaan GET ke metode patchDeployments.get.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Ganti kode berikut:

  • project-id: Project ID Anda.
  • patch-deployment-id: Nama deployment patch Anda.

Menghapus deployment patch

console

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

    Buka halaman Patch

  2. Pilih tab Deployment terjadwal.
  3. Klik nama deployment yang ingin dihapus.
  4. Klik Hapus jadwal ini.

gcloud

Gunakan perintah os-config patch-deployments delete untuk menghapus deployment patch. Ganti patch-deployment-id dengan nama untuk deployment patch Anda.

gcloud compute os-config patch-deployments delete patch-deployment-id

REST

Di API, buat permintaan DELETE ke metode patchDeployments.delete.

DELETE https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Ganti kode berikut:

  • project-id: Project ID Anda.
  • patch-deployment-id: Nama deployment patch Anda.

Apa langkah selanjutnya?