Configurer des VM pour installer des packages RPM

Cette page décrit la configuration de VM pour l'installation de packages RPM depuis un dépôt Yum Artifact Registry. Compatibilité avec les dépôts Yum d'Artifact Registry Clients yum et dnf.

Avant de commencer

Si le dépôt Yum cible n'existe pas, créez un dépôt. Vous pouvez créer un dépôt privé ou un dépôt 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é

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

    • Pour les VM Compute Engine, il peut s'agir default service account (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 sélectionnez un compte de service pour agir 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 à accéder au dépôt.

    VM Compute Engine

    1. 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 la section Modifier le compte de service et les niveaux d'accès d'une instance.

    2. Mettez à jour le cache des paquets à l'aide de la commande suivante :

      sudo yum makecache
      
    3. 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 version antérieure
        • dnf, si votre système d'exploitation est Enterprise Linux 8 ou version ultérieure

    Autre VM

    1. 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
      
    2. 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 version antérieure
        • dnf, si votre système d'exploitation est Enterprise Linux 8 ou version ultérieure
      • DISTRO avec la version majeure de Red Hat Enterprise Linux au format elX, où X correspond à la version de la version. Des exemples de valeurs DISTRO valides sont el7 et el8.
    3. Mettez à jour Yum à l'aide de la commande suivante :

      sudo yum makecache
      
    4. Installez le plug-in Artifact Registry sur la VM à l'aide de la commande 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 plus tôt
      • dnf, si votre système d'exploitation est Enterprise Linux 8 ou version ultérieure
    5. Recherchez la ligne #service_account_json = "/path/to/creds.json" dans le fichier artifact-registry.conf, puis supprimez le commentaire et ajoutez le chemin d'accès à votre 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 /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"
      

      Remplacer PATH_TO_SERVICE_ACCOUNT_KEY par le chemin d'accès au fichier JSON contenant la clé de votre compte de service.

Dépôt public

  1. Configurer l'accès public dans le dépôt.

Configurer une VM pour qu'elle accède à un dépôt Yum standard

Pour configurer une VM afin qu'elle accède à un dépôt Yum, utilisez l'outil client yum ou dnf:

  1. Générez la commande de configuration de la 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
    
  2. Configurez l'outil client yum pour récupérer les packages de votre dépôt à l'aide de tee. à partir du résultat de la commande print-settings.

    Par exemple, pour installer des packages à partir du my-repo public dans le projet my-project et à l'emplacement us-central1, exécutez 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
    
  3. Mettez à jour les sources de votre dépôt à l'aide de la commande suivante :

    sudo yum makecache
    

Yum peut désormais se connecter au dépôt.

Si vous créez d'autres dépôts Yum, créez un fichier .repo pour chacun dans /etc/yum.repos.d/. Exécutez à nouveau 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 pour qu'elle n'utilise qu'un dépôt Yum distant au lieu d'un dépôt Yum en amont standard, remplacez le dépôt standard dans la liste de 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/.

  1. Accédez à la page Instances de VM.

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

  3. Ouvrez le dossier /etc/yum.repos.d/ de la VM et recherchez les (.repo) contenant 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]

  4. Pour remplacer complètement le dépôt de base, supprimez les paramètres par défaut sous [base]

  5. Ajoutez ce qui suit 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 autre nom pour l'identifier comme un dépôt distant.
  • REPOSITORY_NAME avec le nom lisible du dépôt.
    • 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.

Utiliser un dépôt Yum distant comme sauvegarde

Si vous souhaitez conserver le flux standard en amont en tant que première option et ajouter en tant qu'option de remplacement, vous pouvez conserver le dépôt standard en amont le fichier de dépôt, puis créez un fichier de dépôt dans le fichier /etc/yum.repos.d. .

Pour créer un fichier de dépôt dans le dossier /etc/yum.repos.d, exécutez la 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 seul mot pour votre dépôt Yum distant.
  • REPOSITORY_NAME par le nom lisible du dépôt.
    • 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.

Par exemple, la commande suivante configure la VM pour récupérer 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

Étape suivante