Wyszukiwanie w witrynie

Jak tworzyć i pobierać role w Ansible Galaxy oraz z nich korzystać — część 9


W Części 9 serii Ansible dowiesz się, jak tworzyć i pobierać role w Ansible Galaxy oraz jak z nich korzystać. Ansible to proste, ale skuteczne narzędzie do zarządzania konfiguracją i automatycznego wdrażania, które płynnie i skutecznie automatyzuje złożone zadania. Możesz zarządzać setkami, a nawet tysiącami serwerów z jednego węzła kontrolnego, korzystając z jednego pliku playbooka.

Jednak pisanie podręczników zarządzania tą samą usługą w różnych środowiskach może być dość kłopotliwe, co zwykle prowadzi do nadmiarowości kodu. Dodatkowo większa złożoność może zwiększyć trudność w zarządzaniu wszystkimi urządzeniami.

Nadchodzą role. W Ansible role służą do dzielenia podręczników na pliki wielokrotnego użytku, których można używać w kilku innych przypadkach, gdy zajdzie potrzeba wykonania podobnego zadania. Wyeliminowało to potrzebę ciągłego przepisywania podręczników i pozwoliło zaoszczędzić mnóstwo czasu i energii.

Role to po prostu funkcje podręczników. Rola zawiera prawie wszystko, co stanowiłoby podręcznik: zadania, pliki, moduły, zmienne i szablony. Należy również pamiętać, że każda rola jest ograniczona do określonego zadania lub pożądanego wyniku.

Tworzenie roli Ansible

Aby utworzyć rolę w Ansible, po prostu użyj składni.

ansible-galaxy init role_name 

W bieżącym katalogu roboczym zostanie utworzonych wiele katalogów i plików. W tym przypadku zdecydowałem się utworzyć rolę w katalogu /etc/ansible/roles.

Stwórzmy rolę o nazwie Apache.

ansible-galaxy init apache

Użyj polecenia drzewa, aby rzucić okiem na strukturę katalogów roli.

tree apache

Jak widać, utworzono kilka katalogów, jednak nie wszystkie zostaną wykorzystane w playbooku.

Teraz, aby użyć nowo utworzonej roli w playbooku, zdefiniuj zadanie w pliku main.yml znajdującym się w katalogu zadań Twojej nowej roli.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Następnie utwórz plik podręcznika i wywołaj rolę, jak pokazano.

--- 
- hosts: webservers
  roles:
   - apache

Instalowanie roli z Ansible Galaxy

Role odgrywają kluczową rolę w udostępnianiu kodu innym użytkownikom w społeczności Ansible korzystającej z platformy Ansible Galaxy. W Ansible Galaxy otrzymujesz tysiące ról wykonujących różne zadania, takie jak instalacja serwerów WWW i baz danych, narzędzia monitorujące itp.

Ansible Galaxy to baza danych lub repozytorium ról Ansible, które możesz wykorzystać w swoich podręcznikach i pomóc usprawnić swoje zadania.

Aby wyszukać rolę w Ansible Galaxy, po prostu uruchom polecenie.

ansible-galaxy search <role>

Na przykład, aby wyszukać rolę o nazwie mysql run.

ansible-galaxy search mysql

Jak widać, istnieją setki ról pasujących do słowa kluczowego mysql. Jednak nie wszystkie role spełnią Twoje oczekiwania, dlatego zaleca się uważne przeczytanie instrukcji.

Aby zebrać więcej informacji o roli, po prostu uruchom polecenie Ansible:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

W naszym przykładzie zainstalujemy rolę 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Rola zostanie pobrana i rozpakowana do domyślnego katalogu ról znajdującego się pod adresem /etc/ansible/roles.

Rolę można następnie wywołać w podręczniku, na przykład:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Teraz możesz bezpiecznie uruchomić podręcznik Ansible, jak pokazano.

ansible-playbook install_mysql.yml

Dodatkowo możesz odwiedzić Ansible Galaxy za pośrednictwem przeglądarki internetowej i ręcznie wyszukiwać role do wykonywania różnych zadań zgodnie z opisem na pulpicie nawigacyjnym.

Na przykład, aby wyszukać rolę monitorującą, taką jak elasticsearch, kliknij opcję „Monitorowanie” i wyszukaj rolę, jak pokazano.

Ansible Galaxy ułatwia użytkownikom instalowanie najlepszych ról, wyświetlając listę najpopularniejszych i najczęściej pobieranych ról. Aby uzyskać więcej informacji na temat konkretnej roli, wystarczy na nią kliknąć.

W podręczniku możesz na przykład określić więcej niż jedną rolę.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Aby wyświetlić listę zainstalowanych ról, po prostu uruchom.

ansible-galaxy list

Wniosek

Role ułatwiają ponowne wykorzystanie i udostępnianie podręczników Ansible. W ten sposób oszczędzają użytkownikowi dużo czasu na pisaniu dużej ilości zbędnego kodu i spędzają zbyt dużo czasu, który zostałby wykorzystany na inne zadania administracyjne systemu. I to tyle w tym poradniku.