Configura VMs para instalar paquetes de RPM

En esta página, se describe cómo configurar VMs para instalar paquetes de RPM desde un repositorio Yum de Artifact Registry. Compatibilidad con repositorios Yum de Artifact Registry yum y dnf clientes.

Antes de comenzar

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

Prepara una VM para acceder a un repositorio de Yum

Si quieres preparar una VM para que acceda a un repositorio de Yum, usa la herramienta de cliente yum o dnf:

Repositorio privado

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

    • Para las VMs de Compute Engine, esta podría ser la cuenta de servicio predeterminada. Artifact Registry recupera automáticamente las VMs de Compute Engine credenciales de cuenta de servicio para cualquier VM que use una cuenta de servicio.
    • Para otras VMs, crea o elegir una cuenta de servicio para actuar en nombre de tu VM. Necesitarás la ubicación del archivo de claves de la cuenta de servicio para configurar la VM. Tú puedes ver y crear claves para cuentas existentes en la Cuentas de servicio.
  2. Otorga permisos de acceso al repositorio a tu cuenta de servicio.

  3. Preparar la VM para acceder al repositorio

    VM de Compute Engine

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

    2. Actualiza la caché del paquete con el siguiente comando:

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

      sudo yum install FORMAT-plugin-artifact-registry
      

      Reemplaza lo siguiente:

      • FORMAT por uno de los siguientes valores:
        • yum, si tu sistema operativo es Enterprise Linux 7 o versiones anteriores
        • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior

    Otra VM

    1. Instala la clave de firma de RPM con 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 el siguiente contenido:

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

      Reemplaza lo siguiente:

      • FORMAT por uno de los siguientes valores:
        • yum, si tu sistema operativo es Enterprise Linux 7 o versiones anteriores
        • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior
      • DISTRO con Red Hat Enterprise Linux lanzamiento principal en el formato elX, en el que X es el lanzamiento versión. Ejemplos de valores DISTRO válidos son el7 y el8.
    3. Actualiza Yum con el siguiente comando:

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

      yum install FORMAT-plugin-artifact-registry
      

      Reemplaza FORMAT por uno de los siguientes valores:

      • yum, si tu sistema operativo es Enterprise Linux 7 o más temprano
      • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior
    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 la clave de tu cuenta de servicio.

      • Para Enterprise Linux 7 o sistemas operativos 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 a el archivo de configuración está /etc/dnf/plugins/artifact-registry.conf

      Entrada del archivo de configuración:

      service_account_json = "PATH_TO_SERVICE_ACCOUNT_KEY"
      

      Reemplazar PATH_TO_SERVICE_ACCOUNT_KEY por la ruta de acceso al archivo JSON de claves de tu cuenta de servicio.

Repositorio público

  1. Configura el acceso público al repositorio.

Configura una VM para acceder a un repositorio Yum estándar

Si quieres configurar una VM para acceder a un repositorio de Yum, usa la herramienta de cliente yum o dnf:

  1. Ejecuta el comando gcloud beta artifacts print-settings yum para generar el comando de configuración de la VM:

    gcloud beta artifacts print-settings yum \
        --repository=REPOSITORY \
        --location=LOCATION
    

    Reemplaza lo siguiente:

    • LOCATION es una región o multirregional location.
    • REPOSITORY es el nombre del repositorio de Artifact Registry.

    El resultado es similar a este:

    # 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. Configura la herramienta de cliente yum para recuperar paquetes de tu repositorio con tee. comando desde el resultado del comando print-settings.

    Por ejemplo, para instalar paquetes del my-repo público en el proyecto. my-project y en la ubicación us-central1, usa el siguiente comando:

    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. Actualiza las fuentes de tu repositorio con el siguiente comando:

    sudo yum makecache
    

Ahora, Yum puede conectarse al repositorio.

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

Configura una VM para acceder a un repositorio de Yum remoto

Configurar una VM para que use solo un repositorio de Yum remoto en lugar de un repositorio repositorio de Yum ascendente, reemplaza el repositorio estándar en el repositorio de la VM lista con el repositorio remoto.

Si el repositorio estándar se define en el archivo de configuración en lugar de un archivo de repositorio separado (.repo) puedes borrar la entrada en la configuración y reemplázalo con tu recurso remoto, o define un nuevo archivo de repositorio en la /etc/yum.repos.d/.

  1. Ve a la página Instancias de VM.

  2. En la fila de tu VM, haz clic en SSH. Se abrirá una ventana nueva con un sesión de terminal en la VM.

  3. Abre la carpeta /etc/yum.repos.d/ de la VM y busca el archivo archivo del repositorio (.repo) que contiene el repositorio upstream estándar. A veces, esto se denomina repositorio base. El repositorio base se puede identificar por el nombre del repositorio de Yum que contiene [base] o [baseos]

  4. Para reemplazar el repositorio base por completo, quita la configuración predeterminada en [base]

  5. Agrega lo siguiente debajo de [base]:

    [base]
    name=YUM_REPOSITORY_NAME
    baseurl=https://LOCATION-yum.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME
    enabled=1
    gpgcheck=1
    

    Reemplaza lo siguiente:

  • YUM_REPOSITORY_NAME con un repositorio único de una palabra ID del repositorio de Yum remoto. Este nombre puede coincidir con el el nombre del repositorio, si borraste su configuración, o un nombre diferente identificarlo como un repositorio remoto.
  • REPOSITORY_NAME por el nombre legible por humanos de la en un repositorio de confianza.
    • LOCATION por la configuración regional o multirregional location del repositorio remoto.
  • PROJECT_ID por el ID del proyecto de la VM
  • REMOTE_REPOSITORY_NAME por el nombre que le asignaste a tu repositorio remoto.

Usa un repositorio Yum remoto como copia de seguridad

Si quieres mantener el upstream estándar como primera opción y agregar el repositorio remoto como opción de resguardo, puedes mantener el flujo ascendente el archivo de repositorio y crea un nuevo archivo de repositorio en el archivo /etc/yum.repos.d. carpeta.

Para crear un nuevo archivo de repositorio en la carpeta /etc/yum.repos.d, ejecuta el siguiente comando: siguiente comando:

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

Reemplaza lo siguiente:

  • YUM_REPOSITORY_NAME por un ID de repositorio único de una palabra para tu en un repositorio de Yum remoto.
  • REPOSITORY_NAME por el nombre legible del repositorio
    • LOCATION con la ubicación regional o multirregional del repositorio remoto.
  • PROJECT_ID por el ID del proyecto de la VM
  • REMOTE_REPOSITORY_NAME por el nombre que le asignaste a tu repositorio remoto

Por ejemplo, el siguiente comando configura la VM para que recupere el repositorio my-repo en el proyecto my-project y la ubicación us-east1 cuando Yum instale el repositorio 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

¿Qué sigue?