Auf dieser Seite wird beschrieben, wie Sie VMs so konfigurieren, dass Debian-Pakete aus einem Artifact Registry-Apt-Repository installiert werden.
Hinweis
Wenn das Ziel-Apt-Repository nicht vorhanden ist, erstellen Sie ein Standard oder Remote Repository. Sie können ein privates oder ein öffentliches Repository erstellen, für das keine Authentifizierung erforderlich ist.VM für den Zugriff auf ein Apt-Repository vorbereiten
Privates Repository
Wählen Sie das Dienstkonto aus, mit dem Sie Zugriff gewähren möchten.
- Bei Compute Engine-VMs kann dies das Standarddienstkonto sein. Artifact Registry ruft automatisch die Anmeldedaten des Compute Engine-VM-Dienstkontos für jede VM ab, die ein Dienstkonto verwendet.
- Erstellen oder wählen Sie für andere VMs ein Dienstkonto aus, das im Namen Ihrer VM agieren soll. Sie benötigen den Speicherort der Dienstkonto-Schlüsseldatei, um die VM zu konfigurieren. Auf der Seite Dienstkonten können Sie Schlüssel für vorhandene Konten aufrufen und erstellen.
Gewähren Sie Ihrem Dienstkonto Berechtigungen für den Repository-Zugriff.
Bereiten Sie die VM für den Zugriff auf das Repository vor.
Compute Engine-VM
Debian-VM
Weisen Sie der VM
cloud-platformAPI-Zugriffsbereiche zu. Informationen zum Festlegen von Zugriffsbereichen finden Sie unter Dienstkonto und Zugriffsbereiche für eine Instanz ändern.Aktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt updateInstallieren Sie das Paket
apt-transport-artifact-registryauf der VM:sudo apt install apt-transport-artifact-registry
Ubuntu-VM
Installieren Sie die Signaturschlüssel für das Apt-Repository mit dem folgenden Befehl:
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.gpgErsetzen Sie
LOCATIONdurch den regionalen oder multiregionalen Standort des Repositorys.Weisen Sie der VM
cloud-platformAPI-Zugriffsbereiche zu. Informationen zum Festlegen von Zugriffsbereichen finden Sie unter Dienstkonto und Zugriffsbereiche für eine Instanz ändern.Konfigurieren Sie Ihre VM für den Zugriff auf Artifact Registry-Pakete mit dem folgenden Befehl:
echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listAktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt updateInstallieren Sie das Paket
apt-transport-artifact-registryauf der VM:sudo apt install apt-transport-artifact-registry
Andere VM
Installieren Sie die Signaturschlüssel für das Apt-Repository mit dem folgenden Befehl:
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.gpgErsetzen Sie
LOCATIONdurch den regionalen oder multiregionalen Standort des Repositorys.Konfigurieren Sie Ihre VM für den Zugriff auf Artifact Registry-Pakete mit dem folgenden Befehl:
echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listAktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt updateInstallieren Sie das Paket
apt-transport-artifact-registryauf der VM:sudo apt install apt-transport-artifact-registrySuchen Sie in der Datei
/etc/apt/apt.conf.d/90artifact-registrynach der Zeile#Service-Account-JSON "/path/to/creds.json";, entfernen Sie die Kommentarzeichen und fügen Sie den Pfad Ihres Dienstkontoschlüssels hinzu.Eintrag in der Konfigurationsdatei:
Service-Account-JSON "PATH_TO_SERVICE_ACCOUNT_KEY";
Ersetzen Sie
PATH_TO_SERVICE_ACCOUNT_KEYdurch den Pfad zu Ihrer JSON-Datei mit dem Dienstkontoschlüssel.
Öffentliches Repository
Konfigurieren Sie den öffentlichen Zugriff auf das Repository.
Wenn Sie eine VM außerhalb von Google Cloudkonfigurieren, bereiten Sie Ihren Computer für den Zugriff auf das Repository vor. Wenn Sie eine Compute Engine-VM konfigurieren, fahren Sie mit dem nächsten Schritt fort.
Installieren Sie den öffentlichen Schlüssel zur Signaturprüfung mit dem folgenden Befehl:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpgErsetzen Sie
LOCATIONdurch den regionalen oder multiregionalen Standort des Repositorys.Aktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt update
VM für den Zugriff auf ein Standard-Apt-Repository konfigurieren
So konfigurieren Sie eine VM für den Zugriff auf ein Apt-Repository:
Generieren Sie den VM-Konfigurationsbefehl, indem Sie den
gcloud beta artifacts print-settings aptBefehl ausführen:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATIONErsetzen Sie Folgendes:
-
LOCATIONist der regionale oder multiregionale Standort des Repositorys. REPOSITORYist der Name des Artifact Registry-Repositorys.
Die Ausgabe sieht etwa so aus:
# 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
-
Konfigurieren Sie Apt so, dass Pakete aus Ihrem Repository abgerufen werden. Verwenden Sie dazu den Befehl
echoaus der Ausgabe des Befehlsprint-settings.Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository
my-repoim Projektmy-projectund am Standortus-west1installieren möchten, verwenden Sie den folgenden Befehl:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
Aktualisieren Sie Ihre Repository-Quellen mit dem folgenden Befehl:
sudo apt update
Apt kann jetzt eine Verbindung zum Repository herstellen.
Wenn Sie weitere Apt-Repositories erstellen, können Sie sie der Datei artifact-registry.list hinzufügen und dann sudo apt update noch einmal ausführen, um die Repository-Quellen zu aktualisieren.
VM für den Zugriff auf ein Remote-Apt-Repository konfigurieren
Wenn Sie eine VM so konfigurieren möchten, dass nur ein Remote-Apt-Repository anstelle eines Standard-Upstream-Apt-Repositorys verwendet wird, ersetzen Sie das Standard-Repository durch Ihr Remote-Repository in der Datei /etc/apt/sources.list der VM.
Gewähren Sie dem Standarddienstkonto von Compute Engine projektweite Schreibberechtigungen für Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writerÖffnen Sie die Seite "VM-Instanzen".
Klicken Sie in der Zeile mit Ihrer VM auf SSH.
Ein neues Fenster mit einer Terminalsitzung auf der VM wird geöffnet.
Öffnen Sie die Datei
/etc/apt/sources.listder VM und suchen Sie nach dem Standard-Repository, das Sie durch Ihr neues Remote-Repository ersetzen möchten.Löschen Sie die Zeile des Standard-Repositorys und ersetzen Sie sie durch Folgendes:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTSErsetzen Sie Folgendes:
LOCATIONdurch den regionalen oder multiregionalen Standort des Remote-Repositorys.PROJECT_IDdurch die Projekt-ID der VM.REMOTE_REPOSITORY_NAMEdurch den Namen, den Sie Ihrem Remote-Repository gegeben haben.UPSTREAM_REPOSITORY_NAMEdurch den Namen des Upstream-Repositorys für Ihr Remote-Repository.COMPONENTSdurch eine durch Leerzeichen getrennte Liste von Komponentennamen.
Die folgende Konfiguration konfiguriert die VM so, dass Pakete aus dem Repository
my-repoim Projektmy-projectam Standortus-east1abgerufen werden. Dabei wirdstableals Upstream-Repository für die Komponentenmain,contribundnon-freeverwendet.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo stable main contrib non-freeAktualisieren Sie Ihre Repository-Quellen mit dem folgenden Befehl:
sudo apt updateApt kann jetzt eine Verbindung zum Repository herstellen.
Remote-Apt-Repository als Backup verwenden
Wenn Sie das Standard-Upstream-Repository als erste Option beibehalten und das Remote-Repository als Fallback-Option hinzufügen möchten, können Sie das Standard-Upstream-Repository in der Datei sources.list beibehalten und das Remote-Repository entweder am Ende der Datei sources.list anhängen oder eine neue Liste im Ordner sources.list.d erstellen.
Führen Sie den folgenden Befehl aus, um eine neue Datei artifact-registry.list im Ordner sources.list.d zu erstellen:
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
Ersetzen Sie Folgendes:
-
LOCATIONist der regionale oder multiregionale Standort des Repositorys. PROJECT_IDdurch die Projekt-ID der VM.REMOTE_REPOSITORY_NAMEdurch den Namen, den Sie Ihrem Remote Repository gegeben haben.UPSTREAM_REPOSITORY_NAMEdurch den Namen des Upstream- Repositorys für Ihr Remote-Repository.COMPONENTSdurch eine durch Leerzeichen getrennte Liste von Komponentennamen.
Wenn Sie weitere Apt-Repositories erstellen, können Sie sie der Datei artifact-registry.list oder sources.list hinzufügen und dann sudo apt update noch einmal ausführen, um die Repository-Quellen zu aktualisieren.
HTTP-Zugriff auf ein Apt-Repository konfigurieren
Wenn Sie ältere Clienttools verwenden, die keine SSL-Verschlüsselung unterstützen, können Sie den öffentlichen Zugriff auf Ihr Apt-Repository konfigurieren und über HTTP darauf zugreifen. Anfragen, die über HTTP an öffentlich lesbare Repositories gesendet werden, werden abgelehnt, wenn ein Authentifizierungstoken mit der Anfrage gesendet wird.
Konfigurieren Sie den öffentlichen Zugriff auf das Repository.
Führen Sie den folgenden Befehl aus, um Apt so zu konfigurieren, dass Pakete aus Ihrem Repository über HTTP abgerufen werden:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \ REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listErsetzen Sie Folgendes:
-
LOCATIONist der regionale oder multiregionale Standort des Repositorys. PROJECT_IDist die Projekt-ID des Repositorys.REPOSITORYist der Name des Repositorys.
Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository
my-repoim Projektmy-projectund am Standortus-west1über HTTP installieren möchten, verwenden Sie den folgenden Befehl: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
-
Aktualisieren Sie Ihre Repository-Quellen mit dem folgenden Befehl:
sudo apt update
Apt kann jetzt eine Verbindung zum Repository herstellen.
Wenn Sie weitere Apt-Repositories erstellen, können Sie sie der Datei artifact-registry.list hinzufügen und dann sudo apt update noch einmal ausführen, um die Repository-Quellen zu aktualisieren.