No description
  • Python 61.4%
  • JavaScript 21.1%
  • HTML 10.6%
  • CSS 6.7%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-07 18:35:46 +01:00
docs Los repositorios con keyid piden la clave por hkps (el HKP por defecto está cerrado en las aulas) y los textos de la caché de paquetes ya no la dan por obligatoria 2026-11-07 18:31:23 +01:00
openinit Versión 1.0.0: metadatos del paquete, CHANGELOG y la guía avisa de que la plantilla de repositorios es solo para Debian 13 2026-11-07 18:35:46 +01:00
tests Los repositorios con keyid piden la clave por hkps (el HKP por defecto está cerrado en las aulas) y los textos de la caché de paquetes ya no la dan por obligatoria 2026-11-07 18:31:23 +01:00
.dockerignore Añadido despliegue con Docker y Docker Compose, con su documentación 2026-11-05 21:27:00 +01:00
.gitignore «Nuevo» ya no trae idioma ni teclado (hacían fallar cloud-init en las imágenes cloud de Debian) y la guía añade openssh-server en Incus 2026-11-07 16:53:44 +01:00
CHANGELOG.md Versión 1.0.0: metadatos del paquete, CHANGELOG y la guía avisa de que la plantilla de repositorios es solo para Debian 13 2026-11-07 18:35:46 +01:00
docker-compose.yml Añadido despliegue con Docker y Docker Compose, con su documentación 2026-11-05 21:27:00 +01:00
Dockerfile Añadido despliegue con Docker y Docker Compose, con su documentación 2026-11-05 21:27:00 +01:00
LICENSE Version 0.1 2026-11-05 19:29:06 +01:00
pyproject.toml Versión 1.0.0: metadatos del paquete, CHANGELOG y la guía avisa de que la plantilla de repositorios es solo para Debian 13 2026-11-07 18:35:46 +01:00
README.md Banner de openINIT y documentación al día: pestañas Red y Discos, la guía, avisos de red y discos y el perfil de Incus 2026-11-07 16:41:35 +01:00

openINIT: Generador de cloud-config para cloud-init

openINIT genera ficheros cloud-config (el user-data de cloud-init) desde un formulario web, y los valida contra el esquema oficial de cloud-init con avisos pensados para aprender. Está pensado para clase: OpenStack (Horizon y línea de órdenes), Incus y libvirt.

openinit web            # abre el navegador en http://127.0.0.1:8000
  • A la izquierda, un formulario con una pestaña por bloque de cloud-init: Sistema, Usuarios y SSH, Paquetes, Ficheros, Órdenes (con lo que pasa al terminar) y, en Avanzado, Red (el network-config de Incus y libvirt), Discos (formatear y montar volúmenes) y Otras claves (cualquier otra clave, en YAML).
  • Nivel Básico (lo imprescindible) o Avanzado (todas las opciones). Solo cambia lo que se ve, nunca el YAML.
  • A la derecha, el YAML generado en vivo, con sus errores y avisos. Cada aviso enlaza con la documentación de cloud-init y lleva al campo donde se corrige.
  • Para: OpenStack, Incus, libvirt o cualquier nube. Ajusta los avisos y la ayuda.
  • Tutorial: un panel bajo el YAML que explica cada campo y pestaña mientras trabajas, con los conceptos de cloud-init y cómo comprobar que ha funcionado. Cada campo tiene su ?. Su portada ofrece la guía de tu primera máquina (de la clave SSH a una web con nginx y tu index.html, paso a paso y con las órdenes de cada plataforma) y Cómo usarlo.
  • Nuevo, Ejemplos… (máquina de clase, servidor web, Docker, página con el nombre de la instancia…), Abrir (un user-data de tu equipo), Guardar y Copiar.
  • Ayudas: Cifrar contraseñas (SHA-512), plantillas de ficheros, Cargar desde mi equipo, Comprimir, repositorio de Docker en un clic, variables de la instancia (Jinja) y el proxy de APT del aula.

Al abrir un user-data, lo que el formulario no sabe representar no se pierde: se queda, tal cual, en Otras claves.

Instalación

pipx install git+https://git.josedomingo.org/josedom24/openinit.git

Docker

docker compose up -d --build

Queda en http://IP-DEL-PROFESOR:8000. No guarda nada en el servidor ni necesita volúmenes. El compose trae puesto el proxy de APT del aula; para dejarlo vacío, OPENINIT_APT_PROXY= docker compose up -d. Detrás de un proxy inverso, añade --proxy IP al command del servicio.

La imagen corre con un usuario sin privilegios y trae un HEALTHCHECK (docker compose ps muestra healthy). Sin Compose:

docker build -t openinit .
docker run -d --name openinit -p 8000:8000 openinit

Órdenes

Orden Qué hace
openinit web Arranca la web en 127.0.0.1:8000 y abre el navegador (--port, --no-browser).
openinit web --host 0.0.0.0 La publica en la red, por ejemplo para la clase. Detrás de un proxy inverso, --proxy IP.
openinit web --apt-proxy URL «Nuevo» trae puesto el proxy de APT del aula (también OPENINIT_APT_PROXY).
openinit check FICHERO… Valida uno o varios user-data (- lee de la entrada estándar; --destino openstack, incus o libvirt). Sale con 1 si hay errores.

La web no guarda nada en el servidor: el formulario vive en el navegador de cada uno (y sobrevive a una recarga), así que se puede publicar para toda una clase sin más.

Documentación

En docs/: primeros pasos, el formulario, errores y avisos, cómo usarlo en OpenStack, Incus y libvirt, y en clase (Docker y proxy de APT).

Licencia

GPL-3.0-or-later.