W tym artykule pokażę, jak użyć formatu konfiguracji JSON do budowy plików zapasów Ansible. Więc zacznijmy.
Wymagania wstępne:
Jeśli chcesz wypróbować przykłady tego artykułu,
1) Musisz mieć zainstalowany na komputerze Ansible.
2) Musisz mieć co najmniej 6 hostów Linux skonfigurowanych do automatyzacji Ansible.
Istnieje wiele artykułów na temat Linuxhint poświęconych instalacji ansible i konfiguracji hostów do automatyzacji ansible. Możesz je sprawdzić w razie potrzeby.
Tworzenie katalogu projektu:
W tym artykule użyję kodu Visual Studio do edytowania pliku konfiguracyjnego Ansible, pliku inwentaryzacji i podręczników. Możesz użyć dowolnego edytora lub IDE, który chcesz.
Zanim zaczniesz, utwórzmy katalog projektu, abyśmy mogli zorganizować nasze pliki projektu.
Stworzyłem nowy katalog projektu JSON-INVENTORY/ w moim DOM katalog, jak widać na zrzucie ekranu poniżej.
Po utworzeniu nowego katalogu projektu otwórz go za pomocą ulubionego edytora tekstu lub IDE.
W kodzie Visual Studio idź do Plik > Otwórz folder… jak zaznaczono na zrzucie ekranu poniżej.
Teraz wybierz katalog projektu JSON-INVENTORY/ i kliknij OK.
Katalog projektu powinien zostać otwarty za pomocą kodu Visual Studio.
Teraz kliknij Nowy plik i utwórz nowy plik Ansible.CFG.
Następnie wpisz następujące wiersze w Ansible.CFG plik.
[domyślne]Po zakończeniu naciśnij + S Aby uratować Ansible.CFG plik.
W ten sam sposób, stwórz zastępy niebieskie.JSON plik. To jest plik zapasowy JSON. Zostaw to na razie puste. Pracujemy nad tym później.
Teraz kliknij Nowy folder i stwórz nowy katalog podręczniki jak pokazano na zrzucie ekranu poniżej.
W tej sekcji pokażę Ci, jak dodać hosty do pliku ekwipunku w formacie JSON.
w zastępy niebieskie.JSON plik zapasowy, dodajesz Wszystko Sekcja.
W Wszystko Sekcja, dodajesz gospodarz sekcja i dodaj hosty.
Na przykład możesz dodać hosty VM1.Nodekite.com I VM2.Nodekite.com w zastępy niebieskie.JSON Plik zapasowy w następujący sposób.
Po zakończeniu naciśnij + S Aby uratować zastępy niebieskie.JSON plik.
Możesz sprawdzić, które hosty są dostępne w pliku ekwipunku za pomocą następującego polecenia:
$ ansible-lista-hosts
Jak widać, hosty, które dodałem do mojego pliku ekwipunku (VM1.Nodekite.com I VM2.Nodekite.com) są wymienione.
Grupowanie hostów w pliku zapasów JSON:
W tej sekcji pokażę ci, jak grupować hosty w pliku zapasów JSON.
Domyślna grupa hosta w Ansible jest Wszystko. Wszystko Grupa ma wszystkich gospodarzy z każdej grupy (w tym gospodarzy z Wszystko Grupa).
Dodajesz grupy hosta w dzieci sekcja pliku zapasów JSON.
Na przykład, aby dodać hosty VM3.Nodekite.com I VM4.Nodekite.com w sieć grupa i dodać hosty VM5.Nodekite.com I VM6.Nodekite.com w db Grupa, wpisz następujące wiersze w pliku inwentaryzacji JSON.
Po zakończeniu naciśnij + S Aby uratować zastępy niebieskie.JSON plik.
Tutaj zaznaczone linie dodają hosty VM3.Nodekite.com I VM4.Nodekite.com w sieć Grupa.
Oznaczone linie dodają hosty VM5.Nodekite.com I VM6.Nodekite.com w db Grupa.
Teraz możesz wymienić wszystkie dostępne hosty w swoim pliku inwentaryzacji JSON za pomocą następującego polecenia:
$ ansible-lista-hosts
Jak widać, wszyscy gospodarze z każdej grupy (sieć, db, I Wszystko) są wyświetlane.
Aby wymienić dostępne hosty z sieć Tylko grupa, uruchom następujące polecenie:
$ ansible-Web-hosts-hosts
Jak widać, wszyscy gospodarze w sieć Grupa jest wyświetlana.
W ten sam sposób możesz wymienić wszystkie dostępne hosty z db grupa z następującym poleceniem:
$ ansible--list-hosts db
Jak widać, wszyscy gospodarze w db Grupa jest wyświetlana.
W Ansible zmienne są również nazywane faktami. Globalne fakty lub zmienne globalne są dostępne z każdej gospodarza każdej grupy w pliku zapasów JSON. W tej sekcji pokażę, jak dodać globalne fakty lub zmienne globalne w Ansible.
Możesz dodać globalne fakty lub zmienne globalne w vars sekcja wewnątrz Wszystko Sekcja pliku zapasów JSON w następujący sposób:
Na przykład możesz dodać globalne fakty/zmienne Webroot I indeks w vars Sekcja pliku zapasów JSON w następujący sposób:
Po zakończeniu naciśnij + S Aby zapisać plik zapasowy JSON.
Aby sprawdzić, czy globalne fakty/zmienne działają, zamierzam stworzyć nowy podręcznik print_vars1.Yaml. Celem tego podręcznika jest wydrukowanie faktów/zmiennych za pomocą odpluskwić Moduł Ansible. Pomoże nam również zrozumieć pierwszeństwo faktów/zmiennych później.
Więc stwórz nowy podręcznik print_vars1.Yaml w Twoim podręczniki/ katalog i wpisz w następujących wierszach w twoim print_vars1.Yaml plik.
- Gospodarze: WszyscyPo zakończeniu naciśnij + S Aby uratować print_vars1.Yaml plik.
Aby sprawdzić, czy globalne fakty/zmienne działają, uruchom print_vars1.Yaml Playbook w następujący sposób:
$ Ansible-Playbook Playbooks/print_vars1.YamlPodręcznik powinien działać pomyślnie.
Przewiń z powrotem do ZADANIE Sekcja. Jak widać, Webroot I indeks Fakty/zmienne są stosowane do każdego hosta w moim pliku zapasów JSON. Tak więc globalne fakty/zmienne działają.
Możesz dodać fakty/zmienne również dla określonej grupy hosta. W tej sekcji pokażę Ci, jak dodać fakty/zmienne grupowe w pliku inwentaryzacji JSON.
Dodam to samo Webroot I indeks fakty w sieć Grupa hosta mojego pliku zapasów JSON. Wartość tych faktów będzie inna. Zrobiłem to, abyś mógł również zrozumieć, jak działają fakty/precedencja zmienna w Ansible.
Aby dodać fakty Webroot I indeks w sieć grupa hosta, dodaj vars sekcja w sieć Sekcja pliku zapasów JSON w następujący sposób:
Po zakończeniu naciśnij + S Aby zapisać plik zapasowy JSON.
Aby sprawdzić fakty, uruchom print_vars1.Yaml Playbook w następujący sposób:
$ Ansible-Playbook Playbooks/print_vars1.YamlJak widać, fakty grupowe Webroot I indeks są dostępne tylko dla hostów VM3.Nodekite.com I VM4.Nodekite.com, gospodarze w sieć Grupa.
Zauważ też, że fakty grupowe (Webroot I indeks) zastąpił globalne fakty (Webroot I indeks). Można więc powiedzieć, że fakty grupowe mają wyższe pierwszeństwo niż fakty globalne.
Dodawanie faktów hosta w pliku zapasów JSON:
Możesz dodać fakty/zmienne specyficzne dla hosta w pliku zapasów JSON. W tej sekcji pokażę, jak dodać fakty/zmienne specyficzne dla hosta.
W przypadku faktów globalnych lub grupowych zachowaliśmy wartość gospodarzy zero.
Aby dodać fakty hosta, wymień zero z faktami hosta w pliku inwentarza JSON w następujący sposób:
„Gospodarze”:Na przykład, aby dodać indeks fakt hosta do VM5.Nodekite.com host, wymień zero z faktami gospodarza w następujący sposób.
Po zakończeniu naciśnij + S Aby zapisać plik zapasowy JSON.
Aby sprawdzić dostępne fakty, uruchom print_vars1.Yaml Playbook w następujący sposób:
$ Ansible-Playbook Playbooks/print_vars1.YamlJak widać, indeks fakt jest dostępny tylko dla VM5.Nodekite.com gospodarz.
Zauważ również, że fakt hosta zastąpił globalny fakt. Fakty/zmienne gospodarza mają najwyższe pierwszeństwo w Ansible. Tak więc fakty/zmienne hosta zastąpi fakty/zmienne grupowe i fakty/zmienne globalne.
Wniosek:
W tym artykule pokazałem, jak zbudować plik zapasowy Ansible w formacie JSON. Pokazałem ci, jak dodawać hosty, dodawać grupy hosta, dodawać fakty globalne, dodawać fakty grupowe i dodawać fakty hosta w pliku ekwipunku w formacie JSON.