2008-10-06 19 views
10

Obecnie pracuję nad produktem po stronie serwera, który jest nieco skomplikowany do wdrożenia na nowym serwerze, co czyni go idealnym kandydatem do testowania w maszynie wirtualnej. Już używamy Hudsona jako naszego systemu CI i bardzo chciałbym móc wdrożyć obraz maszyny wirtualnej z najnowszym i najlepszym oprogramowaniem jako artefaktem kompilacji.Tworzenie obrazu maszyny wirtualnej jako ciągłego artefaktu integracji?

Więc, jak to zrobić dokładnie? Jakie oprogramowanie VM jest zalecane w tym celu? Ile skryptów trzeba wykonać, aby to osiągnąć? Czy są jakieś problemy, szczególnie gdy używasz systemu Windows 2003 Server jako systemu operacyjnego?

+0

myślę "Packer" Warto wspomnieć tutaj. "Packer to narzędzie open source do tworzenia identycznych obrazów maszyn dla wielu platform z konfiguracji z jednym źródłem." https://www.thoughtworks.com/radar/techniques/machine-image-as-a-build-artifact https://www.packer.io/intro/index.html –

Odpowiedz

7

Niestety odmówić nikomu akceptowaną odpowiedź tutaj, ale na podstawie dalszych badań (dzięki waszej odpowiedzi!), Znalazłem lepsze rozwiązanie i chcieli podsumować to, co znalazłem.

Po pierwsze, zarówno VirtualBox, jak i VMWare Server są świetnymi produktami, a ponieważ oba są bezpłatne, każdy jest wart oceniania. Zdecydowaliśmy się przejść na VMWare Server, ponieważ jest to bardziej stabilny produkt i możemy uzyskać wsparcie w razie potrzeby. Jest to szczególnie ważne, ponieważ rozważamy również dystrybucję naszego oprogramowania do klientów jako maszyny wirtualnej zamiast specjalnej instalacji serwera, zakładając, że obciążenie z VMWare Playera nie jest zbyt wysokie. Istnieje również usługa VIX o nazwie VIX, której można użyć do bezpośredniego instalowania plików na maszynie wirtualnej bez instalowania SSH lub SFTP, co jest dużą zaletą.

Nasze rozwiązanie jest zasadniczo następujące ... najpierw tworzymy "waniliowy" obraz VM z systemem operacyjnym, nic więcej i sprawdzamy go w repozytorium. Następnie piszemy skrypt, który działa jako nasz instalator, umieszczając artefakty stworzone przez Hudsona na VM. Ten skrypt powinien mieć interfejsy do kopiowania plików bezpośrednio, przez SFTP i przez VIX. Umożliwi nam to dalszą dystrybucję oprogramowania bezpośrednio na maszynie docelowej lub przez wybraną przez nas maszynę wirtualną. Powstały obraz jest następnie kompresowany i rozpowszechniany jako artefakt serwera CI.

+0

Serwer VMWare osiągnął koniec okresu eksploatacji 2011. VMware Player to nowa darmowa oferta, zastępująca VMWare Server. –

0

Polecam VirtualBox. Jest bezpłatny i ma dobrze zdefiniowany interfejs programowania, chociaż nie korzystałem z niego osobiście w automatycznych sytuacjach kompilacji.

1

Niezależnie od oprogramowania VM (mogę polecić VirtualBox, zbyt) Myślę, że szukasz w następujący scenariusz:

  1. Budowa odbywa
  2. CI uruchamia wirtualną maszynę (lub jest ona zawsze działa)
  3. CI wykorzystuje sCP/SFTP przesłać do budowania VM w sieci
  4. CI używa ssh (jeśli są dostępne na docelowej OS uruchomiony w VM) lub innej placówki zdalne wykonywanie poleceń do uruchomienia instalacji w środowisku VM
1

Serwer VMWare jest darmowy i bardzo stabilny. Daje także możliwość tworzenia migawek plasterka maszyny wirtualnej i przywracania do poprzedniej wersji maszyny wirtualnej w razie potrzeby. Będzie działał dobrze na Win 2003.

Pod względem dostarczania nowych wycinków VM dla twoich kompilacji, możesz po prostu skopiować i minąć folder zawierający pliki VMWare, zmienić SID i IP nowej VM i masz nowa maszyna. Trwa 15 minut w zależności od wielkości wycinka maszyny wirtualnej. Nie wymaga skryptów.

1

Jeśli korzystasz z VirtualBox, będziesz chciał sprawdzić, jak bez niego korzystać, ponieważ będzie on na twoim serwerze. Zwykle VirtualBox działa jako aplikacja komputerowa, ale można uruchamiać maszyny wirtualne z poziomu wiersza poleceń i uzyskiwać dostęp do maszyny wirtualnej przez RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp 
0

Wybór VMWare obecnie NIE jest złym wyborem.

Jednak, Podobnie jak VMWare zapewnia obsługę serwera VMWare, SUN zapewnia obsługę VirtualBOX.

+0

Widziałem, że VirtualBox był sponsorowany przez Sun, ale kiedy wchodzisz na stronę, najbliższą rzeczą, którą widzi się na stronie wsparcia, jest forum społeczności. Nie sądzę, że jest to dokładnie to samo co VMWare, który jest oczywiście bardziej dedykowany temu konkretnemu produktowi. –

0

Możesz również wykonać to zadanie za pomocą VMWare Studio, które również jest bezpłatne. Podstawowy tok pracy to: 1. Utwórz plik XML opisujący maszynę wirtualną 2. Użyj studio, aby utworzyć powłokę. 3. Użyj serwera VMWare do przydzielenia maszyny wirtualnej.

1

W tym scenariuszu używamy Jenkins + Vagrant + Chef.

Więc można zrobić następujący proces:

  • kontroli wersji środowisko VM korzystania Vagrant skrypty udostępniania (Chef lub lalkowych)

  • Zbuduj swój system za pomocą Jenkins/Hudson

  • Uruchom skrypt Vagrant, aby pobrać ostatnią stabilną wersję z wyjścia CI

  • Sav e VM stan do ponownego użycia w przyszłości.

referencyjny:

vagrantup.com

Powiązane problemy