Configurer des VM pour installer des packages Debian

Cette page explique comment configurer des VM pour installer des packages Debian à partir d'un dépôt Apt Artifact Registry.

Avant de commencer

Si le dépôt Apt cible n'existe pas, créez un dépôt standard ou distant. Vous pouvez créer un dépôt privé ou public qui ne nécessite pas d'authentification.

Préparer une VM pour accéder à un dépôt Apt

Dépôt privé

  1. Choisissez le compte de service que vous utiliserez pour accorder l'accès.

    • Pour les VM Compute Engine, il peut s'agir du compte de service par défaut. Artifact Registry récupère automatiquement les identifiants du compte de service de VM Compute Engine pour toute VM utilisant un compte de service.
    • Pour les autres VM, créez ou choisissez un compte de service qui agira au nom de votre VM. Vous aurez besoin de l'emplacement du fichier de clé du compte de service pour configurer la VM. Vous pouvez afficher et créer des clés pour les comptes existants sur la page Comptes de service.
  2. Accordez des autorisations d'accès au dépôt à votre compte de service.

  3. Préparez la VM pour accéder au dépôt.

    VM Compute Engine

    VM Debian

    1. Attribuez des niveaux d'accès à l'API cloud-platform à la VM. Pour en savoir plus sur la définition des niveaux d'accès, consultez la section Modifier le compte de service et les niveaux d'accès d'une instance.

    2. Mettez à jour Apt à l'aide de la commande suivante:

      sudo apt update
      
    3. Installez le package apt-transport-artifact-registry sur la VM:

      sudo apt install apt-transport-artifact-registry
      

    VM Ubuntu

    1. Installez les clés de signature du dépôt Apt à l'aide de la commande suivante:

      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 -
      

      Remplacez LOCATION par l'emplacement du dépôt.

    2. Attribuez des niveaux d'accès à l'API cloud-platform à la VM. Pour en savoir plus sur la définition des niveaux d'accès, consultez la section Modifier le compte de service et les niveaux d'accès d'une instance.

    3. Configurez votre VM pour accéder aux packages Artifact Registry à l'aide de la commande suivante:

      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. Mettez à jour Apt à l'aide de la commande suivante:

      sudo apt update
      
    5. Installez le package apt-transport-artifact-registry sur la VM:

      sudo apt install apt-transport-artifact-registry
      

    Autre VM

    1. Installez les clés de signature du dépôt Apt à l'aide de la commande suivante:

      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 -
      

      Remplacez LOCATION par l'emplacement du dépôt.

    2. Configurez votre VM pour accéder aux packages Artifact Registry à l'aide de la commande suivante:

      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. Mettez à jour Apt à l'aide de la commande suivante:

      sudo apt update
      
    4. Installez le package apt-transport-artifact-registry sur la VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Recherchez la ligne #Service-Account-JSON "/path/to/creds.json"; dans le fichier /etc/apt/apt.conf.d/90artifact-registry, puis annulez la mise en commentaire de la ligne et ajoutez le chemin d'accès de la clé de votre compte de service.

      Entrée du fichier de configuration :

      Service-Account-JSON  "PATH_TO_SERVICE_ACCOUNT_KEY";
      

      Remplacez PATH_TO_SERVICE_ACCOUNT_KEY par le chemin d'accès au fichier JSON de clé de compte de service.

Dépôt public

  1. Configurez l'accès public au dépôt.

  2. Si vous configurez une VM en dehors de Google Cloud, préparez votre machine à accéder au dépôt. Si vous configurez une VM Compute Engine, passez à l'étape suivante.

    Installez la clé publique de validation de signature à l'aide de la commande suivante:

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

    Remplacez LOCATION par l'emplacement du dépôt.

  3. Mettez à jour Apt à l'aide de la commande suivante:

    sudo apt update
    

Configurer une VM pour accéder à un dépôt Apt standard

Configurez une VM pour accéder à un dépôt Apt:

  1. Générez la commande de configuration de VM en exécutant la commande gcloud beta artifacts print-settings apt:

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

    Remplacez les éléments suivants :

    • LOCATION est un emplacement régional ou multirégional.
    • REPOSITORY est le nom du dépôt Artifact Registry.

    Le résultat ressemble à ce qui suit :

    # 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. Configurez Apt pour récupérer les packages de votre dépôt à l'aide de la commande echo du résultat de la commande print-settings.

    Par exemple, pour installer des packages à partir du dépôt public my-repo dans le projet my-project et à l'emplacement us-central1, utilisez la commande suivante:

    echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Mettez à jour les sources de votre dépôt à l'aide de la commande suivante:

    sudo apt update
    

Apt peut maintenant se connecter au dépôt.

Si vous créez des dépôts Apt supplémentaires, vous pouvez les ajouter au fichier artifact-registry.list, puis réexécuter sudo apt update pour mettre à jour les sources du dépôt.

Configurer une VM pour accéder à un dépôt Apt distant

Pour configurer une VM afin qu'elle n'utilise qu'un dépôt Apt distant au lieu d'un dépôt Apt standard en amont, remplacez le dépôt standard par votre dépôt distant dans le fichier /etc/apt/sources.list de la VM.

  1. Accordez des autorisations d'écriture Artifact Registry à l'échelle du projet au compte de service Compute Engine par défaut:

     gcloud projects add-iam-policy-binding PROJECT_ID \
       --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
       --role=roles/artifactregistry.writer
    
  2. Accédez à la page Instances de VM.

  3. Sur la ligne correspondant à votre VM, cliquez sur SSH.

    Une nouvelle fenêtre affiche une session de terminal sur la VM.

  4. Ouvrez le fichier /etc/apt/sources.list de la VM et localisez le dépôt standard que vous souhaitez remplacer par votre nouveau dépôt distant.

  5. Supprimez la ligne de dépôt standard et remplacez-la par ce qui suit:

    deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS
    

    Remplacez les éléments suivants :

    • LOCATION par l'emplacement régional ou multirégional du dépôt distant.
    • PROJECT_ID par l'ID de projet de la VM.
    • REMOTE_REPOSITORY_NAME par le nom que vous avez donné à votre dépôt distant ;
    • UPSTREAM_REPOSITORY_NAME par le nom du dépôt en amont de votre dépôt distant.
    • COMPONENTS par une liste de noms de composants séparés par des espaces.

    Par exemple, la commande suivante configure la VM pour qu'elle récupère les packages à partir du dépôt my-repo dans le projet my-project à l'emplacement us-east1 en utilisant buster comme dépôt en amont pour les composants main, contrib et non-free.

    deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
    
  6. Mettez à jour les sources de votre dépôt à l'aide de la commande suivante:

    sudo apt update
    

    Apt peut maintenant se connecter au dépôt.

Utiliser un dépôt Apt distant comme sauvegarde

Si vous souhaitez conserver le dépôt standard en amont comme première option et ajouter le dépôt distant comme option de remplacement, vous pouvez conserver le dépôt standard en amont dans le fichier sources.list et ajouter le dépôt distant à la fin du fichier sources.list ou créer une liste dans le dossier sources.list.d.

Pour créer un fichier artifact-registry.list dans le dossier sources.list.d, exécutez la commande suivante:

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

Remplacez les éléments suivants :

  • LOCATION par l'emplacement régional ou multirégional du dépôt distant.
  • PROJECT_ID par l'ID de projet de la VM.
  • REMOTE_REPOSITORY_NAME par le nom que vous avez donné à votre dépôt distant.
  • UPSTREAM_REPOSITORY_NAME par le nom du dépôt en amont de votre conteneur distant.
  • COMPONENTS avec une liste de noms de composants séparés par des espaces.

Si vous créez d'autres dépôts Apt, vous pouvez les ajouter au fichier artifact-registry.list ou sources.list, puis réexécuter sudo apt update pour mettre à jour les sources du dépôt.

Configurer l'accès HTTP à un dépôt Apt

Si vous utilisez d'anciens outils clients qui ne sont pas compatibles avec le chiffrement SSL, vous pouvez configurer un accès public à votre dépôt Apt et y accéder via HTTP. Les requêtes envoyées à des dépôts lisibles publiquement à l'aide de HTTP seront refusées si un jeton d'authentification est présenté avec la requête.

  1. Configurez l'accès public au dépôt.

  2. Pour configurer Apt afin qu'il récupère les packages de votre dépôt à l'aide du protocole HTTP, exécutez la commande suivante:

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

    Remplacez les éléments suivants :

    • LOCATION par l'emplacement du dépôt.
    • PROJECT_ID par l'ID de projet du dépôt.
    • REPOSITORY par le nom du dépôt.

    Par exemple, pour installer des packages à partir du dépôt public my-repo dans le projet my-project et à l'emplacement us-central1 à l'aide du protocole HTTP, utilisez la commande suivante:

    echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
    
  3. Mettez à jour les sources de votre dépôt à l'aide de la commande suivante:

    sudo apt update
    

Apt peut maintenant se connecter au dépôt.

Si vous créez des dépôts Apt supplémentaires, vous pouvez les ajouter au fichier artifact-registry.list, puis réexécuter sudo apt update pour mettre à jour les sources du dépôt.

Étapes suivantes