Ansible. Zaczynamy od ewidencji.

Jedna z wyjątkowych cech Ansible na tle innych systemów orkiestracji jest to, że jest systemem “bez agentowym”.  A to oznacza, że nie musimy instalować żadnych programów na hostach którymi chcemy zarządzać. Wystarczy właściwie, że będziemy mieć tylko odpowiednie uprawnienia do zarządzania danych hostem, co zwykle sprowadza się do znajomości uprawnionego użytkownika i hasła na kontrolowanym hoscie, na przykład roota. No i oczywiście dostęp do jakiegoś portu komunikacji, zwykle to będzie SSH na porcie 22 w przypadku systemów Linuksowych.
No dobrze, ale skąd Ansible ma wiedzieć którymi komputerami ma zarządzać skoro nie używamy agentów? To proste, aby Ansible wiedział, którymi hostami ma zarządzać, wystarczy że wszystkie będą wpisane w do jednego pliku inwentarza. Na początku swojej przygody z Ansible najlepiej jawnie podać dane każdego z hostów, dzięki czemu łatwiej będzie wejść w temat. Później będziesz możliwość budowania listy inwentarza również w dynamiczny sposób i bezpieczny sposób (na przykład szyfrując hasła). Zacznijmy jednak od podstaw. Domyślnym miejscem gdzie przechowywany jest plik inwentarzem jest /etc/ansible/hosts

Jest to zwykły plik tekstowy budowany w oparciu o format INI bądź YAML. Tu warto dodać że  scenariusze tworzone sprawdzając się jako YAML to plik z inwentaryzacja najlepiej wygląda jako INI. Czego przykład jest poniżej – informacja o zarządzanym hoście może wyglądać tak.

server01.mojadomena.pl

Możemy też nadać mu alas by latwiej bylo nam na niego wskazywać 

mojserwer01 ansible_host=server01.mojadomena.pl ansible_connection=ssh ansible_user=root ansible_ssh_pass=T@jnEhasŁ0
mojserver02 ansible_host=server02.mojadomena.pl ansible_connection=ssh ansible_user=root ansible_ssh_pass=T@jnEhasŁ0 

Hosty też mogą być opisywane jako grupa, do której to będzie można odnieść się bezpośrednio przy zarządzaniu by nie wymieniać wszystkich nazw po kolei. Dodatkowo plik inwentarza też może zawierać zmienne które ułatwiają nam pracę gdy tych serwerów będziemy mieć wiele. Jak widać w powyższym przykładzie hasło do hostów jest jawnie ale możemy skorzystać też z certyfikatów umieszczanych na serwerze zamiast łączyć się podając użytkownika i hasło.
Ansible oferuje jeszcze wiele więcej dodatkowych parametrów wspomagających definiowane hostów w ewidencji  jednak zajmiemy się nimi w przyszłości. Teraz najważniejsze zrozumiał do czego służy plik inwentarzowy.

No dobrze. Przetestujmy więc teraz nasz plik ewidencyjny. Sprawdzimy za pomocą modułu PING czy możemy uzyskać komunikację z hostami, których dane znajdują się w naszym pliku inwentarzowym. W tym celu, w terminalu wpisz polecenie:
ansible all -m ping
Jeśli wszystko jest wpisane poprawnie i jest możliwa komunikacja SSH pomiędzy kontrolerem a hostami powinieneś uzyskać podobny wynik jak na obrazku poniżej. 

Warto dodać, że Ansible potrafi też dynamicznie budować plik z hostami ale to materiał na inny artykuł.