En esta página, se describe cómo configurar VMs para instalar paquetes 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 uno 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
Para preparar una VM para acceder a un repositorio de Yum, usa la herramienta cliente yum
o dnf
:
Repositorio privado
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.
Otorga permisos de acceso al repositorio a tu cuenta de servicio.
Prepara la VM para acceder al repositorio.
VM de Compute Engine
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 permisos de acceso para una instancia.Actualiza la caché del paquete con el siguiente comando:
sudo yum makecache
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 anteriordnf
, si tu sistema operativo es Enterprise Linux 8 o posterior
Otra VM
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
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 anteriordnf
, si tu sistema operativo es Enterprise Linux 8 o posterior
DISTRO
con la versión principal de Red Hat Enterprise Linux en el formatoelX
, en el queX
es la versión de lanzamiento. Ejemplos de valoresDISTRO
válidos sonel7
yel8
.
Actualiza Yum con el siguiente comando:
sudo yum makecache
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 anteriordnf
, si tu sistema operativo es Enterprise Linux 8 o posterior
Busca la línea
#service_account_json = "/path/to/creds.json"
en el archivoartifact-registry.conf
, quita el comentario de la línea y agrega la ruta de acceso a la clave de tu cuenta de servicio.- En el caso de los sistemas operativos Enterprise Linux 7 o versiones anteriores, la ruta de acceso 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 de acceso 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.- En el caso de los sistemas operativos Enterprise Linux 7 o versiones anteriores, la ruta de acceso al archivo de configuración es
Repositorio público
Configura el acceso público al repositorio.
Configura una VM para acceder a un repositorio de Yum estándar
Para configurar una VM para que acceda a un repositorio de Yum, usa la herramienta de cliente yum
o dnf
:
Para generar el comando de configuración de la VM, ejecuta el comando
gcloud beta artifacts print-settings yum
:gcloud beta artifacts print-settings yum \ --repository=REPOSITORY \ --location=LOCATION
Reemplaza lo siguiente:
REPOSITORY
es el nombre del repositorio de Artifact Registry.-
LOCATION
es la ubicación regional o multirregional del repositorio.
El resultado es similar a este:
# 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
Configura la herramienta cliente de
yum
para recuperar paquetes de tu repositorio con el comandotee
del resultado del comandoprint-settings
.Por ejemplo, para instalar paquetes del
my-repo
público en el proyectomy-project
y en la ubicaciónus-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
Actualiza las fuentes de tu repositorio con el siguiente comando:
sudo yum makecache
Ahora Yum 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 de Yum remoto
Para configurar una VM de modo que solo use un repositorio de Yum remoto en lugar de un repositorio de Yum upstream estándar, reemplaza el repositorio estándar en la lista de repositorios de la VM por el repositorio remoto.
Si el repositorio estándar se define 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 repositorio remoto, o bien definir un nuevo archivo de repositorio en el directorio /etc/yum.repos.d/
.
Ve 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 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 de Yum que contiene[base]
o[baseos]
.Para reemplazar el repositorio base por completo, quita la configuración predeterminada en
[base]
o[baseos]
. Si deseas conservar el repositorio upstream estándar y agregar el repositorio remoto como opción de respaldo, no quites la configuración predeterminada.Agrega los siguientes parámetros de configuración en
[base]
o[baseos]
: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 de Yum remoto. Este nombre puede coincidir con el nombre del repositorio upstream si borraste la configuración estándar del repositorio upstream o, si conservas el repositorio upstream estándar, puedes usar un nombre diferente para identificarlo como un repositorio remoto.-
LOCATION
es la ubicación regional o multirregional del repositorio. PROJECT_ID
con el ID del proyecto de la VM.REMOTE_REPOSITORY_NAME
por el nombre legible del repositorio remoto.
Usa un repositorio de Yum remoto como copia de seguridad
Si deseas mantener el upstream estándar como la primera opción y agregar el repositorio remoto como opción de respaldo, puedes mantener el upstream estándar 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
con un ID de repositorio único de una palabra para tu repositorio de Yum remoto.REPOSITORY_NAME
por el nombre legible del repositorio.LOCATION
con la ubicación regional o multirregional del repositorio remotoPROJECT_ID
con el ID del proyecto de la VM.REMOTE_REPOSITORY_NAME
por el nombre que le asignaste a tu repositorio remoto.
Por ejemplo, el siguiente comando configura la VM para recuperar el repositorio my-repo
en el proyecto my-project
y la ubicación us-west1
cuando Yum instala 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