VMs für die Installation von Debian-Paketen konfigurieren

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 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, über das Sie Zugriff gewähren möchten.

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

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

    Compute Engine-VM

    Debian-VM

    1. Zuweisen cloud-platform API-Zugriffsbereiche auf die VM übertragen. 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 apt-transport-artifact-registry-Paket auf der VM:

      sudo apt install apt-transport-artifact-registry
      

    Ubuntu-VM

    1. Installieren Sie die Apt-Repository-Signaturschlüssel mit folgendem Befehl: 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 von 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. VM für den Zugriff auf Artifact Registry-Pakete konfigurieren mit 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.list
      
    4. Aktualisieren Sie Apt mit dem folgenden Befehl:

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

      sudo apt install apt-transport-artifact-registry
      

    Andere VM

    1. Installieren Sie die Apt-Repository-Signaturschlüssel mit folgendem Befehl: 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 von des Repositorys.

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

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

      sudo apt install apt-transport-artifact-registry
      
    5. Die Linie #Service-Account-JSON "/path/to/creds.json"; finden in der Datei /etc/apt/apt.conf.d/90artifact-registry ein, dann Entfernen Sie die Kommentarzeichen vor der Zeile 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

  1. Öffentlichen Zugriff konfigurieren in das Repository übertragen.

  2. Wenn Sie eine VM außerhalb von Google Cloud konfigurieren, bereiten Sie um auf das Repository zuzugreifen. Wenn Sie eine Compute Engine-VM konfigurieren, fahren Sie mit dem nächsten Schritt fort.

    Installieren Sie den Schlüssel zur Bestätigung der öffentlichen Signatur mit folgendem Befehl: Befehl:

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

    Ersetzen Sie LOCATION durch den Speicherort des zu erstellen.

  3. Aktualisieren Sie Apt mit dem folgenden Befehl:

    sudo apt update
    

VM für den Zugriff auf ein Standard-Apt-Repository konfigurieren

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

  1. 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 ein regionaler oder multiregionaler location fest.
    • REPOSITORY ist der Name von Artifact Registry zu erstellen.

    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 das Apt, um mithilfe der echo Pakete aus Ihrem Repository abzurufen aus der Ausgabe des Befehls print-settings.

    Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository my-repo im Projekt my-project und am Standort us-central1: Befehl:

    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-Repositorys erstellen, können Sie diese zum artifact-registry.list-Datei und führen Sie dann sudo apt update noch einmal aus, um sie zu aktualisieren. Repository-Quellen.

VM für den Zugriff auf ein Remote-Apt-Repository konfigurieren

Um eine VM so zu konfigurieren, dass nur ein Remote-apt-Repository anstelle eines Standard-Repositorys verwendet wird Upstream Apt-Repository, ersetzen Sie das Standard-Repository durch Ihr Remote-Repository Repository in der Datei /etc/apt/sources.list der VM.

  1. 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
    
  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 den Standard Repository, das Sie durch Ihr neues Remote-Repository ersetzen möchten.

  5. Löschen Sie die Standard-Repository-Zeile 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 das regionale oder multiregionale Element location 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.

    Im folgenden Beispiel wird die VM für den Abruf von Pakete aus dem Repository my-repo im Projekt my-project in Speicherort us-east1 unter Verwendung von buster als Upstream-Repository für Komponenten main, contrib und non-free.

    deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
    
  6. 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 durch den regionalen oder multiregionalen Speicherort des Remote-Repositories.
  • PROJECT_ID durch die Projekt-ID der VM.
  • REMOTE_REPOSITORY_NAME durch den Namen, den du der Fernbedienung gegeben hast zu erstellen.
  • UPSTREAM_REPOSITORY_NAME durch den Namen des Upstreams für Ihr Remote-Repository.
  • COMPONENTS durch eine durch Leerzeichen getrennte Liste von Komponentennamen.

Wenn Sie zusätzliche Apt-Repositorys erstellen, können Sie diese zum artifact-registry.list- oder sources.list-Datei und führen Sie dann sudo apt update noch einmal aus um 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.

  1. Öffentlichen Zugriff konfigurieren in das Repository übertragen.

  2. 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' >> /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 Repositorynamen.

    Wenn Sie beispielsweise Pakete aus dem öffentlichen Repository my-repo im Projekt my-project und am Speicherort us-central1 über HTTP die Methode folgenden Befehl:

    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-Repositorys erstellen, können Sie diese zum artifact-registry.list-Datei und führen Sie dann sudo apt update noch einmal aus, um sie zu aktualisieren. Repository-Quellen.

Nächste Schritte