Configura VMs para instalar paquetes de RPM

En esta página, se describe cómo configurar las VM para instalar paquetes de RPM desde un repositorio de Yum de Artifact Registry. Los repositorios de Yum de Artifact Registry admiten clientes 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

Si quieres preparar una VM para acceder a un repositorio de Yum, usa las herramientas cliente de 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. Artifact Registry recupera de forma automática las credenciales de la cuenta de servicio de la VM de Compute Engine para cualquier VM que use una cuenta de servicio.
    • Para 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 de cloud-platform a la VM. Si quieres obtener información sobre cómo configurar los permisos de acceso, consulta Cambia la cuenta de servicio y los permisos de acceso para 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 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 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 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 una versión anterior
        • dnf, si tu sistema operativo es Enterprise Linux 8 o una versión posterior
      • DISTRO por la versión principal de Red Hat Enterprise Linux en el formato elX, en el que X es la versión de actualización. Algunos 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 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 y, luego, quita el comentario de la línea y agrega la ruta de acceso de la clave de tu 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 estándar de Yum

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

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

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

    Reemplaza lo siguiente:

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

    El resultado es 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 de yum para recuperar paquetes de tu repositorio con el comando tee desde el resultado del comando print-settings.

    Por ejemplo, para instalar paquetes desde el 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 del repositorio con el siguiente comando:

    sudo yum makecache
    

Yum ahora 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 remoto de Yum

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

Si el repositorio estándar está definido en el archivo de configuración en lugar de un archivo de repositorio independiente (.repo), puedes borrar la entrada en el archivo de configuración y reemplazarla por tu remoto, o bien definir un archivo de repositorio nuevo en el directorio /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 una sesión de terminal en la VM.

  3. Abre la carpeta /etc/yum.repos.d/ de la VM y busca el archivo del repositorio apropiado (.repo) que contiene el repositorio upstream estándar. A veces, se denomina repositorio base. El repositorio base se puede identificar con 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 por un ID de repositorio único de una palabra para tu repositorio remoto de Yum. Este nombre puede coincidir con el nombre del repositorio upstream si borraste su configuración o con un nombre diferente para identificarlo como un repositorio remoto.
  • REPOSITORY_NAME por el nombre legible del repositorio
    • LOCATION por 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

Usa un repositorio de Yum remoto como copia de seguridad

Si deseas conservar el estándar en sentido ascendente como primera opción y agregar el repositorio remoto como una opción de resguardo, puedes conservar el estándar en sentido ascendente en el archivo del repositorio y crear un archivo de repositorio nuevo en la carpeta /etc/yum.repos.d.

Para crear un archivo de repositorio nuevo 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

Reemplaza lo siguiente:

  • YUM_REPOSITORY_NAME por un ID de repositorio único de una palabra para tu repositorio remoto de Yum.
  • REPOSITORY_NAME por el nombre legible del repositorio
    • LOCATION por 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, con el siguiente comando, se configura la VM para recuperar 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?