GNU/Linux >> Znalost Linux >  >> Ubuntu

Ansible role a jak je používat v Playbooks

V průběhu psaní souborů Ansible playbook jste si mohli všimnout, že můžete znovu použít některý z kódů definovaných ve vašich stávajících playbookech. Můžete například znovu použít kód pro instalaci databázového serveru MariaDB na jednom spravovaném hostiteli s různými názvy hostitelů, uživateli a hesly pro jiného vzdáleného hostitele. To ušetří spoustu času a energie, které by byly vynaloženy při psaní nových souborů playbooku od začátku. A zde přichází na řadu koncept Ansible rolí.

Ansible role je koncept přeskupování úkolů do jednotlivých souborů, které se snáze spravují a manipulují. Každá role poskytuje sadu úkolů, proměnných a obslužných rutin – abychom zmínili několik –, které jsou nutné pro její implementaci. Role umožňují uživatelům reorganizovat dlouhé a složité struktury playbooků do jednodušších, kratších a přehlednějších souborů playbooků. Jak jsme zmínili dříve, role mají být opakovaně použitelné a vyvolání rolí v souboru playbooku zjednodušuje kód a odstraňuje duplicitu. Opakující se úlohy, jako je instalace a konfigurace aplikací, mohou být zabaleny do samostatných souborů a znovu použity na různých spravovaných hostitelích.

V této příručce se dozvíte, jak vytvářet a používat role Ansible v playbookech. Pro demonstraci vytvoříme roli, která nainstaluje webový server Apache a nakonfiguruje firewall tak, aby otevřel port 80.

Jak vytvořit roli Ansible

Začneme vytvořením jednoduché role Ansible. Chcete-li vytvořit roli, jednoduše použijte syntaxi příkazu níže, kde myrole je název role.

$ ansible-galaxy init myrole

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

$ ansible-galaxy init  test-role

Z výstupu zjistíme, že příkaz vytvoří testovací roli a ve výchozím nastavení obsahuje některé výchozí adresáře. Můžete použít strom příkaz k jejich zobrazení podle obrázku.

$ tree test-role

Pojďme si udělat stručný přehled toho, co každý adresář obsahuje

Výchozí ’ složka – Tento adresář obsahuje výchozí proměnné, které bude role vyžadovat. Tyto proměnné mají nejnižší prioritu, a proto je lze celkem snadno přepsat.

soubory ’ složka – Tato složka obsahuje soubory, které mají být zkopírovány do spravovaného nebo vzdáleného hostitele.

ovladače Složka ’ – Adresář obsahuje handlery, které jsou obvykle vyvolány direktivou ‚notify‘. Můžete se dozvědět více o obslužných nástrojích Ansible.

meta ’ složka – Skládá se z metadat role, například autora, závislostí atd.

Úkoly ’ složka – Obsahuje soubor YAML, který definuje seznam úloh, které má samotná role provést. Obsahuje main.yml soubor.

šablony Složka ’ – Adresář obsahuje soubory šablon, které lze upravit podle potřeby pro konfiguraci role.

testy Složka ’ – Integruje testování se soubory Ansible playbook.

The vars ’ složka – Obsahuje proměnné, které bude role později používat. role. Tyto proměnné mají vyšší prioritu ve srovnání s proměnnými ve „výchozích nastaveních ' adresář.

Pro demonstrační účely vytvoříme dvě role:

git role – Tím se nainstaluje nejnovější verze Git.

Apache role- Tím se nainstaluje webový server Apache

Vytvořte je následovně:

$ sudo ansible-galaxy init git
$ sudo ansible-galaxy init apache

Poté musíme definovat každou roli úpravou main.yml soubor v ‘úkoly složka v každé roli. Začněme definováním git role.

$ sudo vim git/tasks/main.yml

Definujte úlohu pro roli git, jak je znázorněno.

Uložte main.yml soubor a ukončete.

Dále definujte úlohu pro roli Apache.

$ sudo vim apache/tasks/main.yml

Zadejte úlohu, která nainstaluje webový server Apache.

Podobně uložte main.yml soubor a ukončete.

Vytvořte soubor s příručkou a zavolejte role

Jakmile budou úkoly pro každou roli definovány v main.yml soubor pro každou roli, vytvořte soubor playbooku a odkazujte na role, jak je znázorněno.

$ sudo vim roles_demo.yml

POZNÁMKA:

Musíte zadat úplnou cestu k roli v příručce.

role:

  • /cesta/k/roli

V tomto příkladu jsou role umístěny ve stejném adresáři jako soubor playbooku a stačí je nazvat jejich jmény.

Nakonec spusťte soubor playbooku.

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

Bude odkazováno na role definované v souboru playbooku a budou provedeny jejich příslušné úkoly. Zde Ansible nainstaluje webový server git i Apache.

Instalaci můžete ověřit spuštěním zobrazených příkazů.

$ git --version
$ apachectl -v

Jak jste si všimli, soubor playbooku je stručný a snadno sledovatelný, protože na úkoly byly odkazovány role specifikované v souboru playbooku.

Shrnutí

Dostupné role pomáhají při organizaci souborů playbooků a pomáhají vyhnout se duplicitě kódu. Mohou být znovu použity a odkazovány jinými soubory playbooků k provádění podobných úkolů na různých uzlech, čímž se šetří čas a energie, které by mohly být použity při psaní nových playbooků. Role celkově usnadňují práci.


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

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

  3. Jak používat Ansible k instalaci a konfiguraci Redis 6 na Debian 11

  1. Jak nainstalovat a používat TensorFlow na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Ansible na Windows

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

  1. Co je Umask a jak jej používat

  2. Jak nainstalovat a používat Wine na Ubuntu 20.04

  3. Jak nainstalovat a používat FFmpeg na Ubuntu 18.04