Mengonfigurasi instance virtual machine (VM) untuk terhubung ke repositori Apt Artifact Registry memungkinkan Anda menginstal dan mengupdate paket Debian menggunakan alat Apt standar. Anda dapat menyiapkan autentikasi dan sumber repositori untuk VM Compute Engine guna menarik paket dari repositori pribadi atau publik.
Sebelum memulai
Jika repositori Apt target tidak ada, buat repositori standar atau jarak jauh. Anda dapat membuat repositori pribadi, atau repositori publik yang tidak memerlukan autentikasi.Menyiapkan VM untuk mengakses repositori Apt
Repositori pribadi
Pilih akun layanan yang akan Anda gunakan untuk memberikan akses.
- Untuk VM Compute Engine, akun ini mungkin berupa akun layanan default. Artifact Registry secara otomatis mengambil kredensial akun layanan VM Compute Engine untuk VM apa pun yang menggunakan akun layanan.
- Untuk VM lain, buat atau pilih akun layanan yang akan bertindak atas nama VM Anda. Anda akan memerlukan lokasi file kunci akun layanan untuk mengonfigurasi VM. Anda dapat melihat dan membuat kunci untuk akun yang ada di halaman Service Accounts.
Berikan izin akses repositori ke akun layanan Anda.
Siapkan VM untuk mengakses repositori.
VM Compute Engine
VM Debian
Tetapkan cakupan akses API
cloud-platformke VM. Untuk mengetahui informasi tentang cara menetapkan cakupan akses, lihat Mengubah akun layanan dan cakupan akses untuk instance.Perbarui Apt menggunakan perintah berikut:
sudo apt updateInstal paket
apt-transport-artifact-registrydi VM:sudo apt install apt-transport-artifact-registry
VM Ubuntu
Instal kunci penandatanganan repositori Apt menggunakan perintah berikut:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpgGanti
LOCATIONdengan lokasi repositori regional atau multi-regional.Tetapkan cakupan akses API
cloud-platformke VM. Untuk mengetahui informasi tentang cara menetapkan cakupan akses, lihat Mengubah akun layanan dan cakupan akses untuk instance.Konfigurasi 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.listPerbarui Apt menggunakan perintah berikut:
sudo apt updateInstal paket
apt-transport-artifact-registrydi VM:sudo apt install apt-transport-artifact-registry
VM lainnya
Instal kunci penandatanganan repositori Apt menggunakan perintah berikut:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpgGanti
LOCATIONdengan lokasi repositori regional atau multi-regional.Konfigurasi 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.listPerbarui Apt menggunakan perintah berikut:
sudo apt updateInstal paket
apt-transport-artifact-registrydi VM:sudo apt install apt-transport-artifact-registryTemukan baris
#Service-Account-JSON "/path/to/creds.json";dalam file/etc/apt/apt.conf.d/90artifact-registry, lalu hapus tanda 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_KEYdengan jalur ke file JSON kunci akun layanan Anda.
Repositori publik
Konfigurasi akses publik ke repositori.
Jika Anda mengonfigurasi VM di luar Google Cloud, siapkan mesin Anda 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 gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpgGanti
LOCATIONdengan lokasi repositori regional atau multi-regional.Perbarui Apt menggunakan perintah berikut:
sudo apt update
Mengonfigurasi VM untuk mengakses repositori Apt standar
Mengonfigurasi VM untuk mengakses repositori Apt:
Buat perintah konfigurasi VM dengan menjalankan perintah
gcloud beta artifacts print-settings apt:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATIONGanti kode berikut:
-
LOCATIONadalah lokasi repositori regional atau multi-regional. REPOSITORYadalah 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 [signed-by=/etc/apt/trusted.gpg.d/artifact-registry.gpg] 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
-
Konfigurasi Apt untuk mengambil paket dari repositori Anda menggunakan perintah
echodari output perintahprint-settings.Misalnya, untuk menginstal paket dari repositori publik
my-repodi projectmy-projectdan di lokasius-west1, gunakan perintah berikut:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
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 memperbarui
sumber repositori.
Mengonfigurasi VM untuk mengakses repositori Apt jarak jauh
Untuk mengonfigurasi VM agar hanya menggunakan repositori Apt jarak jauh, bukan repositori Apt upstream standar, ganti repositori standar dengan repositori jarak jauh Anda di file /etc/apt/sources.list VM.
Berikan izin tulis Artifact Registry di 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.writerBuka halaman VM instances.
Di baris dengan VM Anda, klik SSH.
Jendela baru akan terbuka dengan sesi terminal di VM.
Buka file
/etc/apt/sources.listVM dan temukan repositori standar yang ingin Anda ganti dengan repositori jarak jauh baru.Hapus baris repositori standar, dan ganti dengan yang berikut:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTSGanti kode berikut:
LOCATIONdengan lokasi regional atau multi-regional repositori jarak jauh.PROJECT_IDdengan project ID VM.REMOTE_REPOSITORY_NAMEdengan nama yang Anda berikan ke repositori jarak jauh Anda.UPSTREAM_REPOSITORY_NAMEdengan nama repositori upstream untuk remote Anda.COMPONENTSdengan daftar nama komponen yang dipisahkan spasi.
Misalnya, berikut mengonfigurasi VM untuk mengambil paket dari repositori
my-repodi projectmy-projectdi lokasius-east1menggunakanstablesebagai repositori upstream untuk komponenmain,contrib, dannon-free.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo stable main contrib non-freePerbarui sumber repositori Anda dengan perintah berikut:
sudo apt updateApt 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 di
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:
-
LOCATIONadalah lokasi repositori regional atau multi-regional. PROJECT_IDdengan project ID VM.REMOTE_REPOSITORY_NAMEdengan nama yang Anda berikan ke repositori jarak jauh Anda.UPSTREAM_REPOSITORY_NAMEdengan nama repositori upstream untuk remote Anda.COMPONENTSdengan daftar nama komponen yang dipisahkan dengan spasi.
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 disertakan dalam permintaan.
Konfigurasi akses publik ke repositori.
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.listGanti kode berikut:
-
LOCATIONadalah lokasi repositori regional atau multi-regional. PROJECT_IDadalah project ID repositori.REPOSITORYadalah nama repositori.
Misalnya, untuk menginstal paket dari repositori publik
my-repodi projectmy-projectdan di lokasius-west1menggunakan HTTP, gunakan perintah berikut:echo 'deb http://us-west1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
-
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 memperbarui
sumber repositori.