Documentación de OTLab

Esta documentación describe los pasos necesarios para configurar el entorno de ejecución de los laboratorios OTLab utilizando Docker. También presenta los comandos básicos de administración y la estructura general del proyecto.

Requisitos

Antes de comenzar, asegúrate de tener instalado:

  • Git
  • Docker Engine
  • Docker Compose
  • WSL2 (recomendado para usuarios de Windows)
  • Visual Studio Code (opcional)

Instalación de Docker (Ubuntu / WSL2)

Actualizar el sistema:

sudo apt update && sudo apt upgrade -y

Instalar dependencias:

sudo apt install -y ca-certificates curl gnupg

Agregar el repositorio oficial de Docker:

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instalar Docker Engine y Docker Compose:

sudo apt update

sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin

Iniciar Docker:

sudo service docker start

Permitir el uso de Docker sin sudo:

sudo usermod -aG docker $USER
newgrp docker

Verificar la instalación:

docker --version
docker compose version

Clonar el Repositorio

git clone https://github.com/substationworm/OTLab.git
cd OTLab

Ejecutar un Laboratorio

Cada laboratorio dispone de su propio script de administración.

Ejemplo para OTLab01:

cd OTLab01
chmod +x OTLab01.sh

./OTLab01.sh -start ubuntu
./OTLab01.sh -run

Comandos de Administración

ComandoDescripción
./OTLab01.sh -start ubuntuInicia el laboratorio
./OTLab01.sh -runAbre una terminal dentro del contenedor otlab-student
./OTLab01.sh -statusMuestra el estado actual de los contenedores
./OTLab01.sh -stopDetiene los contenedores
./OTLab01.sh -restartReinicia los contenedores
./OTLab01.sh -cleanElimina contenedores, volúmenes y redes

Nota: El nombre del script cambia según el laboratorio (OTLab02.sh, OTLab03.sh, etc.).

Estructura del Repositorio

├── .github/
│   └── workflows/
│       └── hugo.yml
├── .landingPage/
│   ├── archetypes/
│   ├── content/
│   ├── i18n/
│   ├── layouts/
│   ├── static/
│   ├── hugo.yaml
│   ├── README.md
│   └── CONTRIBUTING.md
├── OTLab01/
├── OTLab02/
├── OTLab03/
├── OTLab04/
├── OTLab05/
├── OTLab06/
├── OTLab07/
├── OTLab08/
├── OTLab09/
├── OTLab10/
├── OTLab11/
├── OTLab12/
├── OTLab13/

La carpeta .landingPage contiene todo el código del sitio web Hugo, incluidos los layouts, contenidos, traducciones y recursos estáticos.

Cada carpeta OTLabXX contiene los archivos Markdown del laboratorio, las versiones traducidas, los PDF generados automáticamente y los scripts de ejecución asociados al entorno de laboratorio correspondiente.

CI/CD

El sitio web se genera automáticamente mediante GitHub Actions.

El pipeline realiza:

  • Compilación del sitio web Hugo;
  • Generación automática de los PDF de los laboratorios;
  • Publicación automática en GitHub Pages;
  • Actualización del sitio web tras cambios en la rama principal.