Cette page explique comment configurer des VM pour installer des packages Debian à partir de un dépôt Artifact Registry Apt.
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 l'authentification unique.
Préparer une VM pour accéder à un dépôt Apt
Dépôt privé
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 la VM Compute Engine pour toute VM utilisant un compte de service.
- Pour les autres VM, créez. ou choisir un compte de service pour le compte 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.
Accorder des autorisations d'accès au dépôt à votre compte de service.
Préparez la VM à accéder au dépôt.
VM Compute Engine
VM Debian
Attribuer
cloud-platform
niveau d'accès aux API à la VM. Pour en savoir plus sur la définition des niveaux d'accès, consultez Modifier le compte de service et les niveaux d'accès d'une instance.Mettez à jour Apt à l'aide de la commande suivante:
sudo apt update
Installez le package
apt-transport-artifact-registry
sur la VM :sudo apt install apt-transport-artifact-registry
VM Ubuntu
Installez les clés de signature du dépôt Apt à l'aide des éléments suivants : commande:
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 de dans le dépôt.Attribuer
cloud-platform
niveau d'accès aux API à la VM. Pour en savoir plus sur la définition des champs d'application, consultez la section Modifier le compte de service et les champs d'application d'accès d'une instance.Configurez votre VM pour qu'elle accède 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
Mettez à jour Apt à l'aide de la commande suivante :
sudo apt update
Installez le package
apt-transport-artifact-registry
sur la VM:sudo apt install apt-transport-artifact-registry
Autre VM
Installez les clés de signature du dépôt Apt à l'aide des éléments suivants : commande:
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.Configurez votre VM pour qu'elle accède 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
Mettez à jour Apt à l'aide de la commande suivante :
sudo apt update
Installez le package
apt-transport-artifact-registry
sur la VM:sudo apt install apt-transport-artifact-registry
Trouver 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 à 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 la clé de votre compte de service.
Dépôt public
Configurer l'accès public dans le dépôt.
Si vous configurez une VM en dehors de Google Cloud, préparez votre machine à accéder au dépôt. Si vous configurez Compute Engine, passez à l'étape suivante.
Installez la clé de validation de signature publique à l'aide de la commande suivante : commande:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
Remplacez
LOCATION
par l'emplacement un dépôt de clés.Mettez à jour Apt à l'aide de la commande suivante:
sudo apt update
Configurer une VM pour qu'elle accède à un dépôt Apt standard
Configurez une VM pour qu'elle accède à un dépôt Apt :
Générez la commande de configuration de VM en exécutant la commande 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 location.
- 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
Configurez Apt pour récupérer les packages de votre dépôt à l'aide de
echo
. à partir du résultat de la commandeprint-settings
.Par exemple, pour installer des packages à partir du dépôt public
my-repo
dans le projetmy-project
et à l'emplacementus-central1
, utilisez la commande suivante :echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
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 de dépôt.
Configurer une VM pour accéder à un dépôt Apt distant
Pour configurer une VM pour 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.
Accordez les autorisations d'écriture Artifact Registry par défaut à l'échelle du projet Compte de service Compute Engine:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writer
Accédez à la page Instances de VM.
Sur la ligne de votre VM, cliquez sur SSH.
Une nouvelle fenêtre s'ouvre avec une session de terminal sur la VM.
Ouvrez le fichier
/etc/apt/sources.list
de la VM et recherchez l'instance dépôt que vous souhaitez remplacer par votre nouveau dépôt distant.Supprimez la ligne du dépôt standard, puis 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
avec 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 télécommande.COMPONENTS
par une liste de valeurs séparées par des espaces blancs les noms des composants.
Par exemple, l'instruction suivante configure la VM pour qu'elle récupère les paquets du dépôt
my-repo
du projetmy-project
à l'emplacementus-east1
à l'aide debuster
comme dépôt en amont pour les composantsmain
,contrib
etnon-free
.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
Mettez à jour les sources de votre dépôt à l'aide de la commande suivante:
sudo apt update
Apt peut désormais se connecter au dépôt.
Utiliser un dépôt Apt distant comme sauvegarde
Si vous souhaitez conserver le flux standard en amont comme première option et ajouter le dépôt distant comme option de remplacement, vous pouvez conserver le flux standard en amont dans le fichier sources.list
, puis 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
, procédez comme suit :
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
avec 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 télécommande.COMPONENTS
par une liste de noms de composants séparés par un espace.
Si vous créez des dépôts Apt supplémentaires, vous pouvez les ajouter au
artifact-registry.list
ou sources.list
, puis réexécutez 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 l'accès public à votre dépôt Apt et y accéder via HTTP. Les requêtes envoyées à des dépôts publics lisibles à l'aide de HTTP sont rejetées si un jeton d'authentification est présenté avec la requête.
Configurer l'accès public dans le dépôt.
Pour configurer Apt afin de récupérer les packages de votre dépôt à l'aide du protocole HTTP, exécutez la commande 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 projetmy-project
et à l'emplacementus-central1
à l'aide d'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
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 de dépôt.