Mengonfigurasi VM untuk menginstal paket RPM

Halaman ini menjelaskan cara mengonfigurasi VM untuk menginstal paket RPM dari repositori Yum Artifact Registry. Repositori Yum Artifact Registry mendukung klien yum dan dnf.

Sebelum memulai

Jika repositori Yum target tidak ada, buat repositori baru. Anda dapat membuat repositori pribadi atau repositori publik yang tidak memerlukan autentikasi.

Menyiapkan VM untuk mengakses repositori Yum

Untuk menyiapkan VM guna mengakses repositori Yum, gunakan alat klien yum atau dnf:

Repositori pribadi

  1. Pilih akun layanan yang akan digunakan untuk memberikan akses.

    • Untuk VM Compute Engine, ini mungkin berupa akun layanan default. Artifact Registry secara otomatis mengambil kredensial akun layanan VM Compute Engine untuk VM apa pun menggunakan akun layanan.
    • Untuk VM lainnya, buat atau pilih akun layanan untuk bertindak atas nama VM Anda. Anda memerlukan lokasi file kunci akun layanan untuk mengonfigurasi VM. Anda dapat melihat dan membuat kunci untuk akun yang ada di halaman Service Accounts.
  2. Berikan izin akses repositori ke akun layanan Anda.

  3. Siapkan VM untuk mengakses repositori.

    VM Compute Engine

    1. Tetapkan cloud-platform cakupan akses API ke VM. Untuk mengetahui informasi tentang cara menetapkan cakupan akses, lihat Mengubah akun layanan dan cakupan akses untuk instance.

    2. Perbarui cache paket menggunakan perintah berikut:

      sudo yum makecache
      
    3. Instal plugin Artifact Registry di VM, menggunakan perintah berikut:

      sudo yum install FORMAT-plugin-artifact-registry
      

      Ganti kode berikut:

      • FORMAT dengan salah satu dari berikut ini:
        • yum, jika sistem operasi Anda adalah Enterprise Linux 7 atau yang lebih lama
        • dnf, jika sistem operasi Anda adalah Enterprise Linux 8 atau yang lebih baru

    Pesan Suara Lainnya

    1. Instal kunci penandatanganan RPM menggunakan perintah berikut:

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. Buat file bernama /etc/yum.repos.d/artifact-registry-plugin.repo dengan konten berikut:

      [ar-plugin]
      name=Artifact Registry Plugin
      baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable
      enabled=1
      gpgcheck=1
      

      Ganti kode berikut:

      • FORMAT dengan salah satu dari berikut ini:
        • yum, jika sistem operasi Anda adalah Enterprise Linux 7 atau yang lebih lama
        • dnf, jika sistem operasi Anda adalah Enterprise Linux 8 atau yang lebih baru
      • DISTRO dengan rilis utama Red Hat Enterprise Linux dalam format elX dengan X sebagai versi rilis. Contoh nilai DISTRO yang valid adalah el7 dan el8.
    3. Update Yum menggunakan perintah berikut:

      sudo yum makecache
      
    4. Instal plugin Artifact Registry di VM, menggunakan perintah berikut:

      yum install FORMAT-plugin-artifact-registry
      

      Ganti FORMAT dengan salah satu dari yang berikut ini:

      • yum, jika sistem operasi Anda adalah Enterprise Linux 7 atau yang lebih lama
      • dnf, jika sistem operasi Anda adalah Enterprise Linux 8 atau yang lebih baru
    5. Temukan baris #service_account_json = "/path/to/creds.json" di file artifact-registry.conf, lalu hapus tanda komentar pada baris dan tambahkan jalur kunci akun layanan Anda.

      • Untuk sistem operasi Enterprise Linux 7 atau yang lebih lama, jalur ke file konfigurasi adalah /etc/yum/pluginconf.d/artifact-registry.conf.
      • Untuk sistem operasi Enterprise Linux 8 atau yang lebih baru, jalur ke file konfigurasi adalah /etc/dnf/plugins/artifact-registry.conf.

      Entri file konfigurasi:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      Ganti PATH_TO_SERVICE_ACCOUNT_KEY dengan jalur ke file JSON kunci akun layanan Anda.

Repositori publik

  1. Konfigurasikan akses publik ke repositori.

Mengonfigurasi VM untuk mengakses repositori Yum standar

Untuk mengonfigurasi VM agar dapat mengakses repositori Yum, gunakan alat klien yum atau dnf:

  1. Buat perintah konfigurasi VM dengan menjalankan perintah gcloud beta artifacts print-settings yum:

    gcloud beta artifacts print-settings yum \
        --repository=REPOSITORY \
        --location=LOCATION
    

    Ganti kode berikut:

    • LOCATION adalah lokasi regional atau multi-regional.
    • REPOSITORY adalah nama repositori Artifact Registry.

    Outputnya mirip dengan hal berikut ini:

    # To configure your package manager with this repository:
    
    # Update Yum:
    sudo yum makecache
    
    # Install the Yum credential helper:
    sudo yum install yum-plugin-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [REPOSITORY]
    name=REPOSITORY
    baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
    # Update Yum:
    sudo yum makecache
    
  2. Konfigurasikan alat klien yum untuk mengambil paket dari repositori Anda menggunakan perintah tee dari output perintah print-settings.

    Misalnya, untuk menginstal paket dari my-repo publik dalam project my-project dan di lokasi us-central1, gunakan perintah berikut:

    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [my-repo]
    name=My Repository
    baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo
    enabled=1
    repo_gpgcheck=0
    gpgcheck=0
    EOL
    
  3. Perbarui sumber repositori Anda dengan perintah berikut:

    sudo yum makecache
    

Yum sekarang dapat terhubung ke repositori.

Jika Anda membuat repositori Yum tambahan, buat file .repo untuk setiap repositori di /etc/yum.repos.d/. Jalankan kembali sudo yum update untuk memperbarui sumber repositori.

Mengonfigurasi VM untuk mengakses repositori Yum jarak jauh

Untuk mengonfigurasi VM agar hanya menggunakan repositori Yum jarak jauh, bukan repositori Yum upstream standar, ganti repositori standar dalam daftar repositori VM dengan repositori jarak jauh.

Jika repositori standar ditentukan dalam file konfigurasi, bukan file repositori terpisah (.repo), Anda dapat menghapus entri dalam file konfigurasi dan menggantinya dengan remote, atau menentukan file repositori baru di direktori /etc/yum.repos.d/.

  1. Buka halaman VM instances.

  2. Di baris dengan VM Anda, klik SSH. Jendela baru akan terbuka dengan sesi terminal di VM.

  3. Buka folder /etc/yum.repos.d/ VM dan temukan file repositori yang sesuai (.repo) yang berisi repositori upstream standar. Hal ini terkadang disebut sebagai repositori dasar. Repositori dasar dapat diidentifikasi dari nama repositori Yum yang berisi [base] atau [baseos].

  4. Untuk mengganti repositori dasar sepenuhnya, hapus setelan default di bagian [base].

  5. Tambahkan kode berikut di bawah [base]:

    [base]
    name=YUM_REPOSITORY_NAME
    baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
    enabled=1
    gpgcheck=1
    

    Ganti kode berikut:

  • YUM_REPOSITORY_NAME dengan ID repositori unik satu kata untuk repositori Yum jarak jauh Anda. Nama ini dapat cocok dengan nama repositori upstream jika Anda telah menghapus konfigurasinya, atau nama berbeda untuk mengidentifikasinya sebagai repositori jarak jauh.
  • REPOSITORY_NAME dengan nama repositori yang dapat dibaca manusia.
    • LOCATION dengan lokasi regional atau multi-regional dari repositori jarak jauh.
  • PROJECT_ID dengan project ID VM.
  • REMOTE_REPOSITORY_NAME dengan nama yang Anda berikan ke repositori jarak jauh.

Menggunakan repositori Yum jarak jauh sebagai cadangan

Jika ingin mempertahankan upstream standar sebagai opsi pertama dan menambahkan repositori jarak jauh sebagai opsi penggantian, Anda dapat mempertahankan upstream standar di file repositori, dan membuat file repositori baru di folder /etc/yum.repos.d.

Untuk membuat file repositori baru di folder /etc/yum.repos.d, jalankan perintah berikut:

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[YUM_REPOSITORY_NAME]
name=REPOSITORY_NAME
baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
enabled=1
gpgcheck=1
EOF

Ganti kode berikut:

  • YUM_REPOSITORY_NAME dengan ID repositori unik satu kata untuk repositori Yum jarak jauh Anda.
  • REPOSITORY_NAME dengan nama repositori yang dapat dibaca manusia.
    • LOCATION dengan lokasi regional atau multi-regional dari repositori jarak jauh.
  • PROJECT_ID dengan project ID VM.
  • REMOTE_REPOSITORY_NAME dengan nama yang Anda berikan ke repositori jarak jauh.

Misalnya, perintah berikut mengonfigurasi VM untuk mengambil repositori my-repo dalam project my-project dan lokasi us-east1 saat Yum menginstal repositori my-repo.

sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-east1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF

Langkah selanjutnya