Ir al contenido

Prerequisitos

Objetivo de este módulo: en veinte minutos tienes el entorno listo, un límite de gasto configurado, y tu propio repositorio con el código base.

El taller funciona igual en los tres sistemas, pero en Windows hay que elegir bien la terminal. Busca tu caso y sigue solo esa pestaña.

Instala Docker Desktop con el backend de WSL2, y trabaja siempre dentro de WSL2, no en PowerShell ni en CMD.

  1. Instala WSL2 con Ubuntu, desde PowerShell como administrador:

    Ventana de terminal
    wsl --install -d Ubuntu
  2. Instala Docker Desktop y, en Settings → General, confirma que está marcado Use the WSL 2 based engine. En Settings → Resources → WSL integration, habilita tu distribución de Ubuntu.

  3. Abre la terminal de Ubuntu, no PowerShell, y comprueba que ves el demonio:

    Ventana de terminal
    docker info --format '{{.ServerVersion}}'

git y docker. Nada más.

Node, Terraform, la AWS CLI y gh vienen en una imagen de contenedor, con versiones fijas. Así todos en la sala usan exactamente lo mismo y desaparece la media hora que normalmente se pierde en “a mí me da otro error”.

  1. Verifica lo que ya tienes:

    Ventana de terminal
    git --version
    docker --version
    docker info --format '{{.ServerVersion}}'

    El tercero es el importante: confirma que el demonio está corriendo, no solo que el cliente está instalado.

  2. Trae la imagen del taller:

    Ventana de terminal
    docker pull ghcr.io/protecso-sac/workshop-toolchain:v1
  3. Comprueba que trae todo:

    Ventana de terminal
    docker run --rm ghcr.io/protecso-sac/workshop-toolchain:v1 \
    bash -c 'node -v && terraform version | head -1 && aws --version && gh --version | head -1'

    Deberías ver Node 24, Terraform 1.16.1, AWS CLI 2 y gh 2.

La idea es montar tu carpeta de trabajo dentro del contenedor. Dentro tienes Node, Terraform, la AWS CLI, gh, git y make.

Empieza creando la carpeta donde va a vivir todo el taller:

Ventana de terminal
mkdir -p ~/protecso-workshops
cd ~/protecso-workshops

Y define este alias en tu terminal. Es el contenedor con tu carpeta de trabajo, tu perfil de AWS y tu sesión de gh montados:

Ventana de terminal
alias taller='docker run --rm -it \
-u $(id -u):$(id -g) -e HOME=/tmp \
-v "$PWD":/work -w /work \
-v "$HOME/.aws":/tmp/.aws \
-v "$HOME/.config/gh":/tmp/.config/gh \
-e AWS_PROFILE -e AWS_REGION -e GH_TOKEN \
ghcr.io/protecso-sac/workshop-toolchain:v1'

gh vive en el contenedor, no en tu máquina. Como el contenedor se destruye al salir, la sesión se guarda en tu host, en ~/.config/gh, y se vuelve a montar la próxima vez. Te autenticas una sola vez.

  1. Crea el directorio de configuración en el host y entra al contenedor:

    Ventana de terminal
    mkdir -p ~/.config/gh
    taller bash
  2. Autentícate. Elige GitHub.com, protocolo HTTPS, y responde que a autenticar Git con tus credenciales de GitHub:

    Ventana de terminal
    gh auth login

    Como no hay navegador dentro del contenedor, gh usa el flujo de dispositivo: muestra un código de ocho caracteres y una URL. Abres esa URL en el navegador de tu máquina, pegas el código, y el contenedor completa el login solo.

  3. Comprueba que quedó, y sal:

    Ventana de terminal
    gh auth status
    exit
  4. Vuelve a entrar y comprueba que la sesión sobrevivió. Esto es lo que confirma que la configuración se está guardando en tu host y no dentro del contenedor:

    Ventana de terminal
    taller gh auth status

Necesitas una cuenta con permisos para crear buckets de S3, distribuciones de CloudFront, certificados en ACM y roles de IAM.

Antes de crear nada. Este taller cuesta centavos, pero la costumbre de poner el presupuesto antes de la infraestructura es la que evita sorpresas.

  1. En la consola de AWS entra a Billing and Cost Management → Budgets.

  2. Crea un presupuesto de costo mensual con un monto bajo, cinco dólares alcanza.

  3. Configura una alerta al 80 por ciento con tu correo.

Ventana de terminal
aws configure sso
aws sts get-caller-identity

Las credenciales de SSO son temporales, así que no queda una llave de larga duración guardada en tu disco.

El get-caller-identity tiene que responder con tu cuenta y tu identidad. Si falla, no sigas: todo lo demás depende de esto.

Elige ahora cómo te vas a llamar durante el taller: tu nombre o tu usuario de GitHub, en minúsculas y sin espacios. Por ejemplo p01.

Ese valor va a nombrar tus recursos de AWS y va a ser tu subdominio en producción, así que apúntalo y no lo cambies después. Tiene que cumplir las reglas de una etiqueta de DNS: minúsculas, números y guiones, sin guión al principio ni al final.

Va a pasar, y no es un problema. Las plantillas del taller son también el repositorio de soluciones, así que puedes recuperar cualquier archivo tal como debería quedar.

Agrega el remoto una vez, en cada uno de tus dos repositorios:

Ventana de terminal
# en tu repo de la app
git remote add soluciones https://github.com/Protecso-SAC/taskflow-app-template
# en tu repo de infraestructura
git remote add soluciones https://github.com/Protecso-SAC/taskflow-infra-template

Y cuando necesites recuperar algo puntual:

Ventana de terminal
git fetch soluciones
git checkout soluciones/main -- src/lib/reactive.ts

Con esto deberías tener:

  • docker info respondiendo. En Windows, desde la terminal de Ubuntu y con la carpeta del taller en tu home de Linux, no en /mnt/c.
  • La imagen de toolchain descargada, con Node, Terraform, AWS CLI y gh.
  • gh auth status funcionando desde el contenedor, y sobreviviendo al salir.
  • aws sts get-caller-identity devolviendo tu cuenta.
  • Un presupuesto con alerta configurado.
  • Tu identificador elegido.
Ventana de terminal
mkdir -p ~/protecso-workshops && cd ~/protecso-workshops
mkdir -p ~/.config/gh
docker pull ghcr.io/protecso-sac/workshop-toolchain:v1
# el alias, para antes de tener repositorios
alias taller='docker run --rm -it \
-u $(id -u):$(id -g) -e HOME=/tmp \
-v "$PWD":/work -w /work \
-v "$HOME/.aws":/tmp/.aws \
-v "$HOME/.config/gh":/tmp/.config/gh \
-e AWS_PROFILE -e AWS_REGION -e GH_TOKEN \
ghcr.io/protecso-sac/workshop-toolchain:v1'
taller bash
gh auth login # GitHub.com, HTTPS, y sí a autenticar Git
gh auth status
exit
taller gh auth status # comprobar que la sesión sobrevivió
aws sts get-caller-identity

Si todo responde, creamos tus repositorios.