Configura VM para instalar paquetes de RPM

En esta página, se describe cómo configurar VM para instalar paquetes de RPM de un repositorio Yum de Artifact Registry. Los repositorios Yum de Artifact Registry admiten Yum y DNF.

Antes de comenzar

Si el repositorio de Yum de destino no existe, crea un repositorio nuevo. Puedes crear un repositorio privado o uno público que no requiera autenticación.

Prepara una VM para acceder a un repositorio de Yum

A fin de preparar una VM para acceder a un repositorio de Yum, usa Yum o DNF:

Repositorio privado

  1. Elige la cuenta de servicio que usarás para otorgar acceso.

    • Para las VM de Compute Engine, esta podría ser la cuenta de servicio predeterminada.
    • En otras VM, crea o elige una cuenta de servicio para que actúe en nombre de tu VM. Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la VM. Puedes ver y crear claves para las cuentas existentes en la página Cuentas de servicio.
  2. Otorga permisos de acceso al repositorio a tu cuenta de servicio.

  3. Prepara la VM para acceder al repositorio.

    VM de Compute Engine

    1. Asigna permisos de acceso a la API cloud-platform a la VM. Para obtener información sobre cómo configurar los niveles de acceso, consulta Cambia la cuenta de servicio y los niveles de acceso para una instancia.

    2. Actualiza Yum mediante el siguiente comando:

      sudo yum makecache
      
    3. Instala el complemento de Artifact Registry en la VM mediante el siguiente comando:

      sudo yum install FORMAT-plugin-artifact-registry
      

      Reemplaza FORMAT por uno de los siguientes valores:

      • yum, si el sistema operativo es Enterprise Linux 7 o versiones anteriores
      • dnf, si el sistema operativo es Enterprise Linux 8 o una versión más reciente

    Otra VM

    1. Instala la clave de firma de RPM mediante el siguiente comando:

      sudo rpm --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    2. Crea un archivo llamado /etc/yum.repos.d/artifact-registry-plugin.repo con el siguiente contenido:

      [ar-plugin]
      name=Artifact Registry Plugin
      baseurl=https://packages.cloud.google.com/yum/repos/FORMAT-plugin-artifact-registry-stable
      enabled=1
      gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
      

      Reemplaza FORMAT por uno de los siguientes valores:

      • yum, si el sistema operativo es Enterprise Linux 7 o versiones anteriores
      • dnf, si el sistema operativo es Enterprise Linux 8 o una versión más reciente
    3. Actualiza Yum mediante el siguiente comando:

      sudo yum makecache
      
    4. Instala el complemento de Artifact Registry en la VM mediante el siguiente comando:

      yum install FORMAT-plugin-artifact-registry
      

      Reemplaza FORMAT por uno de los siguientes valores:

      • yum, si el sistema operativo es Enterprise Linux 7 o versiones anteriores
      • dnf, si el sistema operativo es Enterprise Linux 8 o una versión más reciente
    5. Busca la línea #service_account_json = "/path/to/creds.json" en el archivo artifact-registry.conf, quita el comentario de la línea y agrega la ruta de acceso a la clave de la cuenta de servicio.

      • Para los sistemas operativos Enterprise Linux 7 o anteriores, la ruta al archivo de configuración es /etc/yum/pluginconf.d/artifact-registry.conf.
      • Para los sistemas operativos Enterprise Linux 8 o versiones posteriores, la ruta al archivo de configuración es /etc/dnf/plugins/artifact-registry.conf.

      Entrada del archivo de configuración:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      Reemplaza PATH_TO_SERVICE_ACCOUNT_KEY por la ruta de acceso al archivo JSON de la clave de tu cuenta de servicio.

Repositorio público

  1. Configura el acceso público al repositorio.

Configura una VM para acceder a un repositorio de Yum

A fin de configurar una VM para acceder a un repositorio de Yum, usa Yum o DNF:

  1. Configura Yum para recuperar paquetes de tu repositorio mediante el siguiente comando:

    sudo tee -a  /etc/yum.repos.d/FILE_NAME.repo << EOF
    [REPOSITORY_ID]
    name=REPOSITORY_NAME
    baseurl=https://LOCATION-yum.pkg.dev/projects/PROJECT/REPOSITORY
    enabled=1
    gpgcheck=SIGNED_PACKAGES
    EOF
    

    Reemplaza los siguientes valores:

    • FILE_NAME es un nombre de archivo .repo único.
    • REPOSITORY_ID es un identificador de una palabra para el repositorio. El identificador debe ser único en todos los repositorios configurados en Yum.
    • REPOSITORY_NAME es un nombre legible para el repositorio.
    • PROJECT es el ID del proyecto de Google Cloud.
    • LOCATION es una ubicación regional o multirregional.
    • REPOSITORY es el nombre del repositorio.
    • SIGNED_PACKAGES es uno de los siguientes valores:

      • 1 si firmas los paquetes de RPM que entregas desde el repositorio.
      • 0 si no firmas los paquetes de RPM que entregas desde el repositorio.

      Para obtener información sobre cómo firmar paquetes RPM, consulta la documentación de Red Hat.

    Considera un repositorio con las siguientes características:

    • ID del repositorio de YUM: my-repo
    • Nombre del repositorio de YUM: My Repository
    • ID del proyecto: my-project
    • Ubicación del repositorio de Artifact Registry: us-central1
    • Nombre del repositorio de Artifact Registry: my-repo
    • Se firmaron los paquetes

    El archivo /etc/yum.repos.d/my-repo.repo define la configuración del repositorio:

    [my-repo]
    name=My Repository
    baseurl=https://us-central1-yum.pkg.dev/projects/my-project/my-repo
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    
  2. Actualiza las fuentes del repositorio con el siguiente comando:

    sudo yum makecache
    

Yum ahora puede conectarse al repositorio.

Si creas repositorios adicionales de Yum, crea un archivo .repo para cada uno en /etc/yum.repos.d/. Vuelve a ejecutar sudo yum update para actualizar las fuentes del repositorio.

¿Qué sigue?