Ansible Tutorial
Mam nadzieję, że zapoznałeś się z moim poprzednim blogiem i najczęściej używaną terminologią Ansible. Jeśli nie, sprawdź to, aby lepiej zrozumieć ten samouczek Ansible.Powinieneś także wiedzieć, że Ansible stanowi kluczową część jako narzędzie do zarządzania konfiguracją, wdrażania i orkiestracji.
przeciążanie i nadpisywanie w java
Pozwólcie, że przedstawię wam przegląd tego „samouczka Ansible”:
- Nauczysz się pisać poradniki
- Dowiesz się o różnych moduły w Ansible
- Nauczysz się pisać Polecenia adhoc
- Praktyczny z Ansible
Poradnik Ansible | Szkolenie DevOps | Edureka
Ansible Tutorial - Pisanie poradników Ansible
Poradniki w Ansible są napisane w formacie YAML. Jest to czytelny dla człowieka język serializacji danych. Jest powszechnie używany do plików konfiguracyjnych. Może być również używany w wielu aplikacjach, w których przechowywane są dane.
W przypadku Ansible prawie każdy plik YAML zaczyna się od listy. Każda pozycja na liście to lista par klucz / wartość, powszechnie nazywana „hashem” lub „słownikiem”. Musimy więc wiedzieć, jak pisać listy i słowniki w YAML.
Wszyscy członkowie listy to wiersze zaczynające się na tym samym poziomie wcięcia zaczynające się od „-” (myślnik i spacja). Możliwe są bardziej skomplikowane struktury danych, takie jak listy słowników lub słowniki mieszane, których wartości są listami lub kombinacją obu.
na przykład Lista działów w edurece:
działy: - marketing - sprzedaż - rozwiązania - pisanie treści - wsparcie - produkt
Podam teraz przykład słownika:
-USA -kontynent: Ameryka Północna -kapitał: Waszyngton -populacja: 319 mln
Gospodarze i użytkownicy:
Dla każdej gry w playbooku możesz wybrać, które maszyny w Twojej infrastrukturze mają być celem i który zdalny użytkownik ma wykonać zadania. Aby uwzględnić hosty w spisie Ansible, będziemy używać adresów IP maszyn hostów.
Ogólnie hosty to lista z jedną lub więcej grupami lub wzorcami hostów, oddzielonymi dwukropkami. Zdalny użytkownik to tylko nazwa konta użytkownika.
Zmienne:
Ansible korzysta ze zmiennych, które zostały wcześniej zdefiniowane, aby zapewnić większą elastyczność w podręcznikach i rolach. Mogą być używane do zapętlania zestawu podanych wartości, uzyskiwania dostępu do różnych informacji, takich jak nazwa hosta systemu, i zastępowania określonych ciągów w szablonach określonymi wartościami.
Ansible już definiuje bogaty zestaw zmiennych, indywidualnych dla każdego systemu. Zawsze, gdy Ansible będzie działać w systemie, wszystkie fakty i informacje o systemie są gromadzone i ustawiane jako zmienne.
Ale jest reguła do nazywania zmiennych. Nazwy zmiennych powinny zawierać litery, cyfry i znaki podkreślenia. Zmienne powinny zawsze zaczynać się od litery. Na przykład. wamp_21, port5 to prawidłowe nazwy zmiennych, podczas gdy 01_port, _server są nieprawidłowe.
Zadania:
Zadania umożliwiają podzielenie fragmentów zasad konfiguracji na mniejsze pliki. Zadanie obejmuje pobieranie z innych plików. Zadania w Ansible mają prawie angielskie znaczenie.
Np: instalacja, aktualizacja itp.
Handlowcy:
Programy obsługi są podobne do zwykłych zadań w playbooku Ansible, ale są uruchamiane tylko wtedy, gdy zadanie zawiera dyrektywę powiadomień, a także wskazuje, że coś zmieniło. Na przykład, jeśli plik konfiguracyjny zostanie zmieniony, zadanie odwołujące się do pliku konfiguracyjnego może powiadomić program obsługi restartu usługi.
Podam przykład playbooka, który uruchomi program serwera httpd Apache:
----zastępy niebieskie: serwery internetowe którego: http_port: 80 max_clients: 200 użytkownik_zdalny: korzeń zadania: - Nazwa: upewnij się, że apache jest w najnowszej wersji mniam: nazwa = httpd stan = najnowsze - Nazwa: napisz plik konfiguracyjny Apache szablon: src = / srv / httpd.j2 dest = / etc / httpd.conf notyfikować: - zrestartuj apache - Nazwa: upewnij się, że apache działa (i włącz go podczas rozruchu) usługa: nazwa = httpd stan = rozpoczęta włączona = tak obsługi: - Nazwa: zrestartuj apache usługa: nazwa = httpd stan = uruchomiono ponownie
Mam nadzieję, że przykład będzie odnosił się do wszystkich opisów komponentów playbooka, o których wspomniałem powyżej. Jeśli nadal nie jest to dla Ciebie jasne, nie martw się, wszystkie Twoje wątpliwości zostaną wyjaśnione w dalszej części tego bloga.
Chodzi o playbooki. Podręczniki, które zostaną napisane przez Ciebie. Ale Ansible zapewnia również szeroką gamę modułów, z których możesz korzystać.
Ansible Tutorial - Moduły
Moduły w Ansible są idempotentne. Z punktu widzenia usługi RESTful, aby operacja (lub wywołanie usługi) była idempotentna, klienci mogą wielokrotnie wykonywać to samo wywołanie, uzyskując ten sam wynik. Innymi słowy, złożenie wielu identycznych żądań ma taki sam skutek, jak złożenie jednego żądania.
W Ansible są różne typy modułów
- Moduły podstawowe
- moduły dodatkowe
Moduły podstawowe
Są to moduły, które utrzymuje główny zespół Ansible i które zawsze będą dostarczane z samym Ansible. Otrzymają również nieco wyższy priorytet dla wszystkich żądań niż te z repozytoriów „extra”.
Źródło tych modułów jest hostowane przez firmę Ansible na GitHub w rdzeniu Ansible-modules-core.
Moduły dodatkowe
Te moduły są obecnie dostarczane z Ansible, ale w przyszłości mogą być dostarczane osobno. Są również w większości utrzymywane przez społeczność Ansible. Moduły inne niż podstawowe są nadal w pełni użyteczne, ale mogą uzyskiwać nieco niższe wskaźniki odpowiedzi w przypadku problemów i żądań ściągnięcia.
Z czasem popularne moduły „dodatki” mogą zostać przeniesione na moduły podstawowe.
Źródło tych modułów jest hostowane przez Ansible w serwisie GitHub w sekcji Ansible-modules-extras.
Np .: Jednym z dodatkowych modułów w Remote Management Modules jest moduł ipmi_power, który jest menadżerem energii dla zdalnych maszyn. Do działania wymaga Pythona 2.6 lub nowszego oraz pyghmi.
Możesz użyć tego modułu, pisząc polecenie adhoc, takie jak to, które napisałem poniżej:
ipmi_power: name = 'test.domain.com' user = 'localhost' hasło = 'xyz' state = 'on'
Ansible Tutorial - Zwracane wartości
Moduły Ansible zwykle zwracają strukturę danych, którą można zarejestrować w zmiennej lub zobaczyć bezpośrednio na wyjściu programu Ansible. Każdy moduł może opcjonalnie dokumentować własne unikalne wartości zwracane.
Oto kilka przykładów zwracanych wartości:
- zmienione: zwraca wartość logiczną za każdym razem, gdy zadanie wprowadza jakąkolwiek zmianę.
- nie powiodło się: zwraca wartość logiczną, jeśli zadanie się nie powiodło
- msg: zwraca łańcuch z ogólną wiadomością przekazaną użytkownikowi.
Ansible Tutorial - Polecenia AdHoc
Polecenia adhoc to proste polecenie w jednym wierszu, które wykonuje jakąś akcję. Uruchomione moduły z poleceniami Ansible to polecenia adhoc.
Na przykład:
host ansible -m netscaler -a 'nsc_host = nsc.example.com użytkownik = apiuser hasło = apipass'
Powyższe polecenie adhoc używa modułu netscaler do wyłączenia serwera. W Ansible są dostępne setki modułów, z których możesz odwoływać się i pisać polecenia adhoc.
Cóż, wystarczy po wszystkich wyjaśnieniach teoretycznych, pozwólcie, że wyjaśnię wam Ansible z kilkoma rękami.
Ansible Tutorial - Hands On
Mam zamiar napisać playbook do zainstalowania Nginx na moim węźle / maszynie.
Zaczynajmy :)
Krok 1: Połącz się ze swoimi hostami za pomocą SSH. W tym celu musisz wygenerować publiczny klucz SSH.
Użyj poniższego polecenia:
ssh-keygen
Jak widać na powyższej migawce, polecenie ssh-keygen wygenerował publiczny klucz SSH.
Krok 2: Twoim następnym zadaniem jest skopiowanie publicznego klucza SSH na swoje hosty. W tym celu użyj poniższego polecenia:
ssh-copy-id -i root @
Powyższa migawka pokazuje, że klucz SSH jest kopiowany do hostów.
Krok 3: Wypisz adresy IP hostów / węzłów w swoim ekwipunku.
Użyj następującego polecenia:
vi / etc / ansible / hosts
Otworzy się edytor vi, w którym możesz wyświetlić adresy IP swoich hostów. To jest teraz twój ekwipunek.
Krok 4: Zróbmy ping, aby upewnić się, że połączenie zostało nawiązane.
Powyższa migawka potwierdza, że nawiązano połączenie między maszyną sterującą a hostem.
Krok 5: Napiszmy teraz poradnik, jak zainstalować Nginx na maszynie hosta. Możesz napisać swój poradnik w edytorze vi. W tym celu po prostu utwórz swój playbook, używając polecenia:
vi
Poniższa migawka przedstawia mój podręcznik do zainstalowania Nginx napisanego w formacie YAML.
Zadania podręcznika są zdefiniowane w YAML jako lista słowników i wykonywane od góry do dołu. Jeśli mamy kilka hostów, to każde zadanie jest sprawdzane dla każdego hosta przed przejściem do następnego. Każde zadanie jest zdefiniowane jako słownik, który może mieć kilka kluczy, takich jak „nazwa” lub „sudo”, które określają nazwę zadania i określają, czy wymaga ono uprawnień sudo.
jak uzyskać dostęp do aws cli
Zmienna Port serwera jest ustawione, że nasłuchuje na porcie TCP 8080 dla przychodzących wniosków.
Tutaj pierwszym zadaniem jest zdobycie pakietu niezbędnego do instalacji Nginx, a następnie zainstalowanie go.Ansible wewnętrznie sprawdzi, czy katalog istnieje, a jeśli nie, utworzy go, w przeciwnym razie nic nie zrobi.
Następnym zadaniem jest skonfigurowanie Nginx.W Nginx konteksty zawierają szczegóły konfiguracji.
Tutaj szablon jest plikiem, który można wdrożyć na hostach. Jednak pliki szablonów zawierają również pewne zmienne odniesienia, które są pobierane ze zmiennych zdefiniowanych jako część poradnika Ansible lub faktów zebranych od hostów. Fakty zawierające szczegóły konfiguracji są pobierane z katalogu źródłowego i kopiowane do katalogu docelowego.
Programy obsługi definiują tutaj akcję, która ma być wykonana tylko po powiadomieniu o zadaniach lub zmianach stanu. W tym podręczniku zdefiniowaliśmy powiadomienie: zrestartuj moduł obsługi Nginx, który uruchomi ponownie Nginx, gdy pliki i szablony zostaną skopiowane na hosty.
Teraz zapisz plik i zakończ.
Krok 6: Teraz uruchommy ten poradnik, używając poniższego polecenia:
ansible-playbook .yml
Na powyższym zrzucie ekranu widzimy, że nasze zadanie jest uruchamiane podczas instalacji Nginx.
Krok 7: Sprawdźmy, czy Nginx jest zainstalowany na moim komputerze głównym. Użyj poniższego polecenia:
ps waux | grep nginx
Na powyższym zrzucie ekranu widać, że działają różne identyfikatory procesów 3555 i 103316, co zapewnia, że Nginx działa na twoich hostach.
Gratulacje! Udało Ci się wdrożyć Nginx na swoim hoście przy użyciu Playbooków Ansible. Mam nadzieję, że podobał Ci się blog Ansible Tutorial. Daj mi znać, jeśli masz jakieś pytania w sekcji komentarzy poniżej.
Jeśli znalazłeś to „ Ansible Tutorial ' istotnych, Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zdobyć wiedzę na temat różnych procesów DevOps i narzędzi, takich jak Puppet, Jenkins, Ansible, Nagios i Git, do automatyzacji wielu kroków w SDLC.