GNU/Linux >> Znalost Linux >  >> Linux

Jak spravovat statický a dynamický inventář hostitelů Ansible

Jak víme, že Ansible je nejvýkonnější automatizační nástroj které mohou snadno konfigurovat hostitele. Hlavní výhodou použití Ansible jako automatizačních nástrojů je to, že na hostitele nemusíme instalovat žádného agenta. Komunikace mezi Ansible serverem a jeho klienty nebo spravovanými hostiteli je bez agenta, funguje přes ssh mechanismus.

V terminologii Ansible se systém, do kterého instalujeme software ansible, nazývá „Control Node “ a servery, které jsou spravovány a konfigurovány serverem Ansible nebo řídicím uzlem, jsou známé jako „Spravovaný hostitel “. Položky Managed Hosts jsou uloženy v souboru inventáře hostitele, je to textový soubor na řídicím uzlu, který se skládá ze spravovaného názvu hostitele nebo IP adres. V Ansible  můžeme spravovat dva typy inventáře hostitelů, tj. statickýdynamické .

V tomto článku budeme diskutovat o tom, jak spravovat statický a dynamický inventář hostitelů v Ansible. Předpokládám, že v mém řídicím uzlu je již nainstalován software Ansible. Kdykoli nainstalujeme software ansible, vytvoří se výchozí soubor hostitele ansible s názvem “hosts “ ve složce “/etc/ansible ” V případě, že software Ansible není nainstalován na vašem serveru, postupujte podle níže

  • Jak nainstalovat Ansible (Automation Tool) na CentOS 8/RHEL 8
  • Jak nainstalovat nástroj Ansible Automation na CentOS 7.x

V tomto tutoriálu budu používat následující:

Jeden ovládací uzel –   control-node.example.com (192.168.0.10)

Dva spravovaní hostitelé – servera.example.com (192.168.0.20) a serverb.example.com (192.168.0.30)

Statický inventář hostitele

Statický inventář hostitele v Ansible je jako INI textový soubor, ve kterém každý deklaruje jednu skupinu hostitelů ( skupina hostitelů). Každá sekce začíná názvem skupiny hostitelů uzavřeným v hranatých závorkách ([]), poté jsou uvedeny položky hostitelů každého spravovaného hostitele ve skupině, každá na jednom řádku. Položky hostitele mohou hostit název nebo IP adresy spravovaných hostitelů. Pojďme vytvořit soubor inventáře s názvem „inventory“ ve složce „test-lab“ v domovském adresáři vašeho uživatele.

[[email protected] ~]$ mkdir test-lab
[[email protected] ~]$ cd test-lab/
[[email protected] test-lab]$ vi inventory
control-node.example.com
192.168.0.10

[webserver]
servera.example.com

[dbserver]
serverb.example.com

[datacenter:children]
webserver
dbserver

Uložte a ukončete soubor.

V inventárním souboru jsem vytvořil dvě skupiny hostitelů s názvem webserver a dbserver, kromě toho jsme vytvořili ještě jednu skupinu s názvem datacenter, která obsahuje skupiny skupin hostitelů. Inventáře hostitelů Anisble mohou zahrnovat skupiny hostitelských skupin, toho dosáhnete pomocí „:children Příklad přípony je uveden ve výše vytvořeném inventáři. Také není povinné umístit hostitele do skupiny, můžeme jednoduše umístit hostitele bez uvedení hostitelské skupiny, stejně jako záznam „control-node.exmaple.com“ v souboru inventáře

Udělejme základní operace s příkazem ansible odkazem na hostitele inventáře.

Chcete-li použít příkaz ansible pro správu hostitele, cesta k souboru inventáře hostitele musí být zadána pomocí „-i “.

$ ansible {host-pattern}  -i  /  –list-hosts

Příklad:1 Seznam všech spravovaných hostitelů

Chcete-li vypsat všechny spravované hostitele,  zadejte v příkazu ansible klíčové slovo „all“ místo vzoru hostitele, příklad je uveden níže

[[email protected] test-lab]$ ansible all -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (4):
    control-node.example.com
    192.168.0.10
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Dalším způsobem, jak vypsat seznam všech spravovaných hostitelů, je použít zástupný znak „*“.

[[email protected] test-lab]$ ansible '*' -i /home/linuxtechi/test-lab/inventory --list-hosts

Příklad:2 Seznam spravovaných hostitelů na základě skupiny hostitelů.

Místo vzoru hostitele

zadejte název hostitelské skupiny
[[email protected] test-lab]$ ansible webserver -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    servera.example.com
[[email protected] test-lab]$
[[email protected] test-lab]$ ansible datacenter -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (2):
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Příklad:3 Seznam spravovaných hostitelů na základě vzoru hostitelů se zástupnými znaky.

Vypište všechny hostitele, kteří jsou na doméně „*.example.com“

[[email protected] test-lab]$ ansible '*.example.com' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (3):
    control-node.example.com
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Seznam všech hostitelů, kteří jsou v síti „192.168.0.0“

[[email protected] test-lab]$ ansible '192.168.0.*' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    192.168.0.10
[[email protected] test-lab]$

Příklad:4 Pokročilý vzor hostitele, jako je zahrnutí a vyloučení

Kromě zástupných znaků nám Ansible umožňuje vytvářet složité vzory hostitelů pomocí logiky zahrnutí a vyloučení. Zahrnutí se provádí pomocí znaku „:“ k oddělení skupin v hostitelském vzoru, který označuje logiku NEBO.

Příklad vzoru zahrnutí hostitele

[[email protected] test-lab]$ ansible 'webserver:dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (2):
    servera.example.com
    serverb.example.com
[[email protected] test-lab]$

Příklad vzoru hostitelské křižovatky

‘:&’ představuje průnik dvou skupin v inventárním souboru

[[email protected] test-lab]$ ansible 'datacenter:&dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    serverb.example.com
[[email protected] test-lab]$

Příklad vzoru vyloučení hostitele

Vyloučení se provádí pomocí znaku „:“ ve spojení se znakem „!“

[[email protected] test-lab]$ ansible 'datacenter:!dbserver' -i /home/linuxtechi/test-lab/inventory --list-hosts
  hosts (1):
    servera.example.com
[[email protected] test-lab]$

Dynamický hostitelský inventář

Hostitelský inventář v Ansible lze generovat dynamicky. Zdroje informací o dynamickém inventáři zahrnují veřejné/soukromé poskytovatele cloudu, informace o ševcovském systému, databázi LDAP nebo databázi CMDB (Configuration Management). Ansible zahrnuje skripty, které zpracovávají dynamické informace o hostitelích, skupinách a proměnných od nejběžnějších poskytovatelů, jako jsou Amazon EC2, Cobbler, Rackspace a OpenStack.

U poskytovatelů cloudu by měly být informace o ověřování a přístupu definovány v souborech, ke kterým má skript přístup. Řada existujících skriptů je k dispozici na webu GitHub společnosti Ansible na adrese https://github.com/ansible/ansible/tree/devel/contrib/inventory, tyto skripty podporují dynamické generování inventáře na základě informací o hostiteli dostupných z velké platformy, jako je Openstack , AWS , Ovirt , Red Hat Satellite a OpenShift .

Můžeme napsat svůj vlastní program pro přizpůsobení dynamického inventáře v jakémkoli programovacím jazyce a musí se vrátit ve formátu JSON, když projdou vhodnými možnostmi. Aby Ansible mohl použít skript k načtení informací o hostitelích z externího inventárního systému, musí tento skript podporovat –list Parametr vrací hostitelskou skupinu a informace o hostitelích podobné hash/slovníku JSON. Příklad je uveden níže:

[[email protected] test-lab]$ ./inventoryscript --list
{
  "webservers" :["web1.example.com", "web2.example.com" ],
  "dbservers" :["db1.example.com", "db2.example.com"]
}

Skript vytvářející dynamický inventář musí být spustitelný, aby jej Ansible mohl používat.

Poznámka:Ansible podporuje použití více inventářů ve stejném běhu. Pokud buď hodnota předaná parametru ‚-i‘, nebo hodnota parametru inventáře v souboru /etc/ansible/ansible.cfg . Pokud existuje více souborů inventáře, prozkoumají se v abecedním pořadí. Proto je důležité, aby název souboru odpovídal názvu jiného souboru v abecedním pořadí, pokud jeho obsah závisí na obsahu jiného souboru.


Linux
  1. Jak zacházet s dynamickými a statickými knihovnami v Linuxu

  2. Jak nastavit statickou IP adresu a nakonfigurovat síť v Linuxu

  3. Jak spravovat vypršení platnosti uživatelského hesla a stárnutí v Linuxu

  1. Jak spravovat a vypisovat služby v Linuxu

  2. Jak nainstalovat a otestovat Ansible na Linuxu

  3. Jak nakonfigurovat statickou a dynamickou IP adresu v Arch Linuxu

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

  2. Jak importovat a spravovat loutkové moduly v Katello

  3. Jak spravovat vzdáleného hostitele Windows pomocí Ansible