If-Koubou

Jak przywrócić VM Citrix-Xen za darmo za pomocą Xen-Phoenix (Bash)

Jak przywrócić VM Citrix-Xen za darmo za pomocą Xen-Phoenix (Bash) (Jak)

Czy kiedykolwiek potrzebowałeś masowego przywracania maszyn wirtualnych Citrix-Xen do rozwiązania odzyskiwania po awarii (DR) lub po prostu do sprawdzenia, czy kopie zapasowe działają? HTG wyjaśnia, jak używać Xen-Phoenix, darmowego skryptu bash, do przywracania VM.

Źródło: Ryan McCurdy przez Compfight cc

Jak wspominaliśmy w artykule "Jak tworzyć kopie zapasowe Citrix Xen VM za darmo za pomocą Xen-Pocalypse", jedną z fajnych rzeczy w Citrix Xen jest to, że wiele jego funkcjiwolny opłaty. W związku z tym, jeśli chcesz skorzystać z funkcji "Automatyczna ochrona i odzyskiwanie maszyn wirtualnych", musisz zacząć płacić za licencję "Advance". Ponownie, nie jest tak, że my w HTG odrzucamy wartość prawdziwego rozwiązania do tworzenia kopii zapasowych, ale jeśli masz napięty budżet, już dostałeś obrazy VM z hiperwizora i potrzebujesz sposobu na zautomatyzowanie swojego " procedury "przywracania DR", możesz znaleźć Xen-Phoenix jako całkowicie rozsądne rozwiązanie zanim podejmiesz zobowiązanie budżetowe.

Przegląd

"Przypadek użycia": masz kilka maszyn wirtualnych, które wymagają przywrócenia. Importowanie w "Centrum Xen" za pomocą kliknięć prawym przyciskiem działa dobrze, ale chcesz, aby proces ten przebiegał automatycznie i zgodnie z harmonogramem. Ten skrypt Bash wykorzystuje polecenie "XE" do wykonywania swoich obowiązków. XE to interfejs linii poleceń Xen (CLI), automatyczny odpowiednik dla wydawania "kliknięć prawym przyciskiem" w "Centrum Xen". Będziemy wywoływać skrypt z Cron, który dostarczy część "planowania". W najprostszej postaci przepływ przywracania to:

  • Kasować wszystkie * poprzednio istniejące maszyny wirtualne na serwerze
  • Importuj maszyny wirtualne z plików w lokalizacji kopii zapasowej.
  • Sprawdź, czy wszystkie maszyny wirtualne działają, uruchamiając je jeden po drugim i szukając pulsu narzędzi gościa.
  • Wyłącz mechanizmy wirtualne, gdy zostanie wykryte bicie serca lub osiągnięty zostanie limit czasu.

* Usunięcie wszystkich zachowań maszyn wirtualnych można całkowicie wyłączyć i obsługuje wyjątki (patrz poniżej).

Do roboty :)

Zdobądź skrypt

Xen-phoenix można swobodnie uzyskiwać z github, używając zwykłych metod git. Mówiąc to, jeśli nie jesteś jeszcze zaznajomiony z git, możesz pobrać plik zip za pomocą tego linku. Ponieważ skrypt musi działać na jednym z twoich serwerów Xen, powinieneś go tam wydobyć, aby zachować uprawnienia do wykonywania.

wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
rozpakuj master

Chociaż powyższe zadziała, zaleca się użycie metody GIT, aby móc korzystać z przyszłych aktualizacji.

Lokalizacja eksportu

Musimy określić, skąd wziąć eksportowanie maszyn wirtualnych.

Choć losowo wywiercenie w Citrix Xen, znalazłem, że przechowywanie Repozytoria (SRS) są dostępne do użytku pod „/ var / run / sr-mount /% UUID%” gdzie UUID jest unikalny identyfikator SR, które mogą być uzyskane z GUI.

Oznacza to, że możemy użyć zwykłego kreatora "Next -> Next -> Finish", aby utworzyć "mount" do żądanej lokalizacji kopii zapasowej, a następnie poprosić skrypt o użycie tej ścieżki (w taki sposób, aby aplikacja działała w trybie montowania z wiersza poleceń, który jest poza zakresem niniejszego przewodnika).

Aby utworzyć nowy "mount", kliknij prawym przyciskiem myszy nazwę serwera i wybierz Nowy SR.

W tym przykładzie wskażemy Xen na udział Windows, więc wybierz "Udostępnianie plików Windows (CIFS)":

Wypełnij Next -> Next -> Finish.

Uzyskaj identyfikator UUID SR

Aby uzyskać identyfikator UUID SR, po prostu kliknij jego nazwę w Centrum Xen i przejdź do zakładki "Ogólne".

Aby skopiować identyfikator UUID, kliknij go prawym przyciskiem myszy i wybierz "Kopiuj".

Dzięki tym informacjom jesteś gotowy do edycji pliku ustawień.

Skonfiguruj plik ustawień

Projekt Xen-phoenix jest dostarczany w pakiecie z szablonem plików "ustawienia". Ten szablon powinien być edytowany w celu odzwierciedlenia konfiguracji i przekazany jako pierwszy argument skryptu.

Plik ustawień określa:

  • Lokalizacja eksportu źródeł - Jeśli postępowałeś zgodnie ze wskazówkami do tego punktu, musisz tylko zastąpić% UUID% SR, jak to zostało uzyskane z góry.
  • Lokalizacja SendEmail - Jeśli zdecydowałeś się włączyć Email, musisz podać gdzie wypakowałeś plik wykonywalny Perla tutaj.
  • Weryfikator - kontroluje procedurę weryfikacji po przywróceniu. Jest to domyślnie włączone, ponieważ pomyślne "przywrócenie poziomu pliku" nie musi oznaczać funkcjonalnej maszyny wirtualnej.
  • Server_prep - Kontroluje pre-restore usunięcie wszystkich maszyn wirtualnych na serwerze DR. Jest to domyślnie włączone, ponieważ zakłada się, że serwer DR jest w tym celu serwerem dedykowanym. Jeśli nie chcesz, aby maszyna wirtualna uruchomiona na tym serwerze nie była usuwana, skonfiguruj ją tak, aby była wykluczona. Jeśli to zachowanie nie jest odpowiednie dla twojej sytuacji, po prostu wyłącz je całkowicie.
  • Szczegóły e-maila -Ponownie, jeśli masz włączoną pocztę e-mail, musisz zdefiniować szczegóły, takie jak: Do, Od, Nazwa / IP itd. ".
  • Debugowanie - Domyślnie debugowanie jest wyłączone z wartością "0" (zero). Nie powinieneś tego włączać, ale jeśli to zrobisz, w segmencie rozwiązywania problemów pojawi się więcej informacji.

Wykonanie

Ten skrypt przyjmuje plik ustawień jako swój pierwszy argument i inne argumenty jako "Chevrons" do wyszukiwania (oddzielone spacjami). Chevrons, są "łańcuchami", które obsługują wyrażenia regularne, które reprezentują przynajmniej część pożądanej nazwy pliku eksportu VM.

Oznacza to, że w swojej najprostszej postaci będzie wyglądać inwokacja Xen-feniks:

./Xen-phoenix.sh settings.cfg DevTools

Gdzie w powyższym przypadku znajdujemy się w katalogu, w którym znajduje się skrypt i plik ustawień, a "Chevron", którego będzie szukać skrypt, to "DevTools". Spowoduje to, że wszystkie pliki w katalogu eksportu będą importowane z nazwą "DevTools".

Bardziej złożony przykład może wyglądać tak:

./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools

Gdzie w powyższym przykładzie zostaną zaimportowane pliki zawierające słowo "devtools" napisane literami "D" i "T" lub nie-kapitałowymi, a także "AD" i "BI" z lub bez wielkich liter.

Planowanie

Jak wspomniano powyżej, użyjemy Crona do zaplanowania wykonania. Zanim przejdziemy do konfiguracji, tak właśnie jestwysoce rekomendowane że skonfigurowałeś już zainstalowany pakiet SSMTP na swoim serwerze Xen. Chociaż jest to opcjonalny krok, spowoduje to zbieranie "backwash". Posiadanie takiego "zbieracza do płukania wstecznego" może ostrzegać o rzeczach, których skrypt nie jest w stanie wykonać.

Wejdź w tryb edycji crona, wydając:

crontab -e

Jeśli postępujesz zgodnie z powyższymi instrukcjami i chcesz dodać zaplanowaną kopię zapasową w niedzielę o 01:31 (1:31 rano), wpisz poniżej:

31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] ools

Powyższe jest prawidłowe, zakładając, że twój skrypt i plik ustawień znajdują się w katalogu "/ root / Xen-phoenix-master /".

Uzyskaj Send Send (opcjonalnie)

Pisaliśmy o programie perl SendEmail w przeszłości, więc nie ma potrzeby powtarzania tutaj. Wystarczy powiedzieć, że działa tak samo na Linuksie, jak w systemie Windows.

Podczas włączania poczty e-mail jest opcjonalne, jest wysoce zalecane, ponieważ wtedy skrypt będzie w stanie:

  • Poinformuj Cię, kiedy to się zaczęło i skończyło działać.
  • Ostrzegaj o wszelkich błędach, które był w stanie wykryć i obsłużyć.

Pobierz go na serwer Xen i wypakuj.

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz

Zwróć uwagę na lokalizację, w której został rozpakowany. Będziesz potrzebował go do pliku ustawień.

Definiowanie znacznika "Usuń wyjątek" (opcjonalnie)

Xen-Phoenix pobiera stronę ze swojego przodka (Xen-Pocalypse) i daje możliwość szczegółowego wykluczenia maszyny wirtualnej z usuwania całego systemu za pomocą kontrolki TAG. Aby to zrobić, musisz zdefiniować nowe "Pole niestandardowe".

Aby to zrobić, otwórz właściwości serwera lub nawet maszyny wirtualnej. W okienku nawigacji wybierz "Niestandardowe pola".

Jeśli po raz pierwszy zdefiniujesz "pole niestandardowe" (jak w powyższym przykładzie), nie będziesz mieć pola "Phoenix_keeper" do wprowadzania danych, więc musisz je utworzyć. Aby to zrobić, kliknij "Edytuj pola niestandardowe" w wyświetlonym oknie dialogowym, a następnie kliknij "Dodaj ..."

Utwórz pole typu "Tekst" o nazwie "Phoenix_keeper".

Uwaga: Nazwa niestandardowego pola została "zakodowana" w skrypcie, więc NIE MOŻESZ odbiegać od powyższej pisowni, chyba że zmienisz również odpowiedni kod.

Po utworzeniu pola powinieneś zobaczyć:

Zamknij okno. Powinieneś teraz wypełnić pole "Phoenix_keeper", jak na poniższym obrazku.

Teraz wystarczy, że wypełnisz to pole uwagą (każda uwaga to zrobi), co spowoduje, że Xen-phoenix pominie go podczas usuwania.

Rozwiązywanie problemów

Chociaż starałem się, aby skrypt był łatwy w użyciu i jak najbardziej odporny na błędy, "świat jest większym laboratorium". Poniższe informacje mogą pomóc Ci ustalić, jakie jest źródło Twoich problemów.

Wycięcie lasu

Całe "logowanie" jest gromadzone przez host Xen uruchamiający skrypt w mechanizmie syslog. Można to oczywiście zobaczyć za pomocą:

mniej + F / var / log / messages

Szukasz słowa kluczowego "Xen-Phoenix".

Uwaga: Citrix ma ustawioną politykę dwóch (2) dni przechowywania dla syslog swoich serwerów. Możesz mieć to na uwadze w przypadku postmortems.

Debugowanie

Jak zauważono w segmencie plików ustawień, istnieje dyrektywa umożliwiająca włączenie debugowania. Włączenie debugowania spowoduje, że skrypt wypisze pełne dane logowania do konsoli i odrzuci je od wysyłania wiadomości e-mail i faktycznego wykonywania importu, chyba że odpowiednie flagi zostaną również ustawione. Możliwe flagi są odnotowane w szablonie pliku ustawień i umożliwiają szczegółowe zdefiniowanie tego, co chcesz debugować.

Mam nadzieję, że nie potrzebowałeś debugowania i zbierasz owoce mojej pracy :)

Wystarczy pomyśleć o całej nędzy, nienawiści i kłamstwach, I wyobraź sobie zniszczenie wszystkiego, czym gardzisz. Powoli z popiołów powstanie feniks ...