Stocker des packages Apt dans Artifact Registry

Ce guide de démarrage rapide vous explique comment configurer un dépôt Apt Artifact Registry privé, ajouter un package Debian au dépôt et installer le package sur une VM Compute Engine exécutant un système d'exploitation basé sur Debian.

Pour en savoir plus sur la gestion des packages Debian, consultez Utiliser des packages Debian.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer des dépôts de packages Apt Artifact Registry, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lancer Cloud Shell

Cloud Shell est préinstallé avec la Google Cloud CLI. La gcloud CLI fournit l'interface de ligne de commande principale pour Google Cloud.

Lancez Cloud Shell :

  1. Accédez à la Google Cloud console.

    Google Cloud Console

  2. Dans la Google Cloud console, cliquez sur Activer Cloud Shell Activer le bouton Cloud Shell.

Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console. Vous utiliserez ce shell pour exécuter les commandes gcloud afin de créer une VM et un dépôt.

Créer un dépôt

Créez le dépôt pour vos artefacts.

  1. Créez le dépôt :

    Console

    1. Ouvrez la page Dépôts dans la Google Cloud console.

      Ouvrir la page "Dépôts"

    2. Cliquez sur Créer un dépôt.

    3. Spécifiez quickstart-apt-repo comme nom de dépôt.

    4. Sélectionnez Apt comme format.

    5. Sous Type d'emplacement, sélectionnez Région, puis l'emplacement us-west1.

    6. Cliquez sur Créer.

    Le dépôt est ajouté à la liste des dépôts.

    gcloud

    1. Dans Cloud Shell, exécutez la commande suivante pour créer un nouveau dépôt Apt dans le projet actuel nommé quickstart-apt-repo à l'emplacement us-west1.

      gcloud artifacts repositories create quickstart-apt-repo \
          --repository-format=apt \
          --location=us-west1 \
          --description="Apt repository"
      
    2. Exécutez la commande suivante pour vérifier que votre dépôt a bien été créé :

      gcloud artifacts repositories list
      

Vous pouvez maintenant ajouter un package au dépôt. Cloud Shell utilise une image Ubuntu créée par Google, et non Debian. Pour gérer les packages Debian dans le dépôt, vous utiliserez une VM qui utilise une image de système d'exploitation Debian.

Créer une VM

Créez une VM Compute Engine sur laquelle vous installerez l'exemple de package.

Dans Cloud Shell, exécutez la commande suivante pour créer une instance de VM nommée quickstart-apt-vm :

gcloud compute instances create quickstart-apt-vm \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --scopes=cloud-platform

Par défaut, la VM ne dispose pas des niveaux d'accès requis pour utiliser le dépôt. L'indicateur --scopes définit le niveau d'accès de la VM sur cloud-platform.

  1. Accédez à la page des instances de VM.

    Ouvrir la page "Instances de VM"

  2. Dans la ligne de votre VM, cliquez sur SSH. Une nouvelle fenêtre s'ouvre avec une session de terminal sur la VM.

Ajouter un package au dépôt

Vous pouvez importer un package dans un dépôt à l'aide de Google Cloud CLI ou importer un package stocké dans Cloud Storage. Si vous créez des packages à l'aide de Cloud Build, la compilation peut les stocker dans Cloud Storage pour que vous puissiez les importer.

Pour ce guide de démarrage rapide, vous allez importer un exemple de fichier à l'aide de la commande gcloud artifacts apt upload.

  1. Exécutez gcloud init pour initialiser Google Cloud CLI sur votre VM.

  2. Mettez à jour Apt :

    sudo apt update
    
  3. Téléchargez le package curl à l'aide de la commande suivante :

    apt download curl
    

    Apt télécharge la dernière version du package disponible dans vos dépôts Apt configurés.

    Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
    Get:2 https://deb.debian.org/debian bookworm/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
    Fetched 316 kB in 0s (3078 kB/s)
    

    Exécutez ls pour obtenir le nom de fichier du package curl. Le nom de fichier est semblable à curl_7.88.1-10+deb12u14_amd64.deb.

  4. Pour simplifier les commandes gcloud, définissez le dépôt par défaut sur quickstart-apt-repo et l'emplacement par défaut sur us-west1. Une fois les valeurs définies, vous n'avez plus besoin de les spécifier dans les commandes gcloud qui nécessitent un dépôt ou un emplacement.

    Pour définir le dépôt, exécutez la commande suivante :

    gcloud config set artifacts/repository quickstart-apt-repo
    

    Pour définir l'emplacement, exécutez la commande suivante :

    gcloud config set artifacts/location us-west1
    

    Pour plus d'informations sur ces commandes, consultez la documentation gcloud config set.

  5. Exécutez gcloud artifacts apt upload pour importer le package dans le dépôt :

    gcloud artifacts apt upload quickstart-apt-repo \
        --source=FILE_NAME
    

    Remplacez FILE_NAME par le chemin d'accès au package curl.

Afficher le package dans le dépôt

Vérifiez que votre package a bien été ajouté au dépôt.

Console

  1. Ouvrez la page Dépôts dans la Google Cloud console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur le dépôt quickstart-apt-repo.

    La page Packages répertorie les packages du dépôt.

gcloud

Pour lister les packages dans le dépôt quickstart-apt-repo, exécutez la commande suivante :

 gcloud artifacts packages list

Pour afficher les versions d'un package dans quickstart-apt-repo, exécutez la commande suivante :

gcloud artifacts versions list --package=apt-dpkg-ref

Configurer le gestionnaire de packages

Pour installer un package sur la VM, ajoutez le dépôt que vous avez créé au fichier de configuration Apt qui définit les dépôts de packages.

  1. Installez l'assistant d'identifiants Apt sur la VM pour permettre à Apt d'effectuer l'authentification :

    sudo apt install apt-transport-artifact-registry
    
  2. Configurez votre VM pour accéder aux packages Artifact Registry :

    echo 'deb ar+https://us-west1-apt.pkg.dev/projects/PROJECT quickstart-apt-repo main' | sudo tee -a  /etc/apt/sources.list.d/artifact-registry.list
    

    Remplacez PROJECT par votre Google Cloud ID de projet.

Installer le package

Installez le package que vous avez ajouté au dépôt.

  1. Mettez à jour la liste des packages disponibles :

    sudo apt update
    
  2. Installez le package à partir de votre dépôt.

    sudo apt install curl/quickstart-apt-repo
    

    Les informations d'installation renvoyées ressemblent à l'exemple suivant :

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Selected version '7.88.1-10+deb12u14' (quickstart-apt-repo:quickstart-apt-repo, Debian:12.12/oldstable [amd64]) for 'curl'
    The following additional packages will be installed:
      libcurl3-gnutls libcurl4
    The following packages will be upgraded:
      curl libcurl3-gnutls libcurl4
    3 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.
    Need to get 1093 kB of archives.
    After this operation, 0 B of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
    Get:2 https://deb.debian.org/debian bookworm/main amd64 libcurl4 amd64 7.88.1-10+deb12u14 [392 kB]
    Get:3 https://deb.debian.org/debian bookworm/main amd64 libcurl3-gnutls amd64 7.88.1-10+deb12u14 [386 kB]
    Get:4 ar+https://us-west1-apt.pkg.dev/projects/PROJECT quickstart-apt-repo/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
    Fetched 1093 kB in 1s (947 kB/s)
    Reading changelogs... Done
    (Reading database ... 72080 files and directories currently installed.)
    Preparing to unpack .../curl_7.88.1-10+deb12u14_amd64.deb ...
    Unpacking curl (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
    Preparing to unpack .../libcurl4_7.88.1-10+deb12u14_amd64.deb ...
    Unpacking libcurl4:amd64 (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
    Preparing to unpack .../libcurl3-gnutls_7.88.1-10+deb12u14_amd64.deb ...
    Unpacking libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
    Setting up libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) ...
    Setting up libcurl4:amd64 (7.88.1-10+deb12u14) ...
    Setting up curl (7.88.1-10+deb12u14) ...
    Processing triggers for man-db (2.11.2-2) ...
    Processing triggers for libc-bin (2.36-9+deb12u10) ...
    

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, procédez comme suit :

Avant de supprimer le dépôt, assurez-vous que tous les packages que vous souhaitez conserver sont disponibles à un autre emplacement.

Pour supprimer le dépôt :

Console

  1. Ouvrez la page Dépôts dans la Google Cloud console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, sélectionnez le dépôt quickstart-apt-repo.

  3. Cliquez sur Supprimer.

gcloud

  1. Pour supprimer le dépôt quickstart-apt-repo, exécutez la commande suivante :

    gcloud artifacts repositories delete quickstart-apt-repo
    
  2. Si vous souhaitez supprimer le dépôt par défaut et les paramètres d'emplacement que vous avez définis pour la configuration gcloud active, exécutez les commandes suivantes :

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

Pour supprimer la VM que vous avez créée, exécutez la commande suivante :

gcloud compute instances delete quickstart-apt-vm

Étape suivante