Google Cloud CLI (antes llamada Google Cloud SDK) incluye el comando gcloud, con el que se gestionan proyectos, máquinas de Compute Engine, buckets de Cloud Storage, permisos IAM y el resto de servicios de Google Cloud desde la terminal. En este tutorial instalarás la CLI en Ubuntu 24.04 desde el repositorio oficial de Google, te autenticarás desde un servidor sin navegador, gestionarás proyectos y configuraciones, y usarás Cloud Storage con una cuenta de servicio de permisos mínimos para automatizar tareas.

Requisitos previos

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath.
  • Un usuario no root con privilegios sudo.
  • Una cuenta de Google Cloud con un proyecto creado y la facturación activada. Necesitarás el ID del proyecto, que se ve en la consola, y aquí se representa como tu-proyecto-id.

Paso 1: Añadir el repositorio oficial de Google Cloud

Instalar desde el repositorio de paquetes de Google permite actualizar la CLI con apt junto al resto del sistema. Instala primero las herramientas necesarias para descargar la clave del repositorio:

sudo apt update
sudo apt install -y ca-certificates curl gnupg

Descarga la clave de firma de Google Cloud y guárdala en /etc/apt/keyrings:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/cloud.google.gpg

Añade el repositorio indicando que sus paquetes se validan con esa clave:

echo "deb [signed-by=/etc/apt/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list

Paso 2: Instalar Google Cloud CLI

Actualiza el índice de paquetes e instala google-cloud-cli:

sudo apt update
sudo apt install -y google-cloud-cli

Comprueba la versión instalada:

gcloud version
Google Cloud SDK 5xx.0.0
bq 2.x.x
core 2026.xx.xx
gcloud-crc32c 1.0.0
gsutil 5.xx

Paso 3: Autenticarte desde un servidor sin navegador

gcloud auth login abre un navegador para iniciar sesión con tu cuenta de Google. En un servidor remoto no hay navegador, así que usa la opción --no-launch-browser:

gcloud auth login --no-launch-browser

El comando muestra una URL larga. Ábrela en el navegador de tu ordenador, inicia sesión con tu cuenta de Google, acepta los permisos y copia el código de verificación que aparece. Pégalo en la terminal del servidor:

Once finished, enter the verification code provided in your browser: 4/0Axxxxxxxxxxxxxxxx
You are now logged in as [[email protected]].

Comprueba la cuenta activa:

gcloud auth list
    Credentialed Accounts
ACTIVE  ACCOUNT
*       [email protected]

Paso 4: Seleccionar el proyecto y la región por defecto

Casi todos los comandos de gcloud actúan sobre un proyecto. Lista los proyectos a los que tienes acceso:

gcloud projects list
PROJECT_ID        NAME            PROJECT_NUMBER
tu-proyecto-id    Mi proyecto     123456789012

Fija el proyecto, la región y la zona por defecto para no tener que repetirlos en cada comando. Sustituye tu-proyecto-id por el ID real y elige la región más cercana a tus usuarios:

gcloud config set project tu-proyecto-id
gcloud config set compute/region europe-west1
gcloud config set compute/zone europe-west1-b

Verifica la configuración activa:

gcloud config list
[compute]
region = europe-west1
zone = europe-west1-b
[core]
account = [email protected]
disable_usage_reporting = True
project = tu-proyecto-id

Paso 5: Usar varias configuraciones

Si trabajas con varios proyectos o cuentas, las configuraciones guardan juegos completos de ajustes (cuenta, proyecto, región) y permiten cambiar entre ellos con un solo comando. La que acabas de ajustar se llama default. Crea otra para un proyecto de pruebas; al crearla se activa automáticamente:

gcloud config configurations create pruebas
gcloud config set project tu-proyecto-pruebas-id
gcloud config set account [email protected]

Lista las configuraciones y cambia entre ellas:

gcloud config configurations list
gcloud config configurations activate default

La columna IS_ACTIVE indica cuál está en uso. Para un solo comando puedes usar otra configuración sin activarla, con la opción global --configuration=pruebas.

Paso 6: Trabajar con Cloud Storage

gcloud storage es el comando actual para Cloud Storage y sustituye a gsutil, que Google mantiene solo por compatibilidad. Crea un bucket. Su nombre es global en todo Google Cloud, así que elige uno único, en minúsculas:

gcloud storage buckets create gs://tu-bucket-backups --location=europe-west1 --uniform-bucket-level-access

La opción --uniform-bucket-level-access hace que los permisos se gestionen solo con IAM a nivel de bucket, sin ACL por objeto, que es la opción recomendada.

Sube un archivo y lista el contenido del bucket:

echo "prueba" > /tmp/prueba.txt
gcloud storage cp /tmp/prueba.txt gs://tu-bucket-backups/
gcloud storage ls gs://tu-bucket-backups/
gs://tu-bucket-backups/prueba.txt

Para sincronizar un directorio completo, gcloud storage rsync copia solo los archivos nuevos o modificados:

gcloud storage rsync /var/backups gs://tu-bucket-backups/servidor-web --recursive

Añade --delete-unmatched-destination-objects solo si quieres que los archivos borrados en el servidor se eliminen también del bucket. Para descargar un archivo, invierte el origen y el destino:

gcloud storage cp gs://tu-bucket-backups/prueba.txt ./prueba-descargada.txt

Paso 7: Crear una cuenta de servicio para automatizar tareas

Tu cuenta personal tiene normalmente muchos más permisos de los que necesita un script. Para tareas automáticas, como una copia nocturna, usa una cuenta de servicio con solo los permisos imprescindibles. Créala:

gcloud iam service-accounts create backup-servidor --display-name="Copias del servidor web"

Dale permiso para gestionar objetos únicamente en el bucket de copias, no en todo el proyecto:

gcloud storage buckets add-iam-policy-binding gs://tu-bucket-backups \
  --member="serviceAccount:[email protected]" \
  --role="roles/storage.objectAdmin"

Un servidor que no está en Google Cloud necesita una clave para autenticarse como esa cuenta. Genera la clave en un directorio protegido del usuario que ejecutará las tareas:

mkdir -p ~/.config/gcloud-keys
chmod 700 ~/.config/gcloud-keys
gcloud iam service-accounts keys create ~/.config/gcloud-keys/backup-servidor.json \
  --iam-account=backup-servidor@tu-proyecto-id.iam.gserviceaccount.com
chmod 600 ~/.config/gcloud-keys/backup-servidor.json

Activa la cuenta de servicio en gcloud. Queda añadida como una cuenta más y pasa a ser la activa:

gcloud auth activate-service-account --key-file="$HOME/.config/gcloud-keys/backup-servidor.json"
gcloud auth list
    Credentialed Accounts
ACTIVE  ACCOUNT
*       [email protected]
        [email protected]

Comprueba que los permisos son los esperados: la cuenta puede escribir en el bucket de copias, pero no listar las máquinas del proyecto:

gcloud storage cp /tmp/prueba.txt gs://tu-bucket-backups/prueba-sa.txt
gcloud compute instances list

El primer comando funciona y el segundo termina con un error de permisos, que es justo lo que buscas. Para volver a tu cuenta personal, ejecuta gcloud config set account [email protected].

Las bibliotecas cliente de Google y herramientas como Terraform no usan las credenciales de gcloud, sino las Application Default Credentials. Para que usen esta misma cuenta de servicio, apunta la variable de entorno a la clave:

export GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/gcloud-keys/backup-servidor.json"

Paso 8: Comandos básicos de Compute Engine

Con tu cuenta personal activa y la API de Compute Engine habilitada en el proyecto, estos son los comandos que usarás a diario. Crea una máquina pequeña con Ubuntu 24.04:

gcloud compute instances create mi-servidor \
  --machine-type=e2-small \
  --image-family=ubuntu-2404-lts-amd64 \
  --image-project=ubuntu-os-cloud \
  --boot-disk-size=20GB

La zona se toma de la configuración del paso 4. Lista las instancias y conéctate por SSH; gcloud genera y propaga la clave SSH automáticamente la primera vez:

gcloud compute instances list
gcloud compute ssh mi-servidor

Detén la máquina cuando no la uses, o elimínala para dejar de pagar por ella y por su disco:

gcloud compute instances stop mi-servidor
gcloud compute instances delete mi-servidor

Solución de problemas

ERROR: (gcloud.auth.login) There was a problem with web authentication. Estás usando gcloud auth login sin --no-launch-browser en un servidor sin entorno gráfico. Repite el comando con esa opción.

PERMISSION_DENIED o does not have storage.objects.create access. La cuenta activa no tiene el rol necesario. Comprueba qué cuenta está activa con gcloud auth list y revisa los permisos del bucket con gcloud storage buckets get-iam-policy gs://tu-bucket-backups.

API [compute.googleapis.com] not enabled on project. La API del servicio no está habilitada. Actívala con gcloud services enable compute.googleapis.com, o acepta la pregunta que muestra gcloud.

You cannot perform this action because the component manager is disabled. Aparece al ejecutar gcloud components en una instalación por apt. Actualiza con sudo apt update && sudo apt upgrade e instala componentes como paquetes.

Conclusión

Has instalado Google Cloud CLI en Ubuntu 24.04 desde el repositorio oficial, te has autenticado sin navegador, has organizado proyectos con configuraciones y has usado Cloud Storage con una cuenta de servicio limitada a un bucket. Como siguientes pasos puedes programar el gcloud storage rsync con un temporizador de systemd, añadir una política de ciclo de vida al bucket para borrar copias antiguas, o instalar kubectl y el plugin de autenticación de GKE para gestionar clústeres de Kubernetes desde el mismo servidor.