Zaawansowana inwentaryzacja listy hostów Ansible

Zaawansowana Inwentaryzacja Listy Hostow Ansible



Korzystając z jednej z najnowszych technik zarządzania, „Ansible”, przedstawiamy, w jaki sposób wyświetlamy każdy monitorowany host na urządzeniu. W Ansible używamy wtyczki „inventory”, aby wyświetlić listę wszystkich hostów w sieci.

Posiadanie listy wszystkich hostów w Ansible ma kluczowe znaczenie. Utrzymanie porządku w pliku inwentarza jest tak samo ważne, jak utrzymywanie podręczników lub zadań, ponieważ stale będziesz znajdować się w stanie niepewności i zadawać sobie kilka pytań, jeśli plik inwentarza jest źle zarządzany. Oprócz powyższego, definicja wymaganych zmiennych w pliku inwentaryzacyjnym minimalizuje zawartość zadania w podręcznikach i przyspiesza interpretację. Istnieje grupa zmiennych, które można zadeklarować zarówno w podręcznikach, jak i plikach zasobów Ansible, które są odpowiedzialne za łączenie i konfigurowanie zachowania łączności z maszyną hosta.







Wymagania wstępne:

Poniżej przedstawiono wymagania przed wdrożeniem polecenia inwentaryzacji listy hostów w Ansible:



  • Aby rozpocząć wdrożenie, potrzebujemy najpierw oprogramowania służącego do konfiguracji Ansible, które jest zainstalowane na urządzeniu serwerowym z najnowszą wersją. Ansible musi być skonfigurowany tak, abyśmy mogli łatwo wyświetlić listę wszystkich hostów w naszej sieci.
  • Aby wykonać dowolne zadanie konfiguracyjne w Ansible, potrzebujemy głównego menedżera konfiguracji. W tym samouczku używamy serwera kontrolera jako głównego kontrolera.
  • Aby zaimplementować jakiekolwiek zmiany, musimy wskazać serwery hosta w samouczku inwentaryzacji listy hostów. Tutaj mamy dwa docelowe zdalne hosty.

Przykład: Inwentaryzacja listy hostów w maszynie

Oto przykład, który wdrażamy w narzędziu Ansible do sprawdzania lub definiowania spisu listy hostów. W tym celu wykonamy ten przykład w różnych krokach, abyśmy mogli łatwo zrozumieć działanie i wdrożenie tego samouczka. Oto kroki:



Krok 1: Sprawdź domyślną listę hostów w docelowym zdalnym urządzeniu hosta





Najpierw sprawdzamy, ile hostów znajduje się w inwentarzu narzędzia Ansible. W tym celu używamy instrukcji „ansible” z „—list-hosts”, dzięki czemu możemy wyświetlić domyślnie obsługiwane węzły w inwentarzu.

[ źródło @ mistrz ansibla ] # ansible all --list-hosts



Oto wynik po napisaniu poprzedniego polecenia:

Terminal Ansible wyświetla „0 hostów”, jak widać w podanej odpowiedzi, ponieważ nie zadeklarowaliśmy inwentaryzacji. Generujemy inwentarz, aby wyświetlić inwentarz hosta w terminalu, zanim zajmiemy się tym.

Domyślny ekwipunek:

Kiedy instalujemy Ansible w oprogramowaniu, Ansible buduje plik inwentaryzacji, który można znaleźć, pisząc w terminalu następującą instrukcję:

[ źródło @ mistrz ansibla ] # sudo nano /etc/ansible/hosts

Wynik jest generowany, gdy piszemy poprzednią instrukcję. Następnie prosi o podanie hasła:

W tej migawce domyślny plik hostów Ansible zawiera informacje dotyczące niezgrupowanych hostów i hostów grupy serwerów WWW. Te hosty obejmują adresy URL i różne adresy IP.

Krok 2: Zdefiniuj Custom Inventory w Ansible

W Ansible możemy również zdefiniować nasz inwentarz, pisząc wiele instrukcji w terminalu Ansible. Zdefiniowanie inwentarza podczas uruchamiania instrukcji i podręczników jest mądrą decyzją, która zapobiega kolizjom hostów i awariom podczas łączenia się z hostami.

Aby rozpocząć samodzielne definiowanie inwentarza, najpierw piszemy poniższą instrukcję, abyśmy mogli zbudować inwentarz w Ansible i wyświetlić w nim hosty, abyśmy mogli nawiązać połączenie między kontrolerem Ansible a docelowymi hostami zdalnymi.

[ źródło @ mistrz ansibla ] # nano hosts.yml

Po napisaniu poprzedniego zestawienia inwentarz jest tworzony i uruchamiany w nowym terminalu Ansible z tytułem „hosts.yml”. Następnie wymieniamy docelowe hosty jeden po drugim w inwentarzu. Pierwszym hostem, z którym się łączymy, jest host Linux. Podajemy adres IP hosta Linux, użytkownika Ansible, hasło Ansible, typ połączenia oraz numer portu Ansible. Robimy to samo z drugim hostem docelowym. Drugim hostem, którego używamy, jest host Ansible. Wszystkie hosty, które wymieniliśmy, znajdują się w wykazie pod parametrem Ansible.

Ansible:
zastępy niebieskie:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: root
ansible_password: tpstps_22
ansible_connection: ssh
ansible_port: 22

Ansible_Host:
ansible_host: 192.168.7.10
ansible_user: tęczówka
ansible_password: TpsTps_1
ansible_connection: ssh
ansible_port: 22

Po utworzeniu pliku inwentaryzacyjnego i podaniu w nim hostów, kończymy teraz plik inwentaryzacyjny i wracamy do głównego terminala Ansible.

Krok 3: Utwórz podręcznik w Ansible

Następnie tworzymy playbook w narzędziu Ansible, aby zdefiniować zadania. W tym celu piszemy następujące polecenie w głównym terminalu Ansible:

[ źródło @ mistrz ansibla ] # nano ansible_advanced_inventory.yml

Teraz podręcznik jest uruchamiany w nowym terminalu. Najpierw piszemy tytuł podręcznika. W następnym wierszu podajemy docelowego hosta. Korzystamy z opcji zbierania faktów, która służy do uzyskiwania pełnych informacji o gospodarzach. Ale tutaj mijamy „nie”, co oznacza, że ​​​​nie chcemy uzyskać wszystkich danych hostów.

Następnie wymieniamy zadania w podręczniku. Pierwsze zadanie służy do wyświetlenia hosta docelowego wraz z nazwą hosta. W następnym zadaniu drukujemy wyniki hosta.

- name: Zaawansowana inwentaryzacja hosta Ansible
gospodarze: ansible [ 0 ]
zebrać_fakty: nie
zadania:

- nazwa: Zdobądź nazwa hosta zarządzanego węzła
powłoka: „nazwa hosta”
zarejestruj: wynik

- Nazwa druku nazwa hosta
odpluskwić:
wiadomość: '{{result.stdout}}'

Teraz chcemy uruchomić podręcznik wraz z plikiem inwentarza. Więc najpierw kończymy podręcznik. Poniżej znajduje się instrukcja, której używamy do uruchomienia polecenia:

[ źródło @ mistrz ansibla ] # ansible-playbook ansible_advanced_inventory.yml –i host.yml

Poniżej znajduje się ekran wyjściowy, który pokazuje, że połączenie się powiodło. Ponieważ przekazaliśmy Ansible[0] w podręczniku, w danych wyjściowych wyświetlany jest pierwszy host:

Wniosek

W tym samouczku przeprowadziliśmy dogłębną dyskusję w inwentarzu Ansible. Nauczyliśmy się, jak budować zasoby w Ansible, a następnie łączyć je z docelowymi hostami zdalnymi. Zaimplementowaliśmy również przykład, abyśmy mogli łatwo zrozumieć koncepcje inwentaryzacji Ansible.