Configura VMs para instalar paquetes de Debian

En esta página, se describe cómo configurar VMs para instalar paquetes de Debian desde un repositorio de Apt de Artifact Registry.

Antes de comenzar

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

Prepara una VM para acceder a un repositorio de Apt

Repositorio privado

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

    • En el caso de las VMs de Compute Engine, podría ser la cuenta de servicio predeterminada. Artifact Registry recupera automáticamente las credenciales de la cuenta de servicio de la VM de Compute Engine para cualquier VM que use una cuenta de servicio.
    • En el caso de otras VMs, 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

    VM de Debian

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

    2. Actualiza Apt con el siguiente comando:

      sudo apt update
      
    3. Instala el paquete apt-transport-artifact-registry en la VM:

      sudo apt install apt-transport-artifact-registry
      

    VM de Ubuntu

    1. Instala las claves de firma del repositorio de Apt con el siguiente comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Reemplaza LOCATION por la ubicación regional del repositorio.

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

    3. Configura tu VM para acceder a los paquetes de Artifact Registry con el siguiente comando:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    4. Actualiza Apt con el siguiente comando:

      sudo apt update
      
    5. Instala el paquete apt-transport-artifact-registry en la VM:

      sudo apt install apt-transport-artifact-registry
      

    Otra VM

    1. Instala las claves de firma del repositorio de Apt con el siguiente comando:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      

      Reemplaza LOCATION por la ubicación regional del repositorio.

    2. Configura tu VM para acceder a los paquetes de Artifact Registry con el siguiente comando:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    3. Actualiza Apt con el siguiente comando:

      sudo apt update
      
    4. Instala el paquete apt-transport-artifact-registry en la VM:

      sudo apt install apt-transport-artifact-registry
      
    5. Busca la línea #Service-Account-JSON "/path/to/creds.json"; en el archivo /etc/apt/apt.conf.d/90artifact-registry, quita el comentario de la línea y agrega la ruta de acceso a la clave de tu cuenta de servicio.

      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.

  2. Si configuras una VM fuera de Trusted Cloud, prepara tu máquina para acceder al repositorio. Si configuras una VM de Compute Engine, continúa con el siguiente paso.

    Instala la clave pública de verificación de firma con el siguiente comando:

    curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -
    

    Reemplaza LOCATION por la ubicación regional del repositorio.

  3. Actualiza Apt con el siguiente comando:

    sudo apt update
    

Configura una VM para acceder a un repositorio estándar de Apt

Configura una VM para acceder a un repositorio de Apt:

  1. Para generar el comando de configuración de la VM, ejecuta el comando gcloud beta artifacts print-settings apt:

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

    Reemplaza lo siguiente:

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

    El resultado es similar a este:

    # To configure your package manager with this repository:
    
    # Update Apt:
    sudo apt update
    
    # Install the Apt credential helper:
    sudo apt install apt-transport-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    echo "deb ar+https://LOCATION-apt.pkg.dev/projects/PROJECT REPOSITORY main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
    # Update Apt:
    sudo apt update
    
  2. Configura Apt para recuperar paquetes de tu repositorio con el comando echo del resultado del comando print-settings.

    Por ejemplo, para instalar paquetes del repositorio público my-repo en el proyecto my-project y en la ubicación u-france-east1, usa el siguiente comando:

    echo 'deb ar+https://u-france-east1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. Actualiza las fuentes de tu repositorio con el siguiente comando:

    sudo apt update
    

Ahora, Apt puede conectarse al repositorio.

Si creas repositorios de Apt adicionales, puedes agregarlos al archivo artifact-registry.list y, luego, volver a ejecutar sudo apt update para actualizar las fuentes del repositorio.

Configura el acceso HTTP a un repositorio de Apt

Si usas herramientas cliente más antiguas que no admiten la encriptación SSL, puedes configurar el acceso público a tu repositorio de Apt y acceder a él a través de HTTP. Las solicitudes enviadas a repositorios de lectura pública con HTTP se rechazarán si se presenta un token de autenticación con la solicitud.

  1. Configura el acceso público al repositorio.

  2. Para configurar Apt de modo que recupere paquetes de tu repositorio a través de HTTP, ejecuta el siguiente comando:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \
     REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    

    Reemplaza lo siguiente:

    • LOCATION es la ubicación regional del repositorio.
    • PROJECT_ID es el ID del proyecto del repositorio.
    • REPOSITORY es el nombre del repositorio.

    Por ejemplo, para instalar paquetes del repositorio público my-repo en el proyecto my-project y en la ubicación u-france-east1 con HTTP, usa el siguiente comando:

    echo 'deb http://u-france-east1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  3. Actualiza las fuentes de tu repositorio con el siguiente comando:

    sudo apt update
    

Ahora, Apt puede conectarse al repositorio.

Si creas repositorios de Apt adicionales, puedes agregarlos al archivo artifact-registry.list y, luego, volver a ejecutar sudo apt update para actualizar las fuentes del repositorio.

¿Qué sigue?