Los repositorios de Apt de Artifact Registry te permiten controlar qué versiones de paquetes de Debian instalan tus máquinas virtuales (VMs). Puedes configurar instancias de Compute Engine o VMs externas para instalar paquetes desde repositorios privados o públicos.
Antes de comenzar
Si el repositorio de Apt de destino no existe, crea un repositorio estándar o remoto. 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
Elige la cuenta de servicio que usarás para otorgar acceso.
- En el caso de las VMs de Compute Engine, esta podría ser la cuenta de servicio predeterminada. Artifact Registry recupera automáticamente las credenciales de cuenta de servicio de la VM de Compute Engine para cualquier VM que use una cuenta de servicio.
- Para otras VMs, crea o elige una cuenta de servicio 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 cuentas existentes en la página Cuentas de servicio.
Otorga permisos de acceso al repositorio a tu cuenta de servicio.
Prepara la VM para acceder al repositorio.
VM de Compute Engine
VM de Debian
Asigna permisos de acceso a la API de
cloud-platforma la VM. Para 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.Actualiza Apt con el siguiente comando:
sudo apt updateInstala el paquete
apt-transport-artifact-registryen la VM:sudo apt install apt-transport-artifact-registry
VM de Ubuntu
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 gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpgReemplaza
LOCATIONpor la ubicación regional o multirregional del repositorio.Asigna permisos de acceso a la API de
cloud-platforma la VM. Para 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.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.listActualiza Apt con el siguiente comando:
sudo apt updateInstala el paquete
apt-transport-artifact-registryen la VM:sudo apt install apt-transport-artifact-registry
Otra VM
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 gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpgReemplaza
LOCATIONpor la ubicación regional o multirregional del repositorio.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.listActualiza Apt con el siguiente comando:
sudo apt updateInstala el paquete
apt-transport-artifact-registryen la VM:sudo apt install apt-transport-artifact-registryBusca 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 de 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_KEYpor la ruta de acceso al archivo JSON de la clave de tu cuenta de servicio.
Repositorio público
Configura el acceso público al repositorio.
Si configuras una VM fuera de Google 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 firmas con el siguiente comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpgReemplaza
LOCATIONpor la ubicación regional o multirregional del repositorio.Actualiza Apt con el siguiente comando:
sudo apt update
Configura una VM para acceder a un repositorio de Apt estándar
Configura una VM para acceder a un repositorio de Apt:
Genera el comando de configuración de la VM ejecutando el comando
gcloud beta artifacts print-settings apt:gcloud beta artifacts print-settings apt \ --repository=REPOSITORY \ --location=LOCATIONReemplaza lo siguiente:
-
LOCATIONes la ubicación regional o multirregional del repositorio. REPOSITORYes el nombre del repositorio de Artifact Registry.
El resultado es similar a lo siguiente:
# 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 [signed-by=/etc/apt/trusted.gpg.d/artifact-registry.gpg] 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
-
Configura Apt para recuperar paquetes de tu repositorio con el comando
echodel resultado del comandoprint-settings.Por ejemplo, para instalar paquetes desde el repositorio público
my-repoen el proyectomy-projecty en la ubicaciónus-west1, usa el siguiente comando:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
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 una VM para acceder a un repositorio de Apt remoto
Para configurar una VM de modo que solo use un repositorio de Apt remoto en lugar de un repositorio de Apt
ascendente estándar, reemplaza el repositorio estándar por tu repositorio
remoto en el archivo /etc/apt/sources.list de la VM.
Otorga permisos de escritura de Artifact Registry en todo el proyecto a la cuenta de servicio predeterminada de Compute Engine:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writerVe a la página Instancias de VM.
En la fila con tu VM, haz clic en SSH.
Se abrirá una ventana nueva con una sesión de terminal en la VM.
Abre el archivo
/etc/apt/sources.listde la VM y busca el repositorio estándar que deseas reemplazar por el repositorio remoto nuevo.Borra la línea del repositorio estándar y reemplázala por lo siguiente:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTSReemplaza lo siguiente:
LOCATIONpor la ubicación regional o multirregional del repositorio remoto.PROJECT_IDpor el ID del proyecto de la VM.REMOTE_REPOSITORY_NAMEpor el nombre que le diste a tu repositorio remoto.UPSTREAM_REPOSITORY_NAMEpor el nombre del repositorio upstream de tu repositorio remoto.COMPONENTSpor una lista de nombres de componentes separados por espacios en blanco.
Por ejemplo, con el siguiente comando, se configura la VM para que recupere paquetes del repositorio
my-repoen el proyectomy-projecten la ubicaciónus-east1constablecomo el repositorio ascendente para los componentesmain,contribynon-free.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo stable main contrib non-freeActualiza las fuentes de tu repositorio con el siguiente comando:
sudo apt updateAhora, Apt puede conectarse al repositorio.
Usa un repositorio remoto de Apt como copia de seguridad
Si deseas mantener el upstream estándar como la primera opción y agregar el
repositorio remoto como una opción de resguardo, puedes mantener el upstream estándar en
el archivo sources.list y agregar el repositorio remoto al final del
archivo sources.list o crear una lista nueva en la carpeta sources.list.d.
Para crear un archivo artifact-registry.list nuevo en la carpeta sources.list.d,
ejecuta el siguiente comando:
echo 'deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
Reemplaza lo siguiente:
-
LOCATIONes la ubicación regional o multirregional del repositorio. PROJECT_IDpor el ID del proyecto de la VM.REMOTE_REPOSITORY_NAMEpor el nombre que le diste a tu repositorio remoto.UPSTREAM_REPOSITORY_NAMEpor el nombre del repositorio ascendente para tu remoto.COMPONENTSpor una lista de nombres de componentes separados por espacios en blanco.
Si creas repositorios de Apt adicionales, puedes agregarlos al archivo
artifact-registry.list o sources.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 de 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 públicos legibles con HTTP se rechazarán si se presenta un token de autenticación con la solicitud.
Configura el acceso público al repositorio.
Para configurar Apt de modo que recupere paquetes de tu repositorio con 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.listReemplaza lo siguiente:
-
LOCATIONes la ubicación regional o multirregional del repositorio. PROJECT_IDes el ID del proyecto del repositorio.REPOSITORYes el nombre del repositorio.
Por ejemplo, para instalar paquetes desde el repositorio público
my-repoen el proyectomy-projecty en la ubicaciónus-west1con HTTP, usa el siguiente comando:echo 'deb http://us-west1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
-
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.