Estación de desarrollo
Esta guía compila una estación GNOME Ubuntu 24.04 con un conjunto conservador de herramientas y pruebas de humo explícitas. Las versiones de lenguaje y editor siguen las fuentes de paquetes seleccionadas salvo que fijes y revises otra fuente.
Prompt
Create an Ubuntu 24.04 GNOME development workstation with a dark color
scheme, SSH, Docker, Git, Python, Node.js, curl, jq, tmux, htop, and Neovim.
Create a locked-password user named dev with sudo and Docker group intent.
Do not add third-party repositories unless their HTTPS URL, signing key,
release support, and license are explicit. Add tests for the desktop session,
tool versions, Docker service, group membership, and one container smoke test.Revisa la receta
{
"name": "ubuntu24-development-workstation",
"base_image": "ubuntu-24.04",
"os": {
"features": ["desktop", "ssh", "docker", "git", "python", "nodejs"],
"packages": ["curl", "jq", "tmux", "htop", "neovim"],
"users": [
{
"username": "dev",
"groups": ["sudo", "docker"],
"shell": "/bin/bash"
}
],
"desktop_settings": {
"color_scheme": "prefer-dark",
"fonts": {
"monospace_font": "Ubuntu Mono 13"
},
"power": {
"idle_delay": 600,
"sleep_inactive_ac_timeout": 0,
"sleep_inactive_ac_type": "nothing"
}
}
}
}Confirma que cada feature se expande en Ubuntu 24.04 como se espera. La pertenencia al grupo docker suele ser equivalente a root porque puede controlar el daemon Docker; quítala si el usuario no debe tener esa autoridad.
Versiones y fuentes
No pidas «latest» en una estación controlada. Registra las versiones realmente disponibles del snapshot seleccionado y prueba esas versiones. Un repositorio de vendor o un instalador bootstrap añade otra raíz de confianza y ciclo de vida de actualización; úsalo solo después de revisar su clave, metadatos de repositorio, términos y comportamiento de rollback.
Herramientas como Rustup, gestores de versión de lenguaje, extensiones de editor e imágenes de contenedor pueden descargar código móvil después de compilar la imagen. Si importan para la línea base de la estación, fíjalas e incluye su procedencia en el paquete de evidencia.
Escenario de verificación
{
"id": "development-smoke",
"name": "Development workstation smoke test",
"enabled": true,
"tests": ["boot", "login", "packages", "services"],
"custom_tests": [
{
"description": "Confirm core tools and Docker are usable.",
"assertions": [
{
"type": "command_succeeds",
"description": "Python reports a version.",
"params": {"command": "python3 --version"}
},
{
"type": "command_succeeds",
"description": "Node.js reports a version.",
"params": {"command": "node --version"}
},
{
"type": "service_running",
"description": "The Docker daemon is running.",
"params": {"service": "docker"}
},
{
"type": "user_in_group",
"description": "The dev account has the reviewed Docker authority.",
"params": {"username": "dev", "group": "docker"}
}
]
}
]
}Añade una aserción GUI por cada editor gráfico que instales realmente. Una comprobación de paquete no detecta un primer lanzamiento roto, diálogo de licencia, integración de pantalla faltante o escritorio por defecto incorrecto.
Por último, prueba el login con la ruta de inscripción aprobada o clave SSH; la receta no contiene contraseña a propósito.