En esta página, se describe la configuración de 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 o remoto 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
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 credenciales de la cuenta de servicio de las VMs de Compute Engine 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. 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.
Preparar la VM para acceder al repositorio
VM de Compute Engine
VM de Debian
Asigna alcances de acceso a la API de
cloud-platform
a la VM. Para obtener más información sobre los permisos de acceso, consulta Cambia la cuenta de servicio y los permisos de acceso de una instancia.Actualiza Apt con el siguiente comando:
sudo apt update
Instala el paquete
apt-transport-artifact-registry
en la VM:sudo apt install apt-transport-artifact-registry
VM de Ubuntu
Instala las claves de firma del repositorio de Apt con los siguientes comandos: :
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 de del repositorio.Asignar
cloud-platform
permisos de acceso a la API a la VM. Para obtener más información sobre los permisos de acceso, consulta Cambia la cuenta de servicio y los permisos de acceso de una instancia.Configura tu VM para que acceda 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
Actualiza Apt con el siguiente comando:
sudo apt update
Instala el paquete
apt-transport-artifact-registry
en 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 apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Reemplaza
LOCATION
por la ubicación 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.list
Actualiza Apt con el siguiente comando:
sudo apt update
Instala el paquete
apt-transport-artifact-registry
en la VM:sudo apt install apt-transport-artifact-registry
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 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_KEY
por 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 estás configurando una VM de Compute Engine, continúa con el siguiente paso.
Instala la clave de verificación de firma pública 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 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=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 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
Configura Apt para recuperar paquetes de tu repositorio con
echo
. comando desde el resultado del comandoprint-settings
.Por ejemplo, para instalar paquetes del repositorio público
my-repo
en el proyectomy-project
y en la ubicaciónus-central1
, usa el siguiente comando:echo 'deb ar+https://us-central1-apt.pkg.dev/projects/my-project my-repo main'
Actualiza las fuentes de tu repositorio con el siguiente comando:
sudo apt update
Apt ahora 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
Configurar una VM para que use solo un repositorio de Apt remoto en lugar de un repositorio
repositorio upstream de Apt, 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 para todo el proyecto al valor predeterminado Cuenta de servicio de Compute Engine:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writer
Ve a la página Instancias de VM.
En la fila de tu VM, haz clic en SSH.
Se abrirá una ventana nueva con una sesión de la terminal en la VM.
Abre el archivo
/etc/apt/sources.list
de la VM y ubica el estándar que quieres reemplazar por tu nuevo repositorio remoto.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 COMPONENTS
Reemplaza lo siguiente:
LOCATION
por la configuración regional o multirregional location del repositorio remoto.PROJECT_ID
por el ID del proyecto de la VMREMOTE_REPOSITORY_NAME
por el nombre que le asignaste a tu repositorio remoto.UPSTREAM_REPOSITORY_NAME
por el nombre del repositorio upstream de tu control remoto.COMPONENTS
por una lista de nombres de componentes separados por espacios en blanco.
Por ejemplo, el siguiente comando configura la VM para recuperar paquetes del repositorio
my-repo
en el proyectomy-project
en la ubicaciónus-east1
conbuster
como el repositorio upstream para los componentesmain
,contrib
ynon-free
.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo buster main contrib non-free
Actualiza las fuentes de tu repositorio con el siguiente comando:
sudo apt update
Apt ahora puede conectarse al repositorio.
Usa un repositorio Apt 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
al archivo sources.list
o adjuntar el repositorio remoto al final de
el archivo sources.list
o crea una lista nueva en la carpeta sources.list.d
.
Para crear un nuevo archivo artifact-registry.list
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:
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.UPSTREAM_REPOSITORY_NAME
por el nombre del flujo de trabajo upstream de un repositorio para el control remoto.COMPONENTS
con una lista separada por espacios en blanco de los nombres de los componentes.
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 antiguas que no son compatibles con la encriptación SSL, puedes configurar acceso público al repositorio de Apt y acceder a él a través de HTTP. Se rechazarán las solicitudes que se envíen a repositorios públicos legibles a través de HTTP si se presenta un token de autenticación con la solicitud.
Configura el acceso público al repositorio.
Para configurar Apt para que recupere paquetes de tu repositorio con HTTP, ejecuta el siguiente comando:
echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID REPOSITORY main' >> /etc/apt/sources.list.d/artifact-registry.list
Reemplaza lo siguiente:
- LOCATION por la ubicación del repositorio
- PROJECT_ID por el ID del proyecto del repositorio
- REPOSITORY por el nombre del repositorio
Por ejemplo, para instalar paquetes del repositorio público
my-repo
en el en el proyectomy-project
y en la ubicaciónus-central1
mediante HTTP, usa el siguiente comando:echo 'deb http://us-central1-apt.pkg.dev/projects/my-project my-repo main' >> /etc/apt/sources.list.d/artifact-registry.list
Actualiza las fuentes de tu repositorio con el siguiente comando:
sudo apt update
Apt ahora puede conectarse al repositorio.
Si creas repositorios Apt adicionales, puedes agregarlos al
artifact-registry.list
y, luego, vuelve a ejecutar sudo apt update
para actualizar
del repositorio de código fuente.