Czy istnieje nowoczesny odpowiednik Pythona-VM?

11

Próbuję znaleźć najlepszą, nowoczesną metodę robienia tego, co kiedyś robiłem z budowniczym python-vm (aka ubuntu-vm-builder).

Chcę skryptowanego, powtarzalnego sposobu, aby zacząć od czegoś takiego jak ubuntu-core (znany też jako artysta znany wcześniej jako JeOS ), dodać kilka pakietów, zdefiniować skrypty pierwszego uruchomienia itp.

To, czego szukam, jest czymś podobnym do obracania niestandardowego ISO (chociaż nie będzie to ISO, będzie to „zainstalowany” system). Rezultatem musi być jądro, obraz initrd i rootfs, które są odpowiednie dla bezdyskowego rozruchu PXE z NFS.

Jakie narzędzia są używane do tworzenia powiedzmy obraz netboot Ubuntu (lub dowolne obrazy Ubuntu w tym zakresie)? Czy są wystarczająco elastyczne dla moich potrzeb?

A co z narzędziami używanymi do tworzenia środowisk świeżo instalowanych używanych do testowania integracji Ubuntu? Czy byłyby odpowiednie?

Zauważ, że w czasie wykonywania rootki zostaną zamontowane tylko do odczytu, więc nie zamierzam zarządzać instancją w czasie. Chcę ponownie uruchomić automatyczną instalację przy każdej nowej wersji Ubuntu i okresowo w ciągu 6 miesięcy między nimi.

jderose
źródło
2
Nie mam odpowiedzi, ponieważ nie jestem pewien obecnego sposobu najlepszych praktyk, ale podejrzanie brzmi to jak zadanie dla szefa kuchni lub Marionetki, a może nawet włóczęgi.
Marco Ceppi
1
Dlaczego vmbuilder nie odpowiada już Twoim potrzebom? Służy debootstrapdo tworzenia systemu podstawowego („chroot”, który można następnie skopiować na obraz dysku). Zobacz, czy to pomoże.
Salem,
Myślę, że vmbuilder działałby, ale jest to system długoterminowy, więc nie chcę budować na bitach, które już są martwe w wodzie.
jderose

Odpowiedzi:

7

Możesz użyć oficjalnego obrazu w chmurze bezpośrednio, a następnie utworzyć mały obraz ISO, używając cloud-localds(z cloud-utilspakietu), aby użyć go jako źródła danych „nocloud” do inicjowania chmury.

Następnie można użyć danych użytkownika inicjujących chmurę (przykład) jako pojedynczego mechanizmu do dodawania pakietów i uruchamiania własnych skryptów pierwszego uruchomienia między dostawcami chmury, którzy udostępniają oficjalne obrazy chmury Ubuntu, a także na lokalnych maszynach wirtualnych.

Jeśli uruchomisz cloud-localdsbez parametrów, wyświetli przykładowe użycie do skonfigurowania i uruchomienia maszyny wirtualnej bezpośrednio za pomocą kvm.

Aby uruchomić maszynę wirtualną w inny sposób, wystarczy podać obraz w chmurze (np. Pobrany z https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img dla 12.04) jako pierwszy dysk i zaprezentuj wyjście obrazu ISO z cloud-localdsdysku CD-ROM.

Więcej informacji znajduje się na blogu Scotta Mosera .

Robie Basak
źródło
1
Nie jestem jednak pewien, jak by to miało zastosowanie, jeśli chcesz mieć system stacjonarny.
Robie Basak,
Dzięki! To wygląda na coś, czego szukam. A to środowisko nie jest przeznaczone dla systemu stacjonarnego, BTW. Buduję coś podobnego do efemerycznego środowiska MAAS. Musi być bardziej wszechstronny niż sam rdzeń Ubuntu, ale chciałbym, aby był nieco mniejszy niż minimalna instalacja serwera Ubuntu.
jderose
2

Nigdy nie pakowałem ISO, więc nie mogę komentować z własnego doświadczenia, ale wygląda na to, że odpowiedź na twoje pytanie brzmi Cobbler ( http://cobbler.github.com ).

Z dokumentacji społeczności Ubuntu:
„Ubuntu używa cobblera jako preferowanego serwera udostępniania dla komputerów Ubuntu”. -  https://help.ubuntu.com/community/Cobbler

Buddy Gorven
źródło
1
help.ubuntu.com/community/Cobbler jest nieaktualny. Właśnie poprosiłem o aktualizację. Przepraszam, tego wcześniej nie było.
Robie Basak,
1
Dzięki! Chociaż prawdopodobnie mógłbym zrobić to, co chcę z Cobblerem, wydaje się to zbyt przesadne w stosunku do tego, do czego dążę. Nie chcę usługi udostępniania (i związanych z tym zawiłości), tylko bardzo proste narzędzie do udostępniania. Szukam czegoś wyższego poziomu niż debootstrap, ale nadal jest to wiersz poleceń lub narzędzie API do jednorazowego użytku.
jderose