GNU/Linux >> Znalost Linux >  >> Ubuntu

Ansible Playbook:Jak vytvářet a konfigurovat Playbooky

Úvod

Ansible je nástroj Infrastructure as Code, který vám umožňuje spravovat a monitorovat řadu vzdálených serverů pomocí jediného řídicího uzlu.

S Ansible můžete spravovat vzdálené servery pomocí playbooků. Tyto příručky předávají pokyny vzdáleným serverům a umožňují jim provádět předdefinované úlohy.

V tomto tutoriálu si projdeme, co jsou to Ansible playbooky, jak fungují a jak je můžete vytvářet a spouštět.

Předpoklady

  • Systém Linux (používáme Ubuntu 20.04)
  • Přístup do příkazového řádku / okna terminálu
  • Ansible nainstalován a nakonfigurován

Co je Ansible Playbook?

Ansible playbook je seznam instrukcí pro úlohy, které jsou automaticky prováděny vzdálenými počítači v síti Ansible.

Ansible playbook se skládá z her. Hry jsou uspořádané sady úkolů, které jsou dokončeny po spuštění playbooku. Do jednoho playbooku můžete přidat více her.

Hry používají moduly k definování změn, které je třeba provést, aby byl úkol dokončen. Každý modul poskytuje rámec pro určitou kategorii úloh a lze jej přizpůsobit pomocí argumentů a proměnné .

Ansible playbooky se ukládají jako soubory .yaml, díky čemuž jsou flexibilní a snadno se používají.

Příručky se většinou používají pro:

  • Deklarování konfigurací.
  • Automatizace určitých opakovatelných úkolů, jejichž ruční provádění by trvalo příliš dlouho.
  • Spouštění úloh synchronně nebo asynchronně.

Proměnné Ansible Playbook

Příručky Ansible používají proměnné, které poskytují flexibilitu a snadné použití. Proměnné mohou býtzabudovány (jako jsou systémové informace) nebo definované uživatelem .

V Ansible playbooku jsou proměnné definovány pomocí vars klíčové slovo:

Ve výše uvedeném příkladu definujeme greeting proměnná s přiřazenou hodnotou Hello World! .

Chcete-li získat přístup k hodnotě, zadejte název proměnné greeting ve dvojitých složených závorkách:

Po spuštění playbook vytiskne zprávu Hello World!

Kromě proměnných s jednou hodnotou existuje několik dalších typů proměnných Ansible. Použití proměnných s poli , přiřaďte více hodnot jedné proměnné s následující syntaxí:

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

Ke konkrétní hodnotě přistupte pomocí {{ array_name[value number] }} , například:

Proměnné se slovníky zkombinovat více polí hodnot do jedné proměnné:

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

Nakonec speciální proměnné jsou předdefinovány Ansible a nemohou být nastaveny uživateli. Pomocí následujícího příkazu získáte seznam speciálních proměnných:

ansible -m setup hostname

Jak napsat Ansible Playbook?

Vytvořte si knihu Ansible pomocí libovolného textového editoru dostupného ve vašem systému. Vytvořte si například příručku s Nano:

sudo nano /path/to/playbook/directory/playbook_name.yaml

Ansible playbooky se řídí základními pravidly syntaxe YAML.

Příručka začíná třemi n-pomlčkami (--- ), za kterým následuje název playbooku, název skupiny vzdálených hostitelů, která spouští playbook, a další parametry, jako je become (spusťte playbook jako správce).

Další část obsahuje všechny uživatelem definované proměnné. Začíná to vars tag ve stejné úrovni odsazení jako v předchozí části, následovaný seznamem proměnných v dalším odsazení.

Nakonec seznam úkolů začíná tasks tag, s úrovní odsazení v závislosti na typu úlohy a použitých parametrech.

Syntaxe YAML vám umožňuje používat tři tečky ( ) pro ukončení playbooku. Ačkoli většina příruček končí tímto způsobem, není nutné, aby příručka fungovala správně.

Syntaxe Ansible Playbook

Některé důležité prvky syntaxe YAML, které je třeba mít na paměti při psaní příruček Ansible:

  • Při sestavování seznamů použijte mezeru mezi pomlčkami (- ) a položku seznamu.
  • Při použití key: value tvaru, za dvojtečkou musí následovat mezera.
  • Booleovské hodnoty mohou používat obě yes a no , stejně jako true a false .
  • Použijte mezeru následovanou # k označení komentáře.

Příklad Ansible Playbook

Pro tento příklad vytvoříme playbook v instalační složce Ansible:

sudo nano /etc/ansible/example_playbook.yaml

Tato příručka obsahuje následující prvky:

  • --- :Signalizuje začátek playbooku.
  • name :Definuje název pro Ansible playbook.
  • hosts :Definuje, kteří hostitelé spouštějí playbook. Ve výše uvedeném příkladu se playbook spustí na všech hostitelích zahrnutých v souboru inventáře.
  • become :Instruuje vzdáleného hostitele, aby spustil playbook jako správce. Použití této značky vyžaduje, abyste při spouštění playbooku zadali heslo správce pro vzdálený hostitel.
  • vars :Definuje proměnné – v našem případě proměnnou s názvem greeting s hodnotou Hello World! .
  • tasks :Seznam úkolů, které má playbook provést. Ve výše uvedeném příkladu první úloha vytvoří adresář s názvem example_playbook na vzdáleném hostiteli. Druhá úloha vytvoří nový textový soubor v tomto adresáři a umístí hodnotu greeting proměnná jako obsah.
  • ... :Signalizuje konec playbooku.

Jak se spouští příručka?

Ansible playbooky se spouštějí v pořadí, shora dolů. To platí jak pro jednotlivé hry, tak pro úkoly uvedené v těchto hrách.

Ve výše uvedeném příkladu provádí příručka následující akce v tomto pořadí:

  1. Definuje seznam proměnných.
  2. Vytvoří novou složku na vzdáleném hostiteli.
  3. Vytvoří textový soubor v nové složce.
  4. Přidá hodnotu proměnné jako obsah souboru.

Jak spustit Ansible Playbook

Chcete-li spustit knihu Ansible, použijte:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

Pro účely tohoto článku budeme používat example_playbook.yaml pomocí -K argument, který nám umožňuje zadat heslo uživatele root pro vzdáleného hostitele a spustit playbook jako admin:

ansible-playbook /etc/ansible/example_playbook.yaml -K

Jak ověřit příručky

Spusťte playbook v režimu kontroly pomocí --check příznak pro ověření. To vám umožní vidět změny, které by vaše příručka provedla, aniž byste je skutečně provedli:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

Pro podrobnější přehled potenciálních změn použijte kombinaci --check a --diff příznaky:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

Užitečné tipy pro Ansible Playbook

Existuje několik způsobů, jak usnadnit čtení a používání příruček Ansible:

Vždy pojmenovávejte hry a úkoly

Použijte name klíčové slovo pro definování názvů her a úkolů. Přidáním krátkých a srozumitelných názvů je mnohem snazší na první pohled zjistit, co každá hra nebo úkol dělá.

Použijte komentáře

Ujistěte se, že přidáváte spoustu komentářů, zejména při definování proměnných a úkolů.

Podrobné komentáře pomáhají učinit příručku ještě jasnější a srozumitelnější. Pomáhají také komukoli dalšímu, kdo používá vaše příručky.

Formátujte příručku pro snadné použití

Aby učebnice fungovala, musíte dodržovat pravidla pro odsazení, ale stále můžete používat mezery (jako jsou prázdné řádky mezi úkoly), aby se příručka lépe četla.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Ansible na Fedoře 35

  2. Jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8

  3. Jak používat Ansible k instalaci a konfiguraci Redis 6 na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat Ansible na Ubuntu 18.04 LTS

  2. Jak vytvořit Ansible Playbook

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

  1. Jak vytvořit soubor v Ansible

  2. Jak nainstalovat a nakonfigurovat Ansible na Windows

  3. Jenkins Shared Library:Jak vytvářet, konfigurovat a používat