Jak używać zapasów statycznych i dynamicznych w Ansible - część 4
- 2415
- 695
- Natan Cholewa
W tym Część 4 z serii Ansible wyjaśnimy, jak używać statycznych i dynamicznych zapasów do definiowania grup gospodarzy w Ansible.
W Ansible, zarządzane hosty lub serwery, które są kontrolowane przez Ansible Kontrola są zdefiniowane w Plik zapasowy hosta Jak wyjaśniono w. Plik zapasowy hosta to plik tekstowy, z którego składa się Nazwy hosta Lub Adresy IP zarządzanych hostów lub zdalnych serwerów.
Zarządzani gospodarze można albo wymienić jako indywidualne wpisy lub podzielone na nazwę grupy, jak później zobaczymy. W Ansible istnieją dwa rodzaje plików zapasów: Statyczny I Dynamiczny.
Rzućmy okiem na każdy z nich i zobaczmy, jak możemy sobie z nimi poradzić. Do tej pory zakładamy, że zainstalowałeś już ansible w węźle sterowania i skonfigurowałeś połączenie SSH bez hasła z zarządzanymi hostami.
Statyczny plik zapasowy hosta
W Ansible, Statyczny plik zapasowy to zwykły plik tekstowy, który zawiera listę zarządzanych hostów zadeklarowanych w grupie hosta za pomocą nazw hostów lub adresów IP.
Nazwa grupy hosta jest zamknięta w nawiasach kwadratowych I.mi [Nazwa grupy]
. Zarządzane wpisy hosta są później wymienione poniżej nazwy grupy, każde z własnej linii. Jak omówiono wcześniej, hosty są wymienione za pomocą nazw hostów lub adresów IP.
[Nazwa grupy] Host a host ip_address b host ip_adress host c ip_address
Do celów ilustracji utworzymy statyczny plik zapasowy.
# mkdir test_lab && cd test_lab # vim hostsSTATYCZNY Plik zapasowy
[Webservers] 173.82.115.165 [DATABASE_SERVERS] 173.82.220.239 [Datacenter: dzieci] WebServers Database_servers
Zapisz plik i wyjdź.
Jak widać w powyższym pliku ekwipunku, utworzyliśmy 2 grupy hosta: Webservers I Batabase_servers. Ponadto stworzyliśmy dodatkową grupę o nazwie Centrum danych Obejmuje to grupę grup hosta oznaczonych przez ': dzieci'
sufiks, jak widać powyżej.
Ansible umożliwia również umieszczenie grup hostów pod nazwą grupy. W powyższym pliku zapasów, Webservers I Batabase_servers grupy zostały umieszczone pod Centrum danych.
NOTATKA: Nie jest obowiązkowe umieszczanie zarządzanych gospodarzy w grupie hosta. Możesz po prostu wymienić je na przykład za pomocą nazwy hosta lub adresów IP.
173.82.202.239 172.82.115.165 Load_Balancer.pnl.com
Użyjmy teraz kilku poleceń Ansible do odwołania się do pliku inwentarza hosta. Podstawowa składnia do zarządzania zapasami jest jak pokazano.
$ ansible host-pattern -i/path/of/inventory/file--list-hosts
Na przykład,
$ ansible all -i/root/test_labs/hosts - -list -hostsLista hostów ansible
Alternatywnie możesz użyć postaci wieloznacznej *
zamienić 'Wszystko'
argument.
$ ansible * -i/root/test_labs/hosts - -list -hostsWypisz hosty ansible za pomocą dzikich kart
Aby wymienić hosty w grupie, określ grupę hosta w miejscu wzoru hosta.
$ ansible Webservers -i/root/test_labs/hosts - -hosts -hostsLista hostów ansible w grupie
Dynamiczny plik inwentaryzacji hosta
W konfiguracji - zwłaszcza konfiguracja chmury, taka jak AWS Tam, gdzie plik zapasowy ciągle się zmienia wraz z dodaniem lub serwerami wycofania, prowadzenie zakładek na hostach zdefiniowanych w pliku ekwipunku staje się prawdziwym wyzwaniem. Staje się niewygodne powrót do pliku hosta i aktualizowanie listy hostów o ich adresy IP.
I tutaj Dynamiczny zapas przychodzi do gry. Więc co to jest dynamiczny zapas? Dynamiczny ekwipunek to scenariusz napisany w Pythonie, PHP lub dowolnym innym języku programowania. Przydaje się w środowiskach chmurowych, takich jak AWS, w których adresy IP zmieniają.
Ansible już opracował skrypty zapasów dla platform chmurowych publicznych, takich jak Google Compute Engine, Amazon EC2, OpenStack, Rackspace, Cobbler,.
Jakie są zalety dynamicznego zapasów w stosunku do zapasów statycznych?
- Dynamiczne zapasy wykonują idealną robotę, zmniejszając błąd ludzki, ponieważ informacje są gromadzone za pomocą skryptów.
- Minimalny wysiłek jest wymagany w zarządzaniu zapasami.
Możesz napisać własne dostosowanie dynamicznych zapasów w wybranym przez siebie języku programowania. Zapasy powinny zwrócić format w JSON w razie odpowiednich opcji.
Użyj istniejącego dynamicznego skryptu zapasów
Skrypt używany do tworzenia dynamicznego zapasu musi być wykonywalny, aby Ansible mógł z niego skorzystać.
Aby uzyskać informacje o hostach w dynamicznym skrypcie ekwipunku, po prostu uruchom.
# ./Skrypt - -list
Jak wskazano wcześniej, wyjście powinno znajdować się w JSON w poniższym formacie.
Słownik składający się z grup (i.e Webservers, baza danych_servers)
- Lista zarządzanych hostów na grupę
- Słownik zmiennych
Meta słownik
- Gospodarze i gospodarze
Przykładowy wyjście
„WebServers”: „hosts”: [„WebServer1.przykład.com "," WebServer2.przykład.com "]," vars ": ," batabase_servers ": " hosts ": [" mysql_db1 "," mysql_db2 "]," vars ": ," _meta ": " hostVars ": " mysql_db2 ": ," WebServer2.przykład.com ": ," WebServer1.przykład.com ": ," mysql_db1 ":
Wniosek
W tym artykule wykazaliśmy, jak tworzyć zarówno zapasy statyczne, jak i dynamiczne. Podsumowując, statyczny plik zapasowy to zwykły plik tekstowy zawierający listę zarządzanych hostów lub zdalnych węzłów, których liczby i adresy IP pozostają dość stałe.
Z drugiej strony, dynamiczny plik hosta ciągle się zmienia, dodając nowe hosty lub z eksploatacji starych. Adresy IP hostów są również dynamiczne, gdy zatrzymujesz i uruchamiasz nowe systemy hosta. Mamy nadzieję, że znalazłeś ten samouczek pouczający.