Mengonfigurasi VM untuk menginstal paket Debian

Halaman ini menjelaskan cara mengonfigurasi VM untuk menginstal paket Debian dari repositori Apt Artifact Registry.

Sebelum memulai

Jika repositori Apt target tidak ada, buat repositori standar atau jarak jauh baru. Anda dapat membuat repositori pribadi, atau repositori publik yang tidak memerlukan autentikasi.

Menyiapkan VM untuk mengakses repositori Apt

Repositori pribadi

  1. Pilih akun layanan yang akan Anda gunakan untuk memberikan akses.

    • Untuk VM Compute Engine, ini mungkin adalah akun layanan default. Artifact Registry otomatis mengambil kredensial akun layanan VM Compute Engine untuk VM apa pun yang menggunakan akun layanan.
    • Untuk VM lain, 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

    VM Debian

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

    2. Update Apt menggunakan perintah berikut:

      sudo apt update
      
    3. Instal paket apt-transport-artifact-registry di VM:

      sudo apt install apt-transport-artifact-registry
      

    VM Ubuntu

    1. Instal kunci penandatanganan repositori Apt, menggunakan perintah berikut:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Ganti LOCATION dengan lokasi repositori.

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

    3. Konfigurasikan VM Anda untuk mengakses paket Artifact Registry menggunakan perintah berikut:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    4. Update Apt menggunakan perintah berikut:

      sudo apt update
      
    5. Instal paket apt-transport-artifact-registry di VM:

      sudo apt install apt-transport-artifact-registry
      

    VM lainnya

    1. Instal kunci penandatanganan repositori Apt, menggunakan perintah berikut:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Ganti LOCATION dengan lokasi repositori.

    2. Konfigurasikan VM Anda untuk mengakses paket Artifact Registry menggunakan perintah berikut:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    3. Update Apt menggunakan perintah berikut:

      sudo apt update
      
    4. Instal paket apt-transport-artifact-registry di VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Temukan baris #Service-Account-JSON "/path/to/creds.json"; dalam file /etc/apt/apt.conf.d/90artifact-registry, lalu hapus komentar baris dan tambahkan jalur kunci akun layanan Anda.

      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. Konfigurasi akses publik ke repositori.

  2. Jika Anda mengonfigurasi VM di luar Google Cloud, siapkan komputer untuk mengakses repositori. Jika Anda mengonfigurasi VM Compute Engine, lanjutkan ke langkah berikutnya.

    Instal kunci verifikasi tanda tangan publik, menggunakan perintah berikut:

    curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    

    Ganti LOCATION dengan lokasi repositori.

  3. Update Apt menggunakan perintah berikut:

    sudo apt update
    

Mengonfigurasi VM untuk mengakses repositori Apt standar

Konfigurasikan VM untuk mengakses repositori Apt:

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

    gcloud beta artifacts print-settings apt \
        --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 Apt:
    sudo apt update
    
    # Install the Apt credential helper:
    sudo apt install apt-transport-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    echo "deb ar+https://LOCATION-apt.pkg.dev/projects/PROJECT REPOSITORY main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
    # Update Apt:
    sudo apt update
    
  2. Konfigurasikan Apt untuk mengambil paket dari repositori Anda menggunakan perintah echo dari output perintah print-settings.

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

    echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Perbarui sumber repositori Anda dengan perintah berikut:

    sudo apt update
    

Apt kini dapat terhubung ke repositori.

Jika membuat repositori Apt tambahan, Anda dapat menambahkannya ke file artifact-registry.list, lalu menjalankan kembali sudo apt update untuk mengupdate sumber repositori.

Mengonfigurasi VM untuk mengakses repositori Apt jarak jauh

Untuk mengonfigurasi VM agar hanya menggunakan repositori Apt jarak jauh, bukan repositori upstream Apt standar, ganti repositori standar dengan repositori jarak jauh Anda di file /etc/apt/sources.list VM.

  1. Berikan izin tulis Artifact Registry seluruh project ke akun layanan Compute Engine default:

     gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
       --role=roles/artifactregistry.writer
    
  2. Buka halaman instance VM.

  3. Di baris dengan VM Anda, klik SSH.

    Jendela baru akan terbuka dengan sesi terminal di VM.

  4. Buka file /etc/apt/sources.list VM dan temukan repositori standar yang ingin Anda ganti dengan repositori jarak jauh baru.

  5. Hapus baris repositori standar, lalu ganti dengan baris berikut:

    deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
    

    Ganti kode berikut:

    • LOCATION dengan lokasi regional atau multi-regional repositori jarak jauh.
    • PROJECT_ID dengan project ID VM.
    • REMOTE_REPOSITORY_NAME dengan nama yang Anda berikan ke repositori jarak jauh.
    • UPSTREAM_REPOSITORY_NAME dengan nama repositori upstream untuk remote Anda.
    • COMPONENTS dengan daftar nama komponen yang dipisahkan spasi kosong.

    Misalnya, kode berikut mengonfigurasi VM untuk mengambil paket dari repositori my-repo dalam project my-project di lokasi us-east1 menggunakan buster sebagai repositori upstream untuk komponen main, contrib, dan non-free.

    deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
    
  6. Perbarui sumber repositori Anda dengan perintah berikut:

    sudo apt update
    

    Apt kini dapat terhubung ke repositori.

Menggunakan repositori Apt jarak jauh sebagai cadangan

Jika ingin mempertahankan upstream standar sebagai opsi pertama dan menambahkan repositori jarak jauh sebagai opsi pengganti, Anda dapat mempertahankan upstream standar dalam file sources.list, dan menambahkan repositori jarak jauh ke akhir file sources.list, atau membuat daftar baru di folder sources.list.d.

Untuk membuat file artifact-registry.list baru di folder sources.list.d, jalankan perintah berikut:

echo 'deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS' | sudo tee -a  /etc/apt/sources.list.d/artifact-registry.list

Ganti kode berikut:

  • LOCATION dengan lokasi regional atau multi-regional repositori jarak jauh.
  • PROJECT_ID dengan project ID VM.
  • REMOTE_REPOSITORY_NAME dengan nama yang Anda berikan untuk repositori jarak jauh.
  • UPSTREAM_REPOSITORY_NAME dengan nama repositori upstream untuk remote Anda.
  • COMPONENTS dengan daftar nama komponen yang dipisahkan spasi kosong.

Jika membuat repositori Apt tambahan, Anda dapat menambahkannya ke file artifact-registry.list atau sources.list, lalu menjalankan kembali sudo apt update untuk memperbarui sumber repositori.

Mengonfigurasi akses HTTP ke repositori Apt

Jika menggunakan alat klien lama yang tidak mendukung enkripsi SSL, Anda dapat mengonfigurasi akses publik ke repositori Apt dan mengaksesnya melalui HTTP. Permintaan yang dikirim ke repositori yang dapat dibaca publik menggunakan HTTP akan ditolak jika token autentikasi ditampilkan dengan permintaan.

  1. Konfigurasi akses publik ke repositori.

  2. Untuk mengonfigurasi Apt agar mengambil paket dari repositori Anda menggunakan HTTP, jalankan perintah berikut:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \
     REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    

    Ganti kode berikut:

    • LOCATION dengan lokasi repositori.
    • PROJECT_ID dengan project ID repositori.
    • REPOSITORY dengan nama repositori.

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

    echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  3. Perbarui sumber repositori Anda dengan perintah berikut:

    sudo apt update
    

Apt kini dapat terhubung ke repositori.

Jika membuat repositori Apt tambahan, Anda dapat menambahkannya ke file artifact-registry.list, lalu menjalankan kembali sudo apt update untuk mengupdate sumber repositori.

Langkah selanjutnya