Estoy tratando de encontrar la mejor práctica y la forma moderna de hacer lo que solía hacer con python-vm-builder (también conocido como ubuntu-vm-builder).
Quiero una forma guionizada y repetible para comenzar desde algo como ubuntu-core (también conocido como el artista anteriormente conocido como JeOS ), agregar algunos paquetes, definir scripts de primera ejecución, etc.
Lo que busco es algo parecido a girar un ISO personalizado (aunque no será un ISO, será un sistema "instalado"). El resultado debe ser un kernel, una imagen initrd y rootfs que sea adecuado para un arranque PXE sin disco con NFS.
¿Qué herramientas se utilizan para crear, por ejemplo, la imagen de arranque de red de Ubuntu (o cualquier imagen de Ubuntu para el caso)? ¿Son lo suficientemente flexibles para mis necesidades?
¿Qué hay de las herramientas utilizadas para crear los entornos de instalación nueva utilizados para las pruebas de integración de Ubuntu? ¿Serían apropiados?
Tenga en cuenta que en tiempo de ejecución los rootfs se montarán de solo lectura, por lo que no estoy buscando administrar una instancia con el tiempo. Estoy buscando volver a girar una instalación automatizada en cada nueva versión de Ubuntu, y periódicamente en los 6 meses intermedios.
debootstrap
para crear el sistema base (un "chroot" que luego se puede copiar en una imagen de disco). Eche un vistazo y vea si ayuda.Respuestas:
Puede usar una imagen oficial en la nube directamente, y luego crear una pequeña imagen ISO usando
cloud-localds
(delcloud-utils
paquete) para usarla como fuente de datos "nocloud" para cloud-init.Luego, puede usar datos de usuario de inicio en la nube (ejemplo) como un mecanismo único para agregar paquetes y ejecutar sus propios scripts de primera ejecución en los proveedores de la nube que proporcionan imágenes oficiales de Ubuntu Cloud, así como en sus máquinas virtuales locales.
Si ejecuta
cloud-localds
sin parámetros, mostrará el uso de ejemplo para configurar y ejecutar una VM utilizando kvm directamente.Para ejecutar la máquina virtual de otra manera, solo proporcione una imagen de nube (por ejemplo, descargada de https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img para 12.04) como primer disco, y presente la salida de imagen ISO
cloud-localds
como un CD-ROM.Más información está en la publicación del blog de Scott Moser .
fuente
Nunca he empaquetado un ISO, por lo que no puedo comentar desde mi propia experiencia, pero parece que la respuesta a su pregunta es Cobbler ( http://cobbler.github.com ).
De la documentación de la comunidad de Ubuntu:
"Ubuntu utiliza cobbler como el servidor de aprovisionamiento preferido para las máquinas Ubuntu". - https://help.ubuntu.com/community/Cobbler
fuente
Para cualquiera que busque una respuesta a este, Oz ( https://github.com/clalancette/oz ) parece realmente bueno.
fuente