Configurar máquinas virtuales para instalar paquetes RPM

En esta página se describe cómo configurar máquinas virtuales para instalar paquetes RPM desde un repositorio Yum de Artifact Registry. Los repositorios Yum de Artifact Registry son compatibles con los clientes yum y dnf.

Antes de empezar

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

Preparar una VM para acceder a un repositorio de Yum

Para preparar una VM para acceder a un repositorio de Yum, usa la herramienta de cliente yum o dnf:

Repositorio privado

  1. Elige la cuenta de servicio que vas a usar para conceder acceso.

    • En el caso de las máquinas virtuales de Compute Engine, puede ser la cuenta de servicio predeterminada. Artifact Registry obtiene automáticamente las credenciales de la cuenta de servicio de la VM de Compute Engine de cualquier VM que use una cuenta de servicio.
    • En el caso de otras máquinas virtuales, crea o elige una cuenta de servicio para que actúe en nombre de tu máquina virtual. Necesitarás la ubicación del archivo de clave de la cuenta de servicio para configurar la VM. Puedes ver y crear claves para cuentas disponibles en la página Cuentas de servicio.
  2. Concede permisos de acceso al repositorio a tu cuenta de servicio.

  3. Prepara la VM para acceder al repositorio.

    VM de Compute Engine

    1. Asigna cloud-platformpermisos de acceso a la API a la VM. Para obtener información sobre cómo definir los ámbitos de acceso, consulta el artículo Cambiar la cuenta de servicio y los ámbitos de acceso de una instancia.

    2. Actualiza la caché de paquetes con el siguiente comando:

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

      sudo yum install FORMAT-plugin-artifact-registry
      

      Haz los cambios siguientes:

      • FORMAT con una de las siguientes opciones:
        • yum, si tu sistema operativo es Enterprise Linux 7 o una versión anterior
        • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior

    Otra VM

    1. Instala la clave de firma 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 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
      

      Haz los cambios siguientes:

      • FORMAT con una de las siguientes opciones:
        • yum, si tu sistema operativo es Enterprise Linux 7 o una versión anterior
        • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior
      • DISTRO con la versión principal de Red Hat Enterprise Linux en el formato elX, donde X es la versión. Estos son ejemplos de valores de DISTRO válidos: el7 y el8.
    3. Actualiza Yum con el siguiente comando:

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

      yum install FORMAT-plugin-artifact-registry
      

      Sustituye FORMAT por una de las siguientes opciones:

      • yum, si tu sistema operativo es Enterprise Linux 7 o una versión anterior
      • 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, descoméntala y añade la ruta de la clave de tu cuenta de servicio.

      • En los sistemas operativos Enterprise Linux 7 o versiones anteriores, la ruta al archivo de configuración es /etc/yum/pluginconf.d/artifact-registry.conf.
      • En los sistemas operativos Enterprise Linux 8 o versiones posteriores, la ruta del 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"
      

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

Repositorio público

Configura el acceso público al repositorio.

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

Para configurar una máquina virtual de forma que acceda a un repositorio de Yum, usa la herramienta de cliente yum o dnf:

  1. Genera el comando de configuración de la VM ejecutando el comando gcloud beta artifacts print-settings yum:

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

    Haz los cambios siguientes:

    • REPOSITORY es el nombre del repositorio de Artifact Registry.
    • LOCATION es la ubicación regional o multirregional del repositorio.

    El resultado debería ser similar al siguiente:

    # 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 que obtenga paquetes de tu repositorio con el comando tee de la salida 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-west1, usa el siguiente comando:

    sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOL
    [my-repo]
    name=My Repository
    baseurl=https://us-west1-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 crea repositorios Yum adicionales, cree un archivo .repo para cada uno de ellos en /etc/yum.repos.d/. Vuelve a ejecutar sudo yum update para actualizar las fuentes del repositorio.

Configurar una VM para acceder a un repositorio Yum remoto

Para configurar una máquina virtual de forma que solo use un repositorio Yum remoto en lugar de un repositorio Yum estándar, sustituye el repositorio estándar de la lista de repositorios de la máquina virtual por el repositorio remoto.

Si el repositorio estándar se define en el archivo de configuración en lugar de en un archivo de repositorio independiente (.repo), puedes eliminar la entrada del archivo de configuración y sustituirla por tu repositorio remoto, o bien definir un nuevo archivo de repositorio en el directorio /etc/yum.repos.d/.

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

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

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

  4. Para sustituir el repositorio base por completo, elimina la configuración predeterminada en [base] o [baseos]. Si quieres conservar el repositorio upstream estándar y añadir el repositorio remoto como opción alternativa, no elimines la configuración predeterminada.

  5. Añade los siguientes ajustes en [base] o [baseos]:

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

    Haz los cambios siguientes:

  • YUM_REPOSITORY_NAME con un ID único de una palabra para tu repositorio Yum remoto. Este nombre puede coincidir con el nombre del repositorio upstream si has eliminado la configuración estándar del repositorio upstream. Si mantienes el repositorio upstream estándar, puedes usar otro nombre para identificarlo como repositorio remoto.
  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT_ID por el ID del proyecto de la VM.
  • REMOTE_REPOSITORY_NAME con el nombre legible del repositorio remoto.

Usar un repositorio Yum remoto como copia de seguridad

Si quieres mantener el upstream estándar como primera opción y añadir el repositorio remoto como opción alternativa, puedes mantener el upstream estándar en el archivo del repositorio y crear un nuevo archivo de repositorio en la carpeta /etc/yum.repos.d.

Para crear un archivo de repositorio en la carpeta /etc/yum.repos.d, ejecuta el 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

Haz los cambios siguientes:

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

Por ejemplo, el siguiente comando configura la VM para que obtenga el repositorio my-repo del proyecto my-project y la ubicación us-west1 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-west1-yum.pkg.dev/remote/my-project/my-repo
enabled=1
gpgcheck=1
EOF

Siguientes pasos