V tomto článku se zabývám předpoklady pro instalaci Ansible, instalace Ansible pomocí satelitního serveru, nastavením Ansible pro automatizaci, úvodem do playbooků, inventárními soubory a projdu případ použití pro Ansible. Pokud jste tak již neučinili, podívejte se na první článek Demystifying Ansible for Linux sysadmins.
Předpoklady pro instalaci Ansible
Chcete-li ve svém prostředí používat Ansible, musíte nastavit uzel správy (nazývaný také řídicí uzel ), kam nainstalujete Ansible. Ansible můžete nainstalovat na jakýkoli počítač s Pythonem 2 (verze 2.7) nebo Pythonem 3 (verze 3.5 a vyšší). S RHEL 7 máme standardně nainstalován Python 2.7 a s RHEL 8 máme standardně Python 3.6. Chcete-li používat všechny moduly Ansible, musíte také nainstalovat Python na spravované uzly. Ve výchozím nastavení Ansible používá SSH ke komunikaci se spravovanými uzly. Spravované uzly mohou ke komunikaci používat také SFTP nebo SCP, což lze upravit v konfiguračním souboru Ansible (ansible.cfg
).
Pokud používáte RHEL Satellite k instalaci Ansible na systém RHEL 8, ujistěte se, že jste přidali úložiště pro Red Hat Ansible Engine 2.9 pro RHEL 8 x86_64 (RPM) z GUI Satellite a synchronizovali úložiště z CDN do satelitu. V řídicím uzlu se musíte zaregistrovat na satelitním serveru, povolit nástroje Satellite a povolit úložiště Ansible pomocí následujících příkazů:
# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.
# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.
Instalace Ansible na RHEL
Chcete-li nainstalovat Ansible na řídicí uzel RHEL 8 po registraci na satelitním serveru, spusťte příkaz yum install ansible
. Tento příkaz nainstaluje šest balíčků:
- Nainstalujte Ansible z úložiště Ansible:
- Ansible
- Instalovat závislosti:
- sshpass
- Python3-markupsafe
- Python3-jinja2
- Python3-babel
- Nainstalujte slabou závislost:
- Python3-jmespath
Po instalaci spusťte ansible --version
příkaz ke kontrole nainstalované verze Ansible.
# ansible --version
ansible 2.9.6
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible
executable location = /usr/local/bin/ansible
python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]
Po instalaci můžete změnit výchozí nastavení Ansible úpravou parametrů v ansible.cfg
soubor.
[ Mohlo by se vám také líbit čtení: Obnovení mého vzrušení z práce s Ansible ]
Nastavení Ansible pro automatizaci
Nyní, když je Ansible nainstalován, musíte nakonfigurovat autentizaci založenou na klíči SSH (která používá asymetrickou kryptografii) z řídicího uzlu na spravované uzly, aby Ansible fungoval bez problémů. Na řídicím uzlu budete muset vygenerovat pár klíčů a přenést veřejný klíč do spravovaných uzlů. Použijte příkaz ssh-keygen
pro vygenerování páru klíčů. Klíče jsou uloženy ve vašem domovském adresáři v .ssh
složka. Výchozí klíče se jmenují id_rsa.pub
(veřejný klíč) a id_rsa
(soukromý klíč). Chcete-li na spravovaných uzlech povolit ověřování na základě klíče SSH, spusťte ve svém řídicím uzlu následující příkaz:
# ssh-copy-id <target user>@<IP address/Hostname of the managed node>
Všimněte si, že to bude vyžadovat jednorázové heslo pro cílového uživatele ve spravovaném uzlu. Příkaz ssh-copy-id
zkopíruje veřejný klíč řídicího uzlu do authorized_keys
soubor na spravovaných uzlech.
Po konfiguraci můžete přidat vzdálené uzly do souboru inventáře a provést test ping pomocí následujícího příkazu Ansible ad-hoc:
# ansible all -m ping -i <inventory-file>
Další informace o příručkách
Playbooks jsou soubory, kde jsou zapsány funkce Ansible. Příručky jsou napsány ve formátu YAML. YAML je zkratka pro Yet Another Markup Language. Příručky jsou jednou ze základních funkcí Ansible a říkají Ansible, co má provést. Jsou jako seznam úkolů pro Ansible, který obsahuje řadu úkolů. Příručky jsou stavebními kameny pro všechny případy použití Ansible. Pro každou akci můžete vytvořit nezávislé modulární herní knihy Ansible. Tyto modulární příručky můžete začlenit do jedné hlavní příručky pomocí modulu import_playbook . Tím je zajištěna opětovná použitelnost příruček. Můžete použít proměnné v playbooku a předat tyto proměnné z inventáře Ansible, zahrnutých souborů a za běhu. Některé z klíčových funkcí Ansible playbooku zahrnují:
- Schopnost vykonávat úkoly jako různí uživatelé na základě stávají metoda
- Ovládejte, kde se mají jednotlivé úkoly provádět na základě hostitelů ve vašem inventáři
- Určete v kódu podmínky a smyčky
Příklad:
Další informace o inventáři
Inventář je seznam uzlů, které může Ansible spravovat. V souboru inventáře můžete zadat jednotlivé spravované hostitele nebo vytvořit skupinu hostitelů. Každému spravovanému hostiteli můžete přiřadit proměnné, které může playbook používat při provádění úloh na tomto konkrétním hostiteli. Výchozí soubor inventáře je /etc/ansible/hosts
, ale doporučuje se vytvořit si vlastní soubor inventáře a volat jej během provádění playbooku pomocí -i
možnost příkazu. Soubory inventáře mohou být ve formátu INI nebo YAML. Můžete udržovat statický soubor inventáře nebo dynamický seznam hostitelů.
Příklad:
# cat hosts-b2b
[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3
[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5
[dbservers]
b2bmasterdb
b2bslavedb
Případ možného použití
Pojďme prozkoumat případ použití Ansible pro monitorování systému. Můžeme vytvořit příručky pro různé monitorovací úlohy související se systémovým administrátorem, včetně:
- Sledování využití systému souborů a upozornění e-mailem, pokud je místo na disku využito z více než 90 %
- Dostupnost aplikace a portu
- Dostupnost databáze připojením a dotazem na databázi
- Dostupnost adresy URL pomocí uri modul a e-mailová upozornění, pokud je návratový kód větší než 200. Můžete také použít funkce opakování a zpoždění v uri modul, abyste měli dvojnásobnou jistotu
- Dostupnost služby, nahlaste její výpadek a pokuste se ji restartovat
- Zkontrolujte verze komponent, abyste měli aktuální inventář
- Sledujte dobu provozu systému a odešlete upozornění e-mailem, pokud systém není dostupný
[ Potřebujete více o Ansible? Absolvujte bezplatný kurz technického přehledu od společnosti Red Hat. Ansible Essentials:Jednoduchost v technickém přehledu automatizace. ]
Sbalit
Tento článek obsahuje příklady instalace Ansible, nastavení Ansible, vytváření playbooků a správu inventáře. Zůstaňte naladěni na další články o automatizaci pomocí Ansible.