Generator zapasu Ansible
Zbuduj plik inventory.ini z grupami hostów, zmiennymi grupowymi i grupami nadrzędnymi dla Ansible.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator inventory Ansible — grupy hostów, zmienne i grupy nadrzędne
Generator zapasu Ansible buduje plik inventory.ini: nagłówek grupy [webservers], listę hostów, sekcję zmiennych grupowych [grupa:vars] i sekcję grup nadrzędnych [grupa:children]. Wpisz nazwę grupy, wklej hosty (po jednym w linii), dodaj zmienne i skopiuj gotowy zapas. To plik, który Ansible czyta przez -i inventory.ini, żeby wiedzieć, na jakich maszynach uruchomić playbook.
Co dokładnie generuje to narzędzie
Nazwa grupy trafia do nagłówka [grupa] i przechodzi walidację wzorcem [A-Za-z0-9_-]+, bo spacja czy nawias rozjechałyby parser INI. Każdą linię pola hostów narzędzie przycina i wstawia pod nagłówkiem grupy — powtórzone linie są scalane. Zmienne grupowe dostają sekcję [grupa:vars], a grupy podrzędne [grupa:children]. Puste sekcje są pomijane, więc plik zawiera tylko to, co wypełniłeś.
Host opisujesz nazwą i opcjonalnymi zmiennymi połączeniowymi w tej samej linii, na przykład web1.example.com ansible_host=10.0.0.11. Klucz ansible_host podaje adres, pod który Ansible faktycznie się łączy, gdy nazwa hosta jest tylko etykietą. Dorzucisz też ansible_user (użytkownik SSH), ansible_port (port inny niż 22) czy ansible_python_interpreter.
Anatomia pliku inventory INI
| Sekcja | Zapis | Rola |
|---|---|---|
| Grupa hostów | [webservers] | Nagłówek, pod którym wymieniasz hosty grupy |
| Host z adresem | web1 ansible_host=10.0.0.11 | Etykieta hosta plus adres, pod który łączy się Ansible |
| Zmienne grupowe | [webservers:vars] | Zmienne stosowane do każdego hosta w grupie |
| Grupy nadrzędne | [production:children] | Łączy istniejące grupy w jedną większą |
| Użytkownik SSH | ansible_user=deploy | Konto, na które Ansible loguje się przez SSH |
| Port SSH | ansible_port=22 | Port połączenia, gdy inny niż domyślny |
Grupy, zmienne grupowe i grupy nadrzędne
Grupa to nazwany zbiór hostów, na których playbook robi to samo — webservers, databases, loadbalancers. Sekcja [grupa:vars] ustawia zmienne raz dla całej grupy zamiast powtarzać je przy każdym hoście: wspólny użytkownik, port, ścieżka do interpretera. Sekcja [grupa:children] buduje hierarchię — grupa production może zawierać webservers i databases, więc jednym poleceniem uruchomisz zadanie na całym środowisku. Hosty i zmienne dziedziczą się w dół drzewa, a wartość z węższej grupy ma pierwszeństwo przed szerszą.
INI kontra YAML — dwa formaty tego samego zapasu
Ansible czyta zapas w dwóch formatach. INI, który generuje to narzędzie, jest zwięzły: nagłówki w nawiasach kwadratowych, jeden host w linii. YAML zapisuje tę samą strukturę zagnieżdżeniem (all:, children:, hosts:, vars:) i lepiej znosi złożone zmienne, listy i słowniki. Dla większości małych i średnich środowisk INI wystarcza. Gdy zmiennych jest dużo, rozważ YAML lub wynieś je do katalogów group_vars/ i host_vars/, które Ansible wczytuje automatycznie obok zapasu.
Zapas statyczny kontra dynamiczny
Plik z tego generatora to zapas statyczny — lista hostów spisana ręcznie. Sprawdza się, gdy maszyny są stałe i znasz ich adresy. W chmurze, gdzie serwery powstają i znikają, używa się zapasu dynamicznego: wtyczki (jak amazon.aws.aws_ec2) pytają API dostawcy i budują listę hostów w locie.
Jak korzystać z generatora
- Wpisz nazwę grupy, na przykład
webservers— trafi do nagłówka[webservers]. - Wklej hosty, po jednym w linii, z opcjonalnym
ansible_host=IPprzy każdym. - Dodaj zmienne grupowe (
ansible_user,ansible_port) — pojawią się w sekcji[grupa:vars]. - Opcjonalnie wypisz grupy podrzędne, żeby zbudować grupę nadrzędną
[grupa:children]. - Kliknij Generuj inventory, skopiuj wynik i zapisz jako
inventory.ini.
Zapas to jeden element warsztatu automatyzacji. Playbook, który go użyje, złożysz w generatorze playbooków Ansible, a jego składnię sprawdzisz w walidatorze YAML. Gdy przenosisz aplikacje na konteneryzację, przydadzą się generator pliku Dockerfile oraz generator deploymentu Kubernetes, a zadania cykliczne na hostach ustawisz przez generator crontab.
Czego to narzędzie nie robi
Generator buduje jedną grupę na raz w formacie INI. Wiele grup w jednym pliku, katalogi group_vars/ i host_vars/, zakresy hostów web[01:10] czy zapas w YAML dopisujesz ręcznie w szkielecie. Nie łączy się też z hostami ani nie sprawdza dostępności — to zadanie polecenia ansible ... -m ping.
Najczęściej zadawane pytania
Czym różni się nazwa hosta od ansible_host?
Nazwa w nagłówku grupy to etykieta, po której odwołujesz się do maszyny w playbookach i raportach. ansible_host podaje faktyczny adres, pod który Ansible nawiązuje połączenie. Dzięki temu host może nazywać się czytelnie web1, a łączyć pod adresem IP 10.0.0.11 albo pełną nazwą DNS.
Do czego służy sekcja [grupa:children]?
Buduje grupy nadrzędne z istniejących grup. Grupa production może zawierać webservers i databases, więc jednym poleceniem uruchomisz zadanie na całym środowisku. Hosty i zmienne dziedziczą się w dół drzewa.
Jak sprawdzić połączenie z hostami z zapasu?
Uruchom ansible -i inventory.ini all -m ping. To nie jest ping ICMP, lecz test połączenia SSH i uruchomienia Pythona na zdalnej maszynie. Odpowiedź pong oznacza, że host jest osiągalny i gotowy na playbooki.
INI czy YAML — który format wybrać?
INI jest zwięzły i czytelny, wystarcza dla większości środowisk. YAML lepiej znosi złożone zmienne, listy i słowniki oraz dynamiczne zapasy. Zacznij od INI, a przejdź na YAML lub katalogi group_vars/, gdy zmiennych zrobi się dużo.
Gdzie trzymać hasła i klucze?
Nie w pliku zapasu, który trafia do repozytorium. Sekrety szyfruj przez ansible-vault i wczytuj z osobnego pliku. W zapasie zostaw jawnie tylko dane nietajne, jak adresy, użytkownik połączenia czy port.