Wyszukiwanie w witrynie

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.