GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit Ansible role a používat je v Playbooku

Ansible je opensource nástroj pro správu a orchestraci konfigurace, který usnadňuje automatizaci úloh IT ve vícevrstvém IT prostředí. Pomocí jediného příkazu můžete konfigurovat více serverů a nasazovat aplikace, aniž byste se museli přihlašovat ke každému ze serverů a provádět konfiguraci sami. Tím Ansible zjednodušuje úkoly, které by jinak byly časově náročné a únavné.

S nárůstem počtu souborů playbooků provádějících různé automatizační úlohy se věci mohou trochu zkomplikovat. A to je místo, kde přicházejí role Ansible.

Co je to role Ansible?

Ansible role je koncept v Ansible, který se zabývá spíše myšlenkami než událostmi. Role je v podstatě úroveň abstrakce, která se používá ke zjednodušení psaní souborů playbooku. Role poskytuje kostru pro opakovaně použitelné komponenty, jako jsou proměnné, moduly, úkoly a fakta, které lze načíst do souboru Playbook.

Praktická aplikace

Abyste lépe porozuměli tomu, jak se role používají, zvažte scénář, ve kterém máte na 2 vzdálených uzlech provést 8 úkolů. Jedním přístupem by bylo definovat všechny úlohy, které mají být provedeny na vzdálených hostitelích, v jediném souboru playbooku. To je však zdlouhavé a s největší pravděpodobností to zvýší složitost playbooku. Lepším přístupem by bylo vytvořit 8 samostatných rolí, přičemž každá role bude provádět jeden úkol a později tyto role zavolat v souboru ansible-playbook.

Jednou z největších výhod používání rolí je, že každá role je na druhé nezávislá. Provedení jedné role nezávisí na provedení jiné role. Role lze také upravit a znovu použít, čímž odpadá nutnost přepisování her a úkolů v souboru Playbook.

Předpokládejme tedy, že chcete vytvořit soubor playbook pro instalaci zásobníku LAMP na server Debian. Lepší způsob, jak toho dosáhnout, je začít vytvořením 3 samostatných rolí, z nichž každá nainstaluje Apache, MariaDB a PHP na vzdáleném hostiteli. Poté napište playbook a zavolejte role v souboru playbooku. Předpokládejme, že máte druhý server Debian, na který potřebujete nainstalovat Drupal CMS. Místo opětovného přepisování rolí můžete jednoduše znovu použít 3 role, které jste vytvořili dříve, a přidat další role pro instalaci Drupalu.

Chápeš drift?

Nyní se podívejme, jak můžete vytvořit role Ansible.

Jak vytvořit Ansible role

Chcete-li vytvořit ansible role od začátku, spusťte příkaz ansible galaxy, příklad je uveden níže:

$ ansible-galaxy init název-role

Chcete-li například vytvořit roli s názvem my-role, vyvolejte příkaz.

$ ansible-galaxy init my-role

Na obrazovce výše příkaz vytvoří adresář my-role. Tento adresář role obsahuje ve výchozím nastavení následující adresáře nebo složky.

  • Složka ‚defaults‘ – obsahuje výchozí proměnné, které bude role používat.
  • Složka „files“ – Obsahuje soubory, které může role nasadit.
  • Složka ‚handlers‘ – obsahuje ovladače, které může tato role používat.
  • složka „meta“ – Obsahuje soubory, které vytvářejí závislosti rolí.
  • Složka „tasks“ – Obsahuje soubor YAML, který vysvětluje úkoly pro samotnou roli. Obvykle je to soubor main.yml.
  • Složka ‚templates‘ – obsahuje soubory šablon, které lze upravit a přidělit vzdálenému hostiteli, který je zřizován.
  • Složka „tests“ – integruje testování se soubory Ansible playbook.
  • Složka „vars“ – Obsahuje proměnné, které bude role používat. Můžete je definovat v souboru playbooku, ale doporučujeme je definovat v tomto adresáři.

Chcete-li zobrazit strukturu adresáře role, spusťte příkaz stromu následovaný názvem role.

$ tree <role-name>

Nyní pro ukázku vytvoříme tři dostupné role následovně:

  • Role předpokladů – Instaluje git
  • Role mongodb – Nainstaluje databázový stroj MongoDB
  • Role Apache – Nainstaluje webový server Apache

Takže pomocí stejné syntaxe, kterou jsme použili dříve, vytvoříme role následovně:

$ sudo ansible-galaxy init prerequisites
$ sudo ansible-galaxy init mongodb
$ sudo ansible-galaxy init apache

Dalším krokem je definování každé role, kterou jste vytvořili. Chcete-li toho dosáhnout, musíte upravit soubor main.yml umístěný ve složce „úkoly“ pro každou roli.

role —>  úkoly —> main.yml

Chcete-li například upravit roli předpokladů, přejděte podle obrázku:

$ cd prerequisites/tasks/

Poté upravte soubor main.yml.

$ sudo vim main.yml

Role pro instalaci git je definována takto:

- name: Install git
  apt:
     name: git
     state: present
     update_cache: yes

Pro MongoDB máme 2 úkoly. Instalace MongoDB a spuštění démona Mongod.

- name: Install MongoDB
  apt:
     name: mongodb
     state: present
     update_cache: yes

- name: Start Mongod daemon
  shell: "mongod &"

A konečně pro webový server Apache:

- name: install Apache web server
  apt:
     name=apache2
     state=present
     update_cache=yes

Nakonec vytvoříme soubor playbooku s názvem stack.yml a zavoláme role, jak je znázorněno.

---
- hosts: all
  become: yes
  roles:
        -  prerequisites
        -  mongodb
        -  apache

Jak můžete vidět, soubor playbooku vypadá docela jednoduše ve srovnání s definováním jednotlivých úloh pro hostitele.

Chcete-li zajistit, aby naše role fungovaly podle očekávání, spusťte soubor ansible playbook, jak je znázorněno.

$ sudo ansible-playbook /etc/ansible/stack.yml

Příručka provede všechny zobrazené role.

Abychom zajistili, že byly balíčky úspěšně nainstalovány, zkontrolujeme jejich verze, jak je uvedeno:

$ mongod --version
$ apachectl -v
$ git --version

Výše uvedený výstup potvrzuje, že se role skutečně úspěšně provádějí a že balíček byl nainstalován. Perfektní!

Konec:

Ansible role zjednodušují soubory playbooků, zvláště když máte více úloh, které je třeba provést na několika hostitelích. Navíc můžete znovu použít role pro více hostitelů, aniž byste museli upravovat soubor playbooku. Pokud vám tato příručka přišla užitečná, pošlete nám zprávu a sdílejte ji se svými přáteli.


Linux
  1. Jak nainstalovat a používat Ansible na Debian 11

  2. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu

  3. Vytvářejte a rušte role v PostgreSQL

  1. Jak používám Ansible a anacron pro automatizaci

  2. Jak vytvořit a používat subdomény

  3. Jak vytvořit Ansible Playbook

  1. Ansible Playbook:Jak vytvářet a konfigurovat Playbooky

  2. Jak používat značky v Ansible Playbook (příklady)

  3. Jak stáhnout a používat role Ansible Galaxy v Ansible Playbook