Jak używać zapasów statycznych i dynamicznych w Ansible - część 4

Jak używać zapasów statycznych i dynamicznych w Ansible - część 4

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 hosts 
STATYCZNY 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 -hosts 
Lista hostów ansible

Alternatywnie możesz użyć postaci wieloznacznej * zamienić 'Wszystko' argument.

$ ansible * -i/root/test_labs/hosts - -list -hosts 
Wypisz 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 -hosts 
Lista 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.