VMs zum Installieren von Debian-Paketen konfigurieren

Auf dieser Seite wird beschrieben, wie VMs konfiguriert werden, um Debian-Pakete aus einem Artifact Registry Apt-Repository zu installieren.

Hinweise

Wenn das Ziel-Apt-Repository nicht vorhanden ist, erstellen Sie ein neues 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

  1. Wählen Sie das Dienstkonto aus, mit dem Sie Zugriff gewähren möchten.

    • Für Compute Engine-VMs kann dies das Standarddienstkonto sein. Artifact Registry ruft automatisch die Anmeldedaten eines Compute Engine-VM-Dienstkontos für jede VM ab, die ein Dienstkonto verwendet.
    • Erstellen oder wählen Sie für andere VMs ein Dienstkonto, das im Namen Ihrer VM agiert. 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 ansehen und erstellen.
  2. Ihrem Dienstkonto Zugriffsberechtigungen für das Repository gewähren.

  3. Bereiten Sie die VM für den Zugriff auf das Repository vor.

    Compute Engine-VM

    Debian VM

    1. 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.

    2. Aktualisieren Sie Apt mit dem folgenden Befehl:

      sudo apt update
      
    3. Installieren Sie das Paket apt-transport-artifact-registry auf der VM:

      sudo apt install apt-transport-artifact-registry
      

    Ubuntu-VM

    1. Installieren Sie die Signaturschlüssel des Apt-Repositorys 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 Speicherort des Repositorys.

    2. 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.

    3. Konfigurieren Sie die 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
      
    4. Aktualisieren Sie Apt mit dem folgenden Befehl:

      sudo apt update
      
    5. Installieren Sie das Paket apt-transport-artifact-registry auf der VM:

      sudo apt install apt-transport-artifact-registry
      

    Andere VM

    1. Installieren Sie die Signaturschlüssel des Apt-Repositorys 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 Speicherort des Repositorys.

    2. Konfigurieren Sie die 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
      
    3. Aktualisieren Sie Apt mit dem folgenden Befehl:

      sudo apt update
      
    4. Installieren Sie das Paket apt-transport-artifact-registry auf der VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Suchen Sie die Zeile #Service-Account-JSON "/path/to/creds.json"; in der Datei /etc/apt/apt.conf.d/90artifact-registry, entfernen Sie die Kommentarzeichen in der Zeile und fügen Sie den Pfad Ihres Dienstkontoschlüssels hinzu.

      Eintrag in der Konfigurationsdatei:

      Service-Account-JSON  "PATH_TO_SERVICE_ACCOUNT_KEY";
      

      Geben Sie für PATH_TO_SERVICE_ACCOUNT_KEY den Pfad zu Ihrer JSON-Datei mit dem Dienstkontoschlüssel an.

Öffentliches Repository

  1. Konfigurieren Sie den öffentlichen Zugriff auf das Repository.

  2. Wenn Sie eine VM außerhalb von Google Cloud konfigurieren, 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 mit dem folgenden Befehl den Bestätigungsschlüssel für die öffentliche Signatur:

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

    Ersetzen Sie LOCATION durch den Speicherort des Repositorys.

  3. Aktualisieren Sie Apt mit dem folgenden Befehl:

    sudo apt update
    

VM für den Zugriff auf ein standardmäßiges Apt-Repository konfigurieren

Konfigurieren Sie eine VM für den Zugriff auf ein Apt-Repository:

  1. Generieren Sie den VM-Konfigurationsbefehl mit dem Befehl gcloud beta artifacts print-settings apt:

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

    Ersetzen Sie Folgendes:

    • LOCATION ist ein regionaler oder multiregionaler Standort.
    • 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
    
  2. Konfigurieren Sie Apt so, dass Pakete aus Ihrem Repository mit dem Befehl echo in der Ausgabe des Befehls print-settings abgerufen werden.

    Verwenden Sie beispielsweise den folgenden Befehl, um Pakete aus dem öffentlichen Repository my-repo im Projekt my-project und am Speicherort us-central1 zu installieren:

    echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Aktualisieren Sie Ihre 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 diese 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 in der Datei /etc/apt/sources.list der VM durch Ihr Remote-Repository.

  1. Gewähren Sie dem Compute Engine-Standarddienstkonto projektweite Artifact Registry-Schreibberechtigungen:

     gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
       --role=roles/artifactregistry.writer
    
  2. Öffnen Sie die Seite "VM-Instanzen".

  3. Klicken Sie in der Zeile mit Ihrer VM auf SSH.

    Ein neues Fenster mit einer Terminalsitzung auf der VM wird geöffnet.

  4. Öffnen Sie die Datei /etc/apt/sources.list der VM und suchen Sie das Standard-Repository, das Sie durch Ihr neues Remote-Repository ersetzen möchten.

  5. Löschen Sie die Zeile mit dem 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 Standort des Remote-Repositorys.
    • PROJECT_ID durch die Projekt-ID der VM.
    • REMOTE_REPOSITORY_NAME durch den Namen, den Sie dem Remote-Repository gegeben haben.
    • UPSTREAM_REPOSITORY_NAME durch den Namen des Upstream-Repositorys für Ihr Remote-Repository.
    • COMPONENTS durch eine durch Leerzeichen getrennte Liste von Komponentennamen.

    Im folgenden Beispiel wird die VM so konfiguriert, dass sie Pakete aus dem Repository my-repo im Projekt my-project am Standort us-east1 abruft. Dabei wird buster als Upstream-Repository für die Komponenten main, contrib und non-free verwendet.

    deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
    
  6. Aktualisieren Sie Ihre 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 das Standard-Upstream als erste Option beibehalten und das Remote-Repository als Fallback-Option hinzufügen möchten, können Sie das Standard-Upstream in der Datei sources.list belassen und das Remote-Repository entweder an das 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 im Ordner sources.list.d eine neue Datei artifact-registry.list 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 durch den regionalen oder multiregionalen Standort des Remote-Repositorys.
  • PROJECT_ID durch die Projekt-ID der VM.
  • REMOTE_REPOSITORY_NAME durch den Namen, den Sie dem Remote-Repository gegeben haben.
  • UPSTREAM_REPOSITORY_NAME durch den Namen des Upstream-Repositorys für Ihr Remote-Repository.
  • COMPONENTS durch eine durch Leerzeichen getrennte Liste von Komponentennamen.

Wenn Sie zusätzliche Apt-Repositories erstellen, können Sie diese 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 öffentliche lesbare Repositories gesendet werden, werden abgelehnt, wenn ein Authentifizierungstoken zusammen mit der Anfrage gesendet wird.

  1. Konfigurieren Sie den öffentlichen Zugriff auf das Repository.

  2. Führen Sie den folgenden Befehl aus, um Apt so zu konfigurieren, dass Pakete über HTTP aus Ihrem Repository abgerufen werden:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID REPOSITORY main' >> /etc/apt/sources.list.d/artifact-registry.list
    

    Ersetzen Sie Folgendes:

    • LOCATION durch den Speicherort des Repositorys.
    • PROJECT_ID durch die Projekt-ID des Repositorys.
    • REPOSITORY durch den Repository-Namen.

    Mit dem folgenden Befehl können Sie beispielsweise Pakete aus dem öffentlichen Repository my-repo im Projekt my-project und am Speicherort us-central1 über HTTP installieren:

    echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
    
  3. Aktualisieren Sie Ihre 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 diese der Datei artifact-registry.list hinzufügen und dann sudo apt update noch einmal ausführen, um die Repository-Quellen zu aktualisieren.

Nächste Schritte