GNU/Linux >> Znalost Linux >  >> Linux

Úvod do faktů Ansible

Ansible fakta jsou data shromážděná o cílových uzlech (hostitelské uzly, které je třeba nakonfigurovat) a vrácená zpět do uzlů řadiče. Dostupná fakta jsou uložena ve formátu JSON a používají se k přijímání důležitých rozhodnutí o úkolech na základě jejich statistik. Fakta jsou v ansible_facts proměnnou, kterou spravuje Ansible Engine. Při synchronizaci s hostiteli v souladu s údaji v reálném čase hrají důležitou roli dostupná fakta .

[ Také by se vám mohlo líbit: Úvod do Ansible Tower ]

Co přesně jsou fakta Ansible a jak se používají?

Dostupná fakta jsou data a vlastnosti systému specifické pro hostitele, ke kterým se připojujete. Faktem může být IP adresa, informace o systému BIOS, informace o softwaru systému a dokonce i informace o hardwaru. Dostupná fakta pomáhají administrátorovi spravovat hostitele na základě jejich aktuálního stavu, spíše než provádět akce přímo bez jakýchkoli informací o stavu systému.

Zde je scénář:Na všechny hostitele Linuxu musíte nainstalovat webový server Apache. Víte, že hostitelé na platformě Red Hat Enterprise Linux (RHEL) spolupracují s Red Hat Package Manager (RPM) a yum/dnf . Jiné distribuce Linuxu používají své vlastní správce balíčků, a proto by nebylo možné provádět stejnou úlohu na různých systémech bez úprav a odkazu na tyto rozdíly. Názvy balíčků se také liší mezi distribucemi. Například na systémech RHEL je balíček webového serveru Apache httpd, zatímco v jiných distribucích se jmenuje apache2.

Zde je příručka Ansible, která tento problém demonstruje:

- hosts: all
  tasks:
  - package:
      name: "httpd"
      state: present
    when ansible_facts["os_name"] == "RedHat"
  - package:
      name: "apache2"
      state: present
    when ansible_facts["os_name"] == "Ubuntu"

Zde skript shromáždí informace o systému pomocí Ansible facts a podle toho provede operaci. Při instalaci na systémy RHEL automaticky přeskočí balíček založený na Ubuntu a naopak. Podobně můžete použít fakta Ansible k provedení operace, pokud má systém k dispozici minimální množství zdrojů.

Stručně řečeno, pomocí faktů Ansible může správce systému učinit Ansible chytřejší tím, že určí parametry, kdy úkoly provádět a kdy ne.

Přístup k faktům

Dostupná fakta používají setup modul pro shromažďování faktů pokaždé před spuštěním příruček.

Použití ad-hoc příkazů Ansible

1. Přístup k Ansible faktům pomocí ad-hoc příkazů

setup modul načte všechny podrobnosti ze vzdálených hostitelů do našich uzlů kontroléru a uloží je přímo na naši obrazovku, aby byla fakta viditelná pro uživatele.

ansible all -m setup

2. Odfiltrování konkrétní hodnoty z Ansible facts

Zde je setup modul se používá k načtení faktů o systému a dále použije filtr argument pro zobrazení hodnoty z faktů Ansible.

ansible all -m setup -a "filter=ansible_cmdline"

Poznámka :Dostupná fakta se získávají pouze při práci s učebnicemi. Pro přístup k faktům Ansible pomocí ad-hoc příkazů použijte setup modul.

Použití příručky Ansible

Abychom získali přístup k proměnným z faktů Ansible v příručce Ansible, musíme použít skutečný název bez použití ansible klíčové slovo.

ansible_facts["ansible_system"] ❌

ansible_facts["systém"] ✔️

gather_facts modul z příručky Ansible spustí setup modul ve výchozím nastavení na začátku každé příručky, aby shromáždil fakta o vzdálených hostitelích.

3. Přístup k faktům pomocí Ansible playbook

Získejte fakta Ansible a zobrazte je pomocí příručky.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts

4. Přístup ke konkrétní skutečnosti pomocí Ansible playbook

Načítání faktů Ansible, jejich filtrování a zobrazování pomocí příručky.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts["cmdline"]

Dostupná fakta a datový typ

Dostupná fakta jsou uložena ve formátu JSON a lze je rozdělit do tří hlavních kategorií:

Seznam :Ukládá seznam položek a uložené informace jsou zapsány do hranatých závorek [] . Většinou se jedná o fakta, která mohou mít více hodnot, např. system_capablities . Seznam je přístupný pomocí hranatých závorek a zadáním indexu.

    ansible_facts["all_ipv6_addresses"][1]
    ansible_facts["all_ipv6_addresses"][2]

Slovník :Ukládá data jako kolekci párů klíč–hodnota a informace jsou uloženy ve složených závorkách {} . Většinou se jedná o fakta, která v sobě obsahují dílčí fakta, např. memory_mb . Do slovníku se přistupuje pomocí operátoru tečka.

    ansible_facts.memory_mb.real

Ansible Unsafe Text :Tento typ proměnné nemá žádnou podčást a ukládá data přímo, např. machine . Ansible Unsafe Text je přístupný přímo pomocí názvu faktu.

    ansible_facts["machine"]

Použijte type_debug filtr pro kontrolu datového typu pro fakta Ansible.

- hosts: all
  tasks:
  - debug:
      var: ansible_facts["all_ipv6_addresses"]|type_debug
  - debug:
      var: ansible_facts["memory_mb"]|type_debug
  - debug:
      var: ansible_facts["machine"]|type_debug

type_debug filtr vyzve k datovému typu zadaný fakt, aniž by vypsal hodnotu faktu.

[ Hledáte více o automatizaci systému? Začněte s The Automated Enterprise, bezplatnou knihou od Red Hat. ] 

Sbalit

Dostupná fakta jsou data o systému, který chcete konfigurovat. Díky těmto skutečnostem je váš systém Ansible inteligentní tím, že poskytuje podmínky, kdy zpracovat nějaký úkol. Můžete také zpracovat tak, že neuvedete nebo nepoužijete fakta Ansible, ale to by práci správce systému učinilo hektičtější, protože skript může selhat nebo změnit některé soubory, které nebyly nikdy zamýšleny k úpravě.

Další informace o faktech Ansible naleznete v oficiální dokumentaci.


Linux
  1. Úvod do editoru vi

  2. Deconstructing ansible playbook

  3. Pochopení YAML pro Ansible

  1. Stručný úvod do rolí Ansible pro správu systému Linux

  2. Úvod do iptables

  3. Plesk:Úvod

  1. Úvod do GNU Autotools

  2. Programovací jazyk C - Úvod

  3. Ansible:sudo bez hesla