Esiste un moderno equivalente di python-vm-builder?


11

Sto cercando di trovare il modo migliore e moderno di fare quello che ero solito fare con python-vm-builder (aka ubuntu-vm-builder).

Voglio un modo copiato e ripetibile per iniziare da qualcosa come ubuntu-core (aka l'artista precedentemente noto come JeOS ), aggiungere alcuni pacchetti, definire script di prima esecuzione, ecc.

Quello che sto cercando è qualcosa di simile alla rotazione di un ISO personalizzato (anche se non sarà un ISO, sarà un sistema "installato"). Il risultato deve essere un kernel, un'immagine initrd e rootfs adatto per l'avvio PXE senza disco con NFS.

Quali strumenti vengono utilizzati per creare l'immagine netboot di Ubuntu (o qualsiasi altra immagine di Ubuntu del caso)? Sono abbastanza flessibili per le mie esigenze?

Che ne dici degli strumenti usati per creare gli ambienti di nuova installazione usati per i test di integrazione di Ubuntu? Sarebbero appropriati?

Nota che in fase di esecuzione i rootfs verranno montati in sola lettura, quindi non cercherò di gestire un'istanza nel tempo. Sto cercando di ripetere un'installazione automatizzata ad ogni nuova versione di Ubuntu e periodicamente nei 6 mesi tra.


2
Non ho una risposta, poiché non sono sicuro dell'attuale metodo delle migliori pratiche, ma questo suona sospettosamente come un compito per Chef o Puppet, forse anche Vagrant.
Marco Ceppi

1
Perché vmbuilder non soddisfa più le tue esigenze? Usa debootstrapper creare il sistema di base (un "chroot" che può quindi essere copiato su un'immagine del disco). Dai un'occhiata e vedi se aiuta.
Salem,

vmbuilder funzionerebbe, penso, ma questo è per un sistema a lungo termine, quindi non voglio costruire su pezzi che sono già morti nell'acqua.
jderose,

Risposte:


7

È possibile utilizzare direttamente un'immagine cloud ufficiale, quindi creare una piccola immagine ISO utilizzando cloud-localds(dal cloud-utilspacchetto) per utilizzare come origine dati "nocloud" in cloud-init.

Quindi è possibile utilizzare i dati utente cloud-init (esempio) come un singolo meccanismo per aggiungere pacchetti ed eseguire i propri script di prima esecuzione su provider cloud che forniscono immagini di Ubuntu Cloud ufficiali e sulle VM locali.

Se si esegue cloud-localdssenza parametri, verrà visualizzato un esempio di utilizzo per configurare ed eseguire una macchina virtuale utilizzando direttamente kvm.

Per eseguire la VM in un altro modo, basta fornire un'immagine cloud (ad es. Scaricata da https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img per 12.04) come primo disco e presentare l'output dell'immagine ISO cloud-localdscome CD-ROM.

Maggiori informazioni sono nel post sul blog di Scott Moser .


1
Non sono sicuro di quanto applicabile sarebbe se si volesse finire con un sistema desktop.
Robie Basak,

Grazie! Sembra il tipo di cosa che sto cercando. E questo ambiente non è per un sistema desktop, a proposito. Sto costruendo qualcosa di simile all'ambiente effimero di MAAS. Deve essere più completo rispetto al solo core di Ubuntu, ma mi piacerebbe che fosse un po 'più piccolo di un'installazione minima del server Ubuntu.
jderose,

2

Non ho mai confezionato un ISO, quindi non posso commentare dalla mia esperienza, ma sembra che la risposta alla tua domanda sia Cobbler ( http://cobbler.github.com ).

Dalla documentazione della comunità Ubuntu:
"Ubuntu utilizza il calzolaio come server di provisioning preferito per le macchine Ubuntu." -  https://help.ubuntu.com/community/Cobbler


1
help.ubuntu.com/community/Cobbler non è aggiornato. Ho appena chiesto che fosse aggiornato. Mi dispiace, questo è mancato prima.
Robie Basak,

1
Grazie! Anche se probabilmente potrei fare quello che voglio con Cobbler, sembra eccessivo per quello a cui sto puntando. Non voglio un servizio di provisioning (e le complessità che ne derivano), solo uno strumento di provisioning molto semplice. Sto cercando qualcosa di livello superiore rispetto a debootstrap, ma ancora una riga di comando o strumento API monouso.
jderose,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.