Práctica 1 — Instalación y Entorno
Objetivo
Sección titulada “Objetivo"Al terminar esta práctica tendrás un servidor Ubuntu Server 24.04 corriendo y accesible por SSH desde tu ordenador, igual que un servidor remoto real. Elige el método que mejor se adapte a tu sistema.
¿Qué método usar?
Sección titulada “¿Qué método usar?"| Método | Sistema | Requisitos | Complejidad |
|---|---|---|---|
| Multipass | Windows y Linux | Hyper-V (Win) o KVM (Linux) | Baja |
| WSL2 | Solo Windows | Windows 10/11 64-bit | Muy baja |
| VirtualBox | Windows, Mac y Linux | Cualquier sistema | Media |
| KVM/virt-install | Linux | KVM habilitado + ISO Ubuntu | Media-Alta |
Paso 1 — Levantar el servidor
Sección titulada “Paso 1 — Levantar el servidor"Un solo comando:
distrobox create --name servidor-linux --image ubuntu:22.04 && distrobox enter servidor-linuxUn solo comando (PowerShell como admin):
wsl --install -d Ubuntu-24.04Dos comandos:
brew install limalimactl create --name=servidor-linux template://ubuntu && limactl shell servidor-linuxPaso 2 — Primera sesión en el servidor
Sección titulada “Paso 2 — Primera sesión en el servidor"Ya estás dentro (ejecutaste distrobox enter en el paso anterior). Si saliste, vuelve a entrar:
distrobox enter servidor-linuxYa estás dentro. Si cerraste la ventana, vuelve a abrir Ubuntu desde el menú Inicio o ejecuta:
wsl -d Ubuntu-24.04Ya estás dentro. Si saliste, vuelve a entrar:
limactl shell servidor-linuxUna vez dentro, ejecuta estos 4 comandos:
uname -a # Ver información del sistemaip addr show # Ver redessudo apt update # Actualizar lista de paquetessudo apt upgrade -y # Instalar actualizacionesPaso 3 — Conectarte por SSH
Sección titulada “Paso 3 — Conectarte por SSH"No necesitas SSH. Distrobox ya te mete dentro de Ubuntu directamente. Si quieres practicar SSH igualmente:
# Dentro de Ubuntu, instalar SSH y obtener IPsudo apt install -y openssh-serverip addr show | grep inetLuego desde otra terminal de Arch: ssh alumno@<IP>
No necesitas SSH. Ya estás dentro de Ubuntu. Si quieres practicar:
# Desde PowerShell, obtener IP y conectarwsl hostname -Issh alumno@<IP-WSL>No necesitas SSH. Lima ya te mete dentro. Si quieres practicar:
# Dentro de Ubuntu, ver IPip addr show | grep inet# Desde otra terminal: ssh alumno@<IP>Paso 4 — Autenticación por clave SSH (opcional)
Sección titulada “Paso 4 — Autenticación por clave SSH (opcional)"Generar clave (en Arch, fuera del contenedor):
ssh-keygen -t ed25519 -C "alumno@clase"# Pulsa Enter 3 vecesCopiar clave al servidor:
ssh-copy-id alumno@<IP-del-contenedor>Verificar:
ssh alumno@<IP> # Ya no pide contraseñaGenerar clave (en PowerShell):
ssh-keygen -t ed25519 -C "alumno@clase"# Pulsa Enter 3 vecesCopiar clave al servidor:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh alumno@<IP-WSL> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Verificar:
ssh alumno@<IP-WSL> # Ya no pide contraseñaGenerar clave:
ssh-keygen -t ed25519 -C "alumno@clase"# Pulsa Enter 3 vecesCopiar clave al servidor:
ssh-copy-id alumno@<IP-del-contenedor>Verificar:
ssh alumno@<IP> # Ya no pide contraseñaPaso 5 — Configurar el hostname y la zona horaria
Sección titulada “Paso 5 — Configurar el hostname y la zona horaria"# Cambiar el hostname (nombre del servidor)sudo hostnamectl set-hostname servidor-linux
# Configurar la zona horaria a Españasudo timedatectl set-timezone Europe/Madrid
# Verificartimedatectl📤 Sistema de entregas — GitHub
Sección titulada “📤 Sistema de entregas — GitHub"A partir de ahora, todas las prácticas se entregan en un único repositorio de GitHub. Esto te sirve como portafolio y te familiariza con el flujo de trabajo profesional (git, commits, pull requests).
1. Crear el repositorio principal
Sección titulada “1. Crear el repositorio principal"Ve a GitHub y crea un repositorio con:
| Repository name | lfcs-practicas |
| Description | Prácticas del curso LFCS |
| Public / Private | Elige público (para portafolio) o privado (si quieres solo para el profesor) |
| Initialize | ❌ No marcar nada |
2. Estructura de carpetas
Sección titulada “2. Estructura de carpetas"Dentro del repositorio, cada práctica tiene su propia carpeta. La estructura es siempre la misma:
lfcs-practicas/├── practica1/│ ├── README.md│ └── entrega/│ └── verificacion.txt├── practica2/│ ├── README.md│ └── entrega/│ ├── verificacion.txt│ └── (otros ficheros si los hay)├── practica3/│ ├── README.md│ └── entrega/│ └── ......└── practica6/ ├── README.md └── entrega/ ├── verificacion.txt └── (ficheros específicos del ejercicio)3. Qué contiene cada README.md
Sección titulada “3. Qué contiene cada README.md"El README.md de cada práctica debe incluir:
# Práctica X — [Título de la práctica]
## Servidor / entorno utilizado- Método: Distrobox / WSL2 / Lima / VirtualBox- SO: Ubuntu 22.04 / 24.04- Hostname: servidor-linux
## Comandos / herramientas nuevas aprendidas- `comando1` - para qué sirve- `comando2` - para qué sirve
## Dificultades encontradas<!-- Describe al menos un problema real que tuviste y cómo lo solucionaste -->
## Tiempo dedicado<!-- Ej: 2 horas -->
## EvidenciaLos ficheros generados están en la carpeta `entrega/`4. Flujo de trabajo para cada práctica
Sección titulada “4. Flujo de trabajo para cada práctica"# 1. Clonar el repositorio (solo la primera vez)git clone https://github.com/TU-USUARIO/lfcs-practicas.gitcd lfcs-practicas
# 2. Crear la carpeta de la práctica actualmkdir -p practicaX/entrega
# 3. Hacer los ejercicios y guardar los ficheros en practicaX/entrega/
# 4. Escribir el README.mdnano practicaX/README.md
# 5. Subir los cambiosgit add .git commit -m "Entrega práctica X: [breve descripción]"git push5. Entregar al profesor
Sección titulada “5. Entregar al profesor"Comparte el enlace a tu repositorio:
- Si es público:
https://github.com/TU-USUARIO/lfcs-practicas - Si es privado: Añade al profesor como colaborador (Settings → Collaborators → Add people)
El profesor revisará:
- Estructura de carpetas correcta
README.mdcompleto- Ficheros de entrega generados
- Fechas de los commits (evitar entregas fuera de plazo)
6. Resumen por práctica
Sección titulada “6. Resumen por práctica"| Práctica | Carpeta | Qué debe contener “entrega/“ |
|---|---|---|
| 1 | practica1/ | verificacion.txt |
| 2 | practica2/ | verificacion.txt + ficheros que se pidan |
| 3 | practica3/ | verificacion.txt + ficheros |
| 4 | practica4/ | verificacion.txt + ficheros |
| 5 | practica5/ | verificacion.txt + ficheros |
| 6 | practica6/ | verificacion.txt + ficheros (incluye 61_.txt, 62_.txt, etc.) |
7. Ejemplo completo para la Práctica 1
Sección titulada “7. Ejemplo completo para la Práctica 1"Dentro del servidor Ubuntu (Distrobox/WSL/Lima):
# Crear estructuramkdir -p ~/lfcs-practicas/practica1/entrega
# Generar verificacion.txt{ echo "=== ENTREGA PRÁCTICA 1 ===" echo "Hostname: $(hostname)" echo "Usuario: $(whoami)" uname -a ip addr show | grep "inet " | grep -v "127.0.0.1" timedatectl | grep "Time zone" sudo apt list --upgradable 2>/dev/null | wc -l} > ~/lfcs-practicas/practica1/entrega/verificacion.txt
# Crear READMEcat > ~/lfcs-practicas/practica1/README.md << 'EOF'# Práctica 1 — Instalación y Entorno
## Servidor utilizado- Método: Distrobox- SO: Ubuntu 22.04 LTS- Hostname: servidor-linux
## Comandos aprendidos- `distrobox create` - crear contenedor Ubuntu- `sudo apt update && sudo apt upgrade` - actualizar sistema- `hostnamectl` - cambiar nombre del servidor- `timedatectl` - cambiar zona horaria
## DificultadesAl principio no distinguía si estaba dentro de Ubuntu o en Arch. Lo solucioné ejecutando `cat /etc/os-release`.
## Tiempo45 minutos
## EvidenciaLa carpeta `entrega/` contiene la verificación del sistema.EOF
# Inicializar git y subircd ~/lfcs-practicasgit initgit add .git commit -m "Entrega práctica 1: servidor Ubuntu con Distrobox"git branch -M maingit remote add origin https://github.com/TU-USUARIO/lfcs-practicas.gitgit push -u origin main8. Criterios de evaluación comunes para todas las prácticas
Sección titulada “8. Criterios de evaluación comunes para todas las prácticas"| Elemento | Puntuación |
|---|---|
| Carpeta practicaX/entrega/ existe | 1 pto |
| Ficheros de entrega generados correctamente | 3 ptos |
| README.md completo (mínimo 5 líneas) | 2 ptos |
| Dificultades documentadas (mínimo 1) | 1 pto |
| Commit con mensaje descriptivo | 1 pto |
| Estructura general del repositorio | 2 ptos |
| Total | 10 ptos |
9. Alternativa para alumnos sin GitHub
Sección titulada “9. Alternativa para alumnos sin GitHub"Si algún alumno no puede o no quiere usar GitHub:
# Empaquetar la práctica actualtar czf practicaX-$(whoami).tar.gz practicaX/# Enviar el fichero .tar.gz por correo o aula virtualPero se recomienda encarecidamente GitHub para construir un portafolio aprovechable en el mundo laboral.