Cette page explique comment configurer des VM pour installer des packages RPM à partir d'un dépôt Yum Artifact Registry. Les dépôts Yum Artifact Registry sont compatibles avec les clients yum
et dnf
.
Avant de commencer
Si le dépôt Yum cible n'existe pas, créez-en un. 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 Yum
Pour préparer une VM à accéder à un dépôt Yum, utilisez l'outil client yum
ou dnf
:
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 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.
Accordez des autorisations d'accès au dépôt à votre compte de service.
Préparez la VM pour accéder au dépôt.
VM Compute Engine
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.Mettez à jour le cache du package à l'aide de la commande suivante:
sudo yum makecache
Installez le plug-in Artifact Registry sur la VM à l'aide de la commande suivante:
sudo yum install FORMAT-plugin-artifact-registry
Remplacez les éléments suivants :
FORMAT
par l'un des éléments suivants :yum
, si votre système d'exploitation est Enterprise Linux 7 ou une version antérieurednf
, si votre système d'exploitation est Enterprise Linux 8 ou une version ultérieure
Autre VM
Installez la clé de signature RPM à l'aide de la commande suivante:
sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Créez un fichier nommé
/etc/yum.repos.d/artifact-registry-plugin.repo
avec le contenu suivant:[ar-plugin] name=Artifact Registry Plugin baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-DISTRO-stable enabled=1 gpgcheck=1
Remplacez les éléments suivants :
FORMAT
par l'un des éléments suivants :yum
, si votre système d'exploitation est Enterprise Linux 7 ou une version antérieurednf
, si votre système d'exploitation est Enterprise Linux 8 ou une version ultérieure
DISTRO
par la version majeure de Red Hat Enterprise Linux au formatelX
, oùX
correspond à la version.el7
etel8
sont des exemples de valeursDISTRO
valides.
Mettez à jour Yum à l'aide de la commande suivante:
sudo yum makecache
Installez le plug-in Artifact Registry sur la VM à l'aide de la commande suivante:
yum install FORMAT-plugin-artifact-registry
Remplacez
FORMAT
par l'un des éléments suivants :yum
, si votre système d'exploitation est Enterprise Linux 7 ou une version antérieurednf
, si votre système d'exploitation est Enterprise Linux 8 ou une version ultérieure
Recherchez la ligne
#service_account_json = "/path/to/creds.json"
dans le fichierartifact-registry.conf
, annulez la mise en commentaire de la ligne et ajoutez le chemin d'accès de la clé de votre compte de service.- Pour les systèmes d'exploitation Enterprise Linux 7 ou versions antérieures, le chemin d'accès au fichier de configuration est
/etc/yum/pluginconf.d/artifact-registry.conf
. - Pour les systèmes d'exploitation Enterprise Linux 8 ou version ultérieure, le chemin d'accès au fichier de configuration est
/etc/dnf/plugins/artifact-registry.conf
.
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.- Pour les systèmes d'exploitation Enterprise Linux 7 ou versions antérieures, le chemin d'accès au fichier de configuration est
Dépôt public
- Configurez l'accès public au dépôt.
Configurer une VM pour accéder à un dépôt Yum standard
Pour configurer une VM afin d'accéder à un dépôt Yum, utilisez l'outil client yum
ou dnf
:
Générez la commande de configuration de VM en exécutant la commande
gcloud beta artifacts print-settings yum
:gcloud beta artifacts print-settings yum \ --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 Yum: sudo yum makecache # Install the Yum credential helper: sudo yum install yum-plugin-artifact-registry # Configure your VM to access Artifact Registry packages using the following # command: sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL [REPOSITORY] name=REPOSITORY baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY enabled=1 repo_gpgcheck=0 gpgcheck=0 EOL # Update Yum: sudo yum makecache
Configurez l'outil client
yum
pour extraire les packages de votre dépôt à l'aide de la commandetee
dans le résultat de la commandeprint-settings
.Par exemple, pour installer des packages à partir du
my-repo
public dans le projetmy-project
et à l'emplacementus-central1
, utilisez la commande suivante:sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL [my-repo] name=My Repository baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo enabled=1 repo_gpgcheck=0 gpgcheck=0 EOL
Mettez à jour les sources de votre dépôt à l'aide de la commande suivante:
sudo yum makecache
Yum peut maintenant se connecter au dépôt.
Si vous créez d'autres dépôts Yum, créez un fichier .repo
pour chacun d'eux dans /etc/yum.repos.d/
. Réexécutez sudo yum update
pour mettre à jour les sources du dépôt.
Configurer une VM pour accéder à un dépôt Yum distant
Pour configurer une VM afin qu'elle n'utilise qu'un dépôt Yum distant au lieu d'un dépôt Yum standard en amont, remplacez le dépôt standard dans la liste des dépôts de la VM par le dépôt distant.
Si le dépôt standard est défini dans le fichier de configuration au lieu d'un fichier de dépôt distinct (.repo
), vous pouvez supprimer l'entrée dans le fichier de configuration et la remplacer par votre dépôt distant, ou définir un nouveau fichier de dépôt dans le répertoire /etc/yum.repos.d/
.
Accédez à la page Instances de VM.
Sur la ligne correspondant à votre VM, cliquez sur SSH. Une nouvelle fenêtre s'ouvre avec une session de terminal sur la VM.
Ouvrez le dossier
/etc/yum.repos.d/
de la VM et recherchez le fichier de dépôt approprié (.repo
) qui contient le dépôt standard en amont. On parle parfois de dépôt de base. Le dépôt de base peut être identifié par le nom du dépôt Yum contenant[base]
ou[baseos]
.Pour remplacer complètement le dépôt de base, supprimez les paramètres par défaut sous
[base]
.Ajoutez le code suivant sous
[base]
:[base] name=YUM_REPOSITORY_NAME baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME enabled=1 gpgcheck=1
Remplacez les éléments suivants :
YUM_REPOSITORY_NAME
par un ID de dépôt unique d'un mot pour votre dépôt Yum distant. Ce nom peut correspondre au nom du dépôt en amont si vous avez supprimé sa configuration, ou à un nom différent pour l'identifier en tant que dépôt distant.REPOSITORY_NAME
par le nom lisible du dépôt.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 ;
Utiliser un dépôt Yum distant comme sauvegarde
Si vous souhaitez conserver l'option standard en amont en tant que première option et ajouter le dépôt distant comme option de remplacement, vous pouvez conserver l'élément standard en amont dans le fichier de dépôt et créer un fichier de dépôt dans le dossier /etc/yum.repos.d
.
Pour créer un fichier de dépôt dans le dossier /etc/yum.repos.d
, exécutez la commande suivante:
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[YUM_REPOSITORY_NAME]
name=REPOSITORY_NAME
baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
enabled=1
gpgcheck=1
EOF
Remplacez les éléments suivants :
YUM_REPOSITORY_NAME
par un ID de dépôt unique d'un mot pour votre dépôt Yum distant.REPOSITORY_NAME
par le nom lisible du dépôt.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 ;
Par exemple, la commande suivante configure la VM pour qu'elle récupère le dépôt my-repo
dans le projet my-project
et l'emplacement us-east1
lorsque Yum installe le dépôt my-repo
.
sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
[my-repo]
name=My Repository
baseurl=https://us-east1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF