Jak używać Playbooków Ansible do automatyzacji złożonych zadań na wielu zdalnych serwerach - Część 2
- 1012
- 287
- Laura Zygmunt
W poprzednim artykule tej serii Ansible wyjaśniliśmy, że Ansible to narzędzie bez agenta, które pozwala szybko i wydajnie zarządzać wieloma maszynami (znanymi również jako węzły - i wykonywać wdrożenia) z jednego systemu z jednego systemu.
Użyj Playbooków Ansible, aby zautomatyzować złożone zadania w systemie Linux - część 2Po zainstalowaniu oprogramowania w komputerze kontrolera, utworzeniu kluczy do logowania bez hasła i kopiowania ich do węzłów, nadszedł czas, aby nauczyć się optymalizować proces zarządzania takimi zdalnymi systemami za pomocą Ansible.
Środowisko testowe ansible
W tym artykule, a także następnym, użyjemy następującego środowiska testowego. Wszyscy gospodarze są Centos 7 pudła:
Maszyna kontrolera (gdzie instalowana jest ansible): 192.168.0.19 Node1: 192.168.0.29 Node2: 192.168.0.30
Ponadto należy pamiętać, że oba węzły zostały dodane w sekcji WebServers w lokalnym /etc/ansible/hosts plik:
Plik hosta ansibleTo powiedziawszy, zacznijmy od danego tematu.
Przedstawiamy Ansible Playbooks
Jak opisano w poprzednim przewodniku, możesz użyć Ansible narzędzie do uruchamiania poleceń w zdalnych węzłach w następujący sposób:
# ansible -a "/bin/hostnamectl --static" WebserversAnsible: Uruchom polecenia w zdalnym Linuxie
W powyższym przykładzie prowadziliśmy hostnamectl --static
NA Node1 I Node2. Nie trwa długo, aby uświadomić sobie, że ta metoda wykonywania zadań na komputerach zdalnych działa dobrze w przypadku krótkich poleceń, ale może szybko stać się uciążliwe lub niechlujne w przypadku bardziej złożonych zadań, które wymagają dalszych dobrze zorganizowanych parametrów konfiguracyjnych lub interakcji z innymi usługami
Na przykład konfigurowanie i konfigurowanie WordPress O wielu hostach - które omówimy w następnym artykule z tej serii). Tam jest Podręczniki Wejdź na scenę.
Po prostu premier, Podręczniki to zwykłe pliki tekstowe zapisane w Yaml Format i zawieraj listę z elementami z jedną lub więcej parami/wartościami (znanymi również jako „haszysz”Lub„słownik”).
W każdym podręczniku znajdziesz jedną lub więcej grupy hostów (każda z tych grup nazywa się również grać) tam, gdzie mają się wykonywać pożądane zadania.
Przykład z oficjalnych dokumentów pomoże nam zilustrować:
1. zastępy niebieskie: To jest lista maszyn (zgodnie z /etc/ansible/hosts) tam, gdzie zostaną wykonane następujące zadania.
2. remote_user: Konto zdalne, które zostanie użyte do wykonywania zadań.
3. vars: zmienne używane do modyfikacji zachowania systemu zdalnego (-ów).
4. Zadania są wykonywane w porządku, jeden na raz, w stosunku do wszystkich maszyn, które pasują do hostów. W grze wszyscy gospodarze otrzymają te same dyrektywy zadań.
Jeśli chcesz wykonać inny zestaw powiązanych zadań dla określonego hosta, utwórz inną grę w bieżącym Podręcznik (Innymi słowy, celem sztuki jest mapowanie określonego wyboru hostów na dobrze zdefiniowane zadania).
W takim przypadku rozpocznij nową grę, dodając dyrektywę hostów na dole i zaczynając od nowa:
--- - Hosty: WebServers remote_user: root vars: zmienna 1: wartość1 zmienna 2: value2 remote_user: Zadania root: - Nazwa: opis dla zadania Nazwa: Opis dla obsługi 1 usługa: name = name_of_service State = service_status - Hosts: Dbservers remote_user: root vars: zmienna 1: wartość1 zmienna 2: wartość2…
5. Handlery to działania, które są wyzwalane na końcu sekcji zadań w każdej grze i są najczęściej używane do ponownego uruchomienia usług lub uruchamiania ponownego uruchomienia w zdalnych systemach.
# mkdir/etc/ansible/podręczniki
I plik o nazwie Apache.yml W środku z następującymi treściami:
--- - Hosty: WebServers Vars: http_port: 80 Max_Clients: 200 Remote_user: Zadania root: - Nazwa: Upewnij się, że Apache jest w najnowszej wersji Yum: pkg = httpd State = najnowszy - Nazwa: Wymień indeks domyślny.Kopia pliku HTML: src =/static_files/index.html dest =/var/www/html/tryb = 0644 Powiadom: - Ponowne uruchom Apache - Nazwa: Upewnij się, że Apache jest uruchomiony (i włącz go w rozruchu) Service: name = httpd stan = uruchomion serwis: name = httpd stan = ponownie uruchomiono
Po drugie, utwórz katalog /Files STATIC:
# mkdir /static_files
gdzie będziesz przechowywać zwyczaj indeks.html plik:
Apache został uruchomiony w tym hoście przez Ansible
Przyniósł ci Tecmint.com
To powiedziawszy, teraz nadszedł czas, aby użyć tego podręcznika do wykonywania wspomnianych wcześniejszych zadań. Zauważysz, że Ansible przejdzie przez każde zadanie przez hosta, pojedynczo, i zgłosi status takich zadań:
# ansible-playbook/etc/ansible/podręczniki/apache.ymlAnsible: automatyzuj zadania w Linux
Teraz zobaczmy, co się stanie, kiedy otworzymy przeglądarkę i wskazamy 192.168.0.29 I 192.168.0.30:
Ansible: potwierdź zautomatyzowane zadaniaIdźmy o krok dalej i ręcznie zatrzymaj się i wyłącz Apache Node1 I Node2:
# SystemCtl Stop Httpd # Systemctl Wyłącz httpd # Systemctl IS-Active Httpd # Systemctl IS-obserwowany httpdZatrzymaj i wyłącz usługę Apache
Następnie biegnij ponownie,
# ansible-playbook/etc/ansible/podręczniki/apache.yml
Tym razem zadanie informuje, że serwer WWW Apache został uruchomiony i włączony na każdym hoście:
Ansible: Rozpocznij serwer WWWProszę rozważyć powyższy przykład jako spojrzenie na moc Ansible. Chociaż są to stosunkowo łatwe zadania po wykonywaniu niewielkiej liczby serwerów, może stać się bardzo żmudne i czasochłonne, jeśli potrzebujesz zrobić to samo w kilku (być może setkach) maszyn.
Streszczenie
W tym artykule opisaliśmy, jak uruchamiać polecenia i wykonywać złożone zadania na kilku zdalnych hostach jednocześnie za pomocą Ansible. Oficjalna dokumentacja i repozytorium GitHub dostarczają wielu przykładów i przewodników, jak używać Ansible, aby osiągnąć prawie wszelkie możliwe zadanie.
Kiedy zaczynasz uczyć się, jak automatyzować zadania na zdalnych hostach Linux za pomocą ansible, chcielibyśmy usłyszeć twoje myśli. Pytania, komentarze i sugestie są również zawsze mile widziane, więc skontaktuj się z nami, korzystając z poniższego formularza w dowolnym momencie.
- « 8 Przydatne polecenia do monitorowania użycia przestrzeni wymiany w Linux
- 13 Przydatne rzeczy do zrobienia po instalacji stacji roboczej Fedora 22 »