Zrozumienie podstawowych komponentów Ansible — część 1
Egzamin Red Hat Certified Specialist in Ansible Automation (EX407) to nowy program certyfikacyjny firmy Red Hat, który sprawdza Twoje umiejętności korzystania z Ansible do automatyzacji konfiguracja systemów i aplikacji.
Seria będzie nosiła tytuł „Egzamin Red Hat Certified Specialist in Ansible Automation (EX407)” i obejmuje następujące cele egzaminu w oparciu o Red Hat Enterprise Linux 7.5 i Ansible 2.7, który omówimy w tej serii Ansible:
Aby wyświetlić opłaty i zarejestrować się na egzamin w swoim kraju, sprawdź stronę egzaminu Ansible Automation.
W tej Części 1 serii Ansible omówimy podstawowy przegląd podstawowych komponentów Ansible.
Poznaj podstawowe komponenty Ansible
Ansible to bezpłatna platforma automatyzacji typu open source firmy RedHat, która umożliwia zarządzanie i kontrolowanie wielu serwerów z jednej centralnej lokalizacji. Jest to szczególnie idealne rozwiązanie, gdy masz wiele powtarzalnych zadań do wykonania. Zamiast więc logować się do każdego z tych zdalnych węzłów i wykonywać swoje zadania, możesz to wygodnie robić z centralnej lokalizacji i wygodnie zarządzać swoimi serwerami.
Jest to korzystne, gdy chcesz zachować spójność we wdrażaniu aplikacji, ograniczyć błędy ludzkie i zautomatyzować powtarzalne i nieco przyziemne zadania.
Oczywiście istnieją inne alternatywy dla Ansible, takie jak Puppet, Chef i Salt. Jednak najczęściej preferowany jest Ansible, ponieważ jest łatwy w obsłudze i łatwy do nauczenia.
Możesz zapytać, dlaczego nauka jest łatwa? Dzieje się tak, ponieważ Ansible używa YAML (Jeszcze innego języka znaczników) w swoich zadaniach konfiguracji i automatyzacji, które są czytelne dla człowieka i dość łatwe do wykonania. YAML używa protokołu SSH do komunikacji ze zdalnymi serwerami, w przeciwieństwie do innych platform automatyzacji, które wymagają zainstalowania agenta na zdalnych węzłach, aby się z nimi komunikować.
Zanim zaczniemy korzystać z Ansible, ważne jest, abyś zapoznał się z kilkoma podstawowymi terminologiami, aby nie zgubić się ani nie pomylić w dalszej części pracy.
Spis
Inwentarz to plik tekstowy zawierający listę serwerów lub węzłów, którymi zarządzasz i które konfigurujesz. Zwykle serwery są wymienione na podstawie ich nazw hostów lub adresów IP.
Plik inwentarza może zawierać systemy zdalne zdefiniowane na podstawie ich adresów IP, jak pokazano:
10.200.50.50
10.200.50.51
10.200.50.52
Alternatywnie można je uszeregować według grup. W poniższym przykładzie mamy serwery umieszczone w 2 grupach – serwery internetowe i bazy danych. W ten sposób można się do nich odwoływać na podstawie nazw grup, a nie adresów IP. To jeszcze bardziej upraszcza procesy operacyjne.
[webservers]
10.200.50.60
10.200.50.61
[databases]
10.200.50.70
10.200.50.71
Jeśli pracujesz w dużym środowisku produkcyjnym, możesz mieć wiele grup z wieloma serwerami.
Podręcznik
Podręcznik to zestaw skryptów do zarządzania konfiguracją, które definiują sposób wykonywania zadań na zdalnych hostach lub w grupie komputerów-hostów. Skrypty lub instrukcje są zapisane w formacie YAML.
Na przykład możesz mieć plik playbook, aby zainstalować serwer WWW Apache w CentOS 7 i nazwać go httpd.yml.
Aby utworzyć podręcznik, uruchom polecenie.
touch playbook_name.yml
Na przykład, aby utworzyć podręcznik o nazwie httpd, uruchom polecenie.
touch httpd.yml
Plik YAML zaczyna się od trzech łączników, jak pokazano. Wewnątrz pliku dodaj następujące instrukcje.
---
- name: This installs and starts Apache webserver
hosts: webservers
tasks:
- name: Install Apache Webserver
yum: name=httpd state=latest
- name: check httpd status
service: name=httpd state=started
Powyższy podręcznik instaluje serwer WWW Apache na systemach zdalnych zdefiniowanych jako serwery internetowe w pliku inwentarza. Po zainstalowaniu serwera WWW Ansible sprawdza później, czy serwer WWW Apache jest uruchomiony i działa.
Moduły
Moduły to oddzielne jednostki kodu używane w podręcznikach do wykonywania poleceń na zdalnych hostach lub serwerach. Po każdym module następuje argument.
Podstawowy format modułu to klucz:wartość.
- name: Install apache packages
yum: name=httpd state=present
W powyższym fragmencie kodu YAML -name i yum są modułami.
Odtwarza
Ansible play to skrypt lub instrukcja definiująca zadanie do wykonania na serwerze. Zbiór sztuk teatralnych stanowi podręcznik zabaw. Innymi słowy, podręcznik to zbiór wielu zabaw, z których każda jasno określa zadanie do wykonania na serwerze. Odtworzenia istnieją w formacie YAML.
Zmienne
Jeśli masz doświadczenie w programowaniu, najprawdopodobniej używałeś zmiennych. Zasadniczo zmienna reprezentuje wartość. Zmienna może zawierać litery, cyfry i znaki podkreślenia, ale MUSI zawsze zaczynać się od liter.
Zmienne są używane, gdy instrukcje różnią się w zależności od systemu. Jest to szczególnie prawdziwe podczas konfiguracji różnych usług i funkcji.
Istnieją 3 główne typy zmiennych:
- Zmienne podręcznika
- Zmienne zapasów
- Specjalne zmienne
W Ansible zmienne są najpierw definiowane przy użyciu vars k, po których następuje nazwa zmiennej i jej wartość.
Składnia jest następująca:
vars:
Var name1: ‘My first variable’
Var name2: ‘My second variable’
Rozważ poniższy kod.
- hosts: webservers
vars:
- web_directory:/var/www/html/
W powyższym przykładzie zmienną jest katalog_web i instruuje ona Ansible, aby utworzył katalog w ścieżce /var/www/html/.
Fakty
Fakty to właściwości systemu zebrane przez Ansible podczas wykonywania podręcznika w systemie hosta. Właściwości obejmują nazwę hosta, rodzinę systemu operacyjnego, typ procesora i rdzenie procesora, żeby wymienić tylko kilka.
Aby zobaczyć liczbę faktów dostępnych do wykorzystania, wydaj polecenie.
ansible localhost -m setup
Jak widać, domyślnie wyświetlona została ogromna liczba faktów. Możesz jeszcze bardziej zawęzić wyniki, używając parametru filter, jak pokazano.
ansible localhost -m setup -a "filter=*ipv4"
Pliki konfiguracyjne
W Ansible plik konfiguracyjny to plik zawierający różne ustawienia parametrów określające sposób działania Ansible. Domyślnym plikiem konfiguracyjnym jest plik ansible.cfg znajdujący się w katalogu /etc/ansible/.
Możesz wyświetlić plik konfiguracyjny, uruchamiając:
cat /etc/ansible/ansible.cfg
Jak widać, uwzględnionych jest kilka parametrów, takich jak ścieżki plików inwentarza i biblioteki, użytkownik Sudo, filtry wtyczek, moduły itp. Parametry te można po prostu dostosować, komentując je out i modyfikowanie zawartych w nim wartości.
Ponadto z Ansible może współpracować wiele plików konfiguracyjnych, poza domyślnym plikiem konfiguracyjnym.
Streszczenie
Mamy nadzieję, że po zapoznaniu się z podstawowymi komponentami Ansible będziesz w stanie mieć je pod ręką i wybierać w miarę postępów. Dołącz do nas przy kolejnym temacie.