GNU/Linux >> Znalost Linux >  >> Linux

Jak používat proměnné v Ansible Playbook

Pokud jste programovali v Pythonu, Javě, C, C++ nebo v jakémkoli jiném programovacím jazyce, pak proměnné nejsou cizí. Stejně jako v programovacích jazycích se proměnné v Ansible používají k uložení hodnoty.

V Ansible poskytují proměnné tolik potřebnou flexibilitu v Playbookech, šablonách a inventářích, jak později uvidíme v tomto tutoriálu. Vestavěné proměnné lze použít k poskytování systémových informací, jako je název hostitele, architektura systému, rozhraní atd. Proměnné lze také použít k nahrazení řetězců a také v smyčkách pro procházení dané sady hodnot.

Platný název proměnné se skládá z následujících znaků

  • Dopisy
  • Čísla
  • Podtržítka
  • Kombinace libovolných dvou nebo všech výše uvedených

Proměnná BY VŽDY MĚLA ZAČÍNAT PÍSMENEM  A NESMÍ OBSAHOVAT ŽÁDNÉ MEZERY.

Mezi příklady přijatelných názvů proměnných patří:

  •  otočný talíř
  •  otočný stůl
  •  otočný talíř01
  •  otočný stůl_01

Níže uvedené názvy se nekvalifikují jako platné názvy proměnných

  •   otočný stůl
  •  otočný stůl
  •  01točna
  •  01

Podívejme se nyní na různé případy použití proměnných v Ansible

Proměnné v Příručkách

Jak víte, Playbook je sbírka her nebo úkolů, které mají být provedeny na vzdáleném systému. V příručkách jsou proměnné užitečné při určování toho, jak lze úkoly provádět. Přiřazení hodnoty proměnné v playbooku je docela snadné a přímočaré.

Začněte voláním vars klíčové slovo pak zavolejte název proměnné následovaný hodnotou, jak je uvedeno.

--- - hostitelé:všechny varianty:pozdravy:Ahoj kluci! tasky:- name:Ansible Variable Basic Usage debug:msg:"{{ salutations }}"

Ve výše uvedené příručce je název proměnné  salutations a hodnota je Ahoj světe! Když je playbook spuštěn, hodnota playbooku je přístupná umístěním proměnné mezi složené závorky, jak je znázorněno výše. Po spuštění playbook vytiskne zprávu „Ahoj kluci “ na terminálu.

Proměnné s poli

Můžete použít pole a přiřadit je k proměnným, jak je uvedeno v syntaxi níže:

vars:

název pole:

– hodnota1

– hodnota2

Například níže uvedená příručka obsahuje pole 5 jmen studentů uložených v proměnné nazvané studenti. Ke jménům studentů můžete přistupovat pomocí indexování (jako v polích v jakémkoli jiném programovacím jazyce)  Chcete-li například získat jméno ‚Arthur‘ ze seznamu polí, použijte syntaxi studentů [2], jak je uvedeno níže.

- hostitelé:všechny varianty:studenti:- Mark - Melisa - Arthur - Kevin - Lisa úkoly:- jméno:Ansible List variable Příklad ladění:msg:"{{ students[2] }}"

Proměnné se slovníky

Ze seznamu Array můžete dále definovat každou z položek pomocí páru klíč hodnota tvořící to, co nazýváme seznam slovníků. Syntaxe je uvedena níže

vars:

název pole:

název_slovníku1:

hodnota1:hodnota položky1

hodnota2:hodnota položky2

název_slovníku2:

hodnota1:hodnota položky1

hodnota2:hodnota položky2

Pomocí našeho předchozího příkladu můžeme mít seznamy slovníků níže

- hostitelé:všechny  vars:  studenti:         - Označení:             město:Melbourne             adresa:0045-0987-8642 - Angela:                 5 5 5 6 – 7            6       

Pro přístup ke slovníku jednoduše přidejte úkol níže

  úkoly:   - ladění:       var:studenti

Proměnné v souborech inventáře

Pokud máte různé hostitelské systémy, které sdílejí podobné atributy nebo hodnoty, můžete definovat to, čemu říkáme skupinové proměnné. Ty se používají k přiřazení atributů, které jsou společné všem hostitelům.

Například:

Předpokládejme, že máme 2 webové servery:webserver_1 a webserver_2 které oba naslouchají portu 443 a jejichž ntp server je us.pool.ntp.org. Soubor inventáře se zobrazí takto:

[web_servers]webserver_1webserver_2[web_servers:vars]http_port=443ntp_server=us.pool.ntp.org

V souboru YAML playbook by to bylo znázorněno takto

   web_servers:    hosts:       web_server_1:       web_server_2:         vars:          http_port=80           ntp_server=us.pool.ntp.org

První část definuje vzdálené hostitele, kterými jsou webserver_1 a webserver_1 , zatímco druhá část seskupuje společné atributy mezi dvěma servery. To přichází jako velmi pohodlný způsob aplikace proměnných, které jsou společné pro více hostitelských systémů.

Proměnné hostitele a skupiny

Ačkoli můžete zadat proměnné v souboru inventáře, standardní praxe odrazuje od ukládání proměnných do souboru inventáře. Zde přichází na řadu soubory proměnných hostitele a skupiny.

V souboru hostitelských proměnných se proměnná vztahuje pouze na jeden hostitelský systém v souboru inventáře. Soubor hostitelské proměnné je obvykle uložen v host_vars adresář, který je obvykle uveden v /etc/ansible/ cesta.

Zvažte soubor inventáře níže, kde máme 2 servery, z nichž každý používá jiné ntp servery

[web_servers]webserver_1  ntp_server=uk.pool.ntp.orgwebserver_2  ntp_server=de.pool.ntp.org

Namísto zadání proměnné ntp_server v souboru inventáře vytvořte 2 soubory hostitelských proměnných v adresáři host_vars s názvy souborů odpovídajícími každému z názvů hostitelů hostitelských systémů:

# vim /etc/ansible/host_vars/webserver_1---ntp_server=uk.pool.ntp.org# vim /etc/ansible/host_vars/webserver_2---ntp_server=de.pool.ntp.org

Pokud hostitelské systémy sdílejí stejné hodnoty, vytvořte soubor proměnných skupiny v group_vars adresář. Název souboru proměnné skupiny by měl odpovídat skupině hostitelů

Zvažte soubor inventáře níže

[web_servers]webserver_1webserver_2[web_servers:vars]ansible_user=rootansible_port=22

Druhou sekci lze definovat jako soubor v adresáři group_vars, jak je znázorněno. To by mělo být v adresáři /etc/ansible. Pamatujte, že název souboru by měl být stejný jako název skupiny.

# vim /etc/ansible/group_vars/web_servers---ansible_user=rootansible_port=22

Zde budou proměnné přístupné všem hostitelům skupiny s názvem  web_servers.

Speciální proměnné v Ansible Playbook

Další kategorií proměnných jsou speciální proměnné. Jedná se o integrované proměnné, které uživatel nemůže nastavit a které Ansible vždy přepíše. Chcete-li získat seznam jedinečných názvů systémových proměnných, spusťte příkaz

# ansible -m setup název hostitele

Příklady takových speciálních proměnných zahrnují:

  • ansible_all_ipv4_addresses
  • ansible_architecture,
  • ansible_bios_version,
  • ansible_os_family,
  • ansible_distribution,

Tím se zobrazí výstup ve formátu JSON

# ansible -m setup localhost

Díky flexibilitě a snadnému použití slouží proměnné k zásadnímu účelu jak v playbookech, tak v souborech inventáře. Vyhýbají se zbytečnému opakování a výrazně usnadňují život správce systému.

Přečtěte si také: Jak používat smyčky v Ansible Playbook

Přečtěte si také :Jak používat Ansible Vault k zabezpečení citlivých dat


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

  2. Jak používat Ansible k nastavení monitorování systému pomocí Prometheus

  3. Jak nainstalovat softwarové balíčky pomocí Ansible playbooku

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

  2. Jak vytvořit Ansible Playbook

  3. Jak používat atomové proměnné v C?

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

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

  3. Jak předat další proměnné do příručky Ansible