Auf dieser Seite wird beschrieben, wie Sie VMs so konfigurieren, dass Debian-Pakete aus einem Apt-Repository der Artifact Registry installiert werden.
Hinweis
Wenn das Ziel-Apt-Repository nicht vorhanden ist, erstellen Sie ein Standard- oder Remote-Repository. Sie können ein privates Repository 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 den Zugriff gewähren möchten.
- Bei Compute Engine-VMs kann dies das Standarddienstkonto sein. Artifact Registry ruft automatisch Anmeldedaten für Compute Engine-VM-Dienstkonten für jede VM ab, die ein Dienstkonto verwendet.
- Für andere VMs erstellen oder wählen Sie ein Dienstkonto aus, das im Namen Ihrer VM agieren soll. Sie benötigen den Speicherort der Dienstkontoschlüsseldatei, um die VM zu konfigurieren. Auf der Seite Dienstkonten können Sie Schlüssel für vorhandene Konten aufrufen und erstellen.
Weisen Sie Ihrem Dienstkonto Berechtigungen für den Repositoryzugriff zu.
Bereiten Sie die VM für den Zugriff auf das Repository vor.
Compute Engine-VM
Debian-VM
Weisen Sie der VM
cloud-platform
API-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 update
Installieren Sie das
apt-transport-artifact-registry
-Paket auf 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 apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Ersetzen Sie
LOCATION
durch den regionalen oder multiregionalen Speicherort des Repositorys.Weisen Sie der VM
cloud-platform
API-Zugriffsbereiche zu. Informationen zum Festlegen von Zugriffsbereichen finden Sie unter Dienstkonto und Zugriffsbereiche für eine Instanz ändern.Konfigurieren Sie Ihre VM mit dem folgenden Befehl für den Zugriff auf Artifact Registry-Pakete:
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
Aktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt update
Installieren Sie das
apt-transport-artifact-registry
-Paket auf 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 apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Ersetzen Sie
LOCATION
durch den regionalen oder multiregionalen Speicherort des Repositorys.Konfigurieren Sie Ihre VM mit dem folgenden Befehl für den Zugriff auf Artifact Registry-Pakete:
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
Aktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt update
Installieren Sie das
apt-transport-artifact-registry
-Paket auf der VM:sudo apt install apt-transport-artifact-registry
Suchen Sie in der Datei
/etc/apt/apt.conf.d/90artifact-registry
nach der Zeile#Service-Account-JSON "/path/to/creds.json";
, entfernen Sie den Kommentar 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_KEY
durch den Pfad zur JSON-Datei des Dienstkontoschlüssels.
Öffentliches Repository
Konfigurieren Sie den öffentlichen Zugriff auf das Repository.
Wenn Sie eine VM außerhalb von Google Cloudkonfigurieren, müssen Sie Ihren Computer für den Zugriff auf das Repository vorbereiten. Wenn Sie eine Compute Engine-VM konfigurieren, fahren Sie mit dem nächsten Schritt fort.
Installieren Sie den öffentlichen Schlüssel zur Signaturüberprüfung mit dem folgenden Befehl:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
Ersetzen Sie
LOCATION
durch den regionalen oder multiregionalen Speicherort des Repositorys.Aktualisieren Sie Apt mit dem folgenden Befehl:
sudo apt update
VM für den Zugriff auf ein Standard-Apt-Repository konfigurieren
VM für den Zugriff auf ein Apt-Repository konfigurieren:
Generieren Sie den Befehl zur VM-Konfiguration, indem Sie den Befehl
gcloud beta artifacts print-settings apt
ausführen:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATION
Ersetzen Sie Folgendes:
-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. REPOSITORY
ist der Name des Artifact Registry-Repositorys.
Die Ausgabe sieht in 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 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 mit dem Befehl
echo
aus der Ausgabe des Befehlsprint-settings
so, dass Pakete aus Ihrem Repository abgerufen werden.Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository
my-repo
im Projektmy-project
und am Speicherortus-west1
installieren möchten, verwenden Sie den folgenden Befehl:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
Aktualisieren Sie die Repository-Quellen mit dem folgenden Befehl:
sudo apt update
Apt kann jetzt eine Verbindung zum Repository herstellen.
Wenn Sie zusätzliche Apt-Repositories erstellen, können Sie sie der Datei artifact-registry.list
hinzufügen und sudo apt update
dann 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 standardmäßigen Upstream-Apt-Repositories verwendet wird, ersetzen Sie das Standard-Repository in der /etc/apt/sources.list
-Datei der VM durch Ihr Remote-Repository.
Gewähren Sie dem Standard-Compute Engine-Dienstkonto 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.list
der VM und suchen Sie nach dem Standard-Repository, das Sie durch das neue Remote-Repository ersetzen möchten.Löschen Sie die Zeile für das Standard-Repository und ersetzen Sie sie durch Folgendes:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
Ersetzen Sie Folgendes:
LOCATION
durch den regionalen oder multiregionalen Speicherort des Remote-Repositorys.PROJECT_ID
durch die Projekt-ID der VM.REMOTE_REPOSITORY_NAME
durch den Namen, den Sie Ihrem Remote-Repository gegeben haben.UPSTREAM_REPOSITORY_NAME
durch den Namen des Upstream-Repositorys für Ihren Remote-Server.COMPONENTS
durch eine durch Leerzeichen getrennte Liste von Komponentennamen.
Mit dem folgenden Befehl wird die VM beispielsweise so konfiguriert, dass sie Pakete aus dem Repository
my-repo
im Projektmy-project
am Speicherortus-east1
abholt undbuster
als Upstream-Repository für die Komponentenmain
,contrib
undnon-free
verwendet.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
Aktualisieren Sie die Repository-Quellen mit dem folgenden Befehl:
sudo apt update
Apt kann jetzt eine Verbindung zum Repository herstellen.
Remote-Apt-Repository als Sicherung verwenden
Wenn Sie den Standard-Upstream als erste Option beibehalten und das Remote-Repository als Fallback-Option hinzufügen möchten, können Sie den Standard-Upstream in der Datei sources.list
beibehalten und das Remote-Repository entweder an das Ende der Datei sources.list
anhängen oder im Ordner sources.list.d
eine neue Liste erstellen.
Führen Sie den folgenden Befehl aus, um eine neue artifact-registry.list
-Datei 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:
-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. PROJECT_ID
durch die Projekt-ID der VM.REMOTE_REPOSITORY_NAME
durch den Namen, den Sie Ihrem Remote-Repository gegeben haben.UPSTREAM_REPOSITORY_NAME
durch den Namen des Upstream-Repositorys für Ihren Remote-Server.COMPONENTS
durch eine durch Leerzeichen getrennte Liste von Komponentennamen.
Wenn Sie zusätzliche 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 mit der Anfrage ein Authentifizierungstoken angegeben wird.
Konfigurieren Sie den öffentlichen Zugriff auf das Repository.
Führen Sie den folgenden Befehl aus, um Apt so zu konfigurieren, dass Pakete per HTTP aus Ihrem Repository abgerufen werden:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \ REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
Ersetzen Sie Folgendes:
-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. PROJECT_ID
ist die Projekt-ID des Repositorys.REPOSITORY
ist der Name des Repositorys.
Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository
my-repo
im Projektmy-project
und am Speicherortus-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 die Repository-Quellen mit dem folgenden Befehl:
sudo apt update
Apt kann jetzt eine Verbindung zum Repository herstellen.
Wenn Sie zusätzliche Apt-Repositories erstellen, können Sie sie der Datei artifact-registry.list
hinzufügen und sudo apt update
dann noch einmal ausführen, um die Repository-Quellen zu aktualisieren.