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.
Primero, dónde vas a trabajar
Sección titulada «Primero, dónde vas a trabajar»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.
-
Instala WSL2 con Ubuntu, desde PowerShell como administrador:
Ventana de terminal wsl --install -d Ubuntu -
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.
-
Abre la terminal de Ubuntu, no PowerShell, y comprueba que ves el demonio:
Ventana de terminal docker info --format '{{.ServerVersion}}'
Instala Docker Engine desde los paquetes de tu distribución y agrégate al grupo
docker para no escribir sudo en cada comando:
sudo usermod -aG docker $USERnewgrp dockerdocker info --format '{{.ServerVersion}}'No hay nada más que ajustar. Los Makefile del taller detectan que estás en Linux
y le pasan tu identificador de usuario al contenedor, así que los archivos que se
creen en tus repositorios quedan siendo tuyos y no de root.
Cualquiera de las tres opciones sirve: Docker Desktop, OrbStack o Colima.
docker info --format '{{.ServerVersion}}'Lo único que instalas
Sección titulada «Lo único que instalas»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”.
-
Verifica lo que ya tienes:
Ventana de terminal git --versiondocker --versiondocker info --format '{{.ServerVersion}}'El tercero es el importante: confirma que el demonio está corriendo, no solo que el cliente está instalado.
-
Trae la imagen del taller:
Ventana de terminal docker pull ghcr.io/protecso-sac/workshop-toolchain:v1 -
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.
Cómo se usa el contenedor
Sección titulada «Cómo se usa el contenedor»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:
mkdir -p ~/protecso-workshopscd ~/protecso-workshopsY 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:
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'Autenticar gh dentro del contenedor
Sección titulada «Autenticar gh dentro del contenedor»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.
-
Crea el directorio de configuración en el host y entra al contenedor:
Ventana de terminal mkdir -p ~/.config/ghtaller bash -
Autentícate. Elige GitHub.com, protocolo HTTPS, y responde que sí a autenticar Git con tus credenciales de GitHub:
Ventana de terminal gh auth loginComo no hay navegador dentro del contenedor,
ghusa 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. -
Comprueba que quedó, y sal:
Ventana de terminal gh auth statusexit -
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
Cuenta de AWS
Sección titulada «Cuenta de AWS»Necesitas una cuenta con permisos para crear buckets de S3, distribuciones de CloudFront, certificados en ACM y roles de IAM.
Primero, el límite de gasto
Sección titulada «Primero, el límite de gasto»Antes de crear nada. Este taller cuesta centavos, pero la costumbre de poner el presupuesto antes de la infraestructura es la que evita sorpresas.
-
En la consola de AWS entra a Billing and Cost Management → Budgets.
-
Crea un presupuesto de costo mensual con un monto bajo, cinco dólares alcanza.
-
Configura una alerta al 80 por ciento con tu correo.
Después, las credenciales
Sección titulada «Después, las credenciales»aws configure ssoaws sts get-caller-identityLas credenciales de SSO son temporales, así que no queda una llave de larga duración guardada en tu disco.
aws configureaws sts get-caller-identitySi usas una llave de acceso, que sea de un usuario dedicado a este taller y bórrala al terminar. Una llave de larga duración en un archivo es exactamente lo que vamos a evitar en el pipeline más adelante.
El get-caller-identity tiene que responder con tu cuenta y tu identidad. Si
falla, no sigas: todo lo demás depende de esto.
Tu identificador en el taller
Sección titulada «Tu identificador en el taller»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.
Si te quedas atrás
Sección titulada «Si te quedas atrás»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:
# en tu repo de la appgit remote add soluciones https://github.com/Protecso-SAC/taskflow-app-template
# en tu repo de infraestructuragit remote add soluciones https://github.com/Protecso-SAC/taskflow-infra-templateY cuando necesites recuperar algo puntual:
git fetch solucionesgit checkout soluciones/main -- src/lib/reactive.tsComprobación final
Sección titulada «Comprobación final»Con esto deberías tener:
docker inforespondiendo. 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 statusfuncionando desde el contenedor, y sobreviviendo al salir.aws sts get-caller-identitydevolviendo tu cuenta.- Un presupuesto con alerta configurado.
- Tu identificador elegido.
Resumen de comandos
Sección titulada «Resumen de comandos»mkdir -p ~/protecso-workshops && cd ~/protecso-workshopsmkdir -p ~/.config/gh
docker pull ghcr.io/protecso-sac/workshop-toolchain:v1
# el alias, para antes de tener repositoriosalias 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 bashgh auth login # GitHub.com, HTTPS, y sí a autenticar Gitgh auth statusexit
taller gh auth status # comprobar que la sesión sobrevivióaws sts get-caller-identitySi todo responde, creamos tus repositorios.