Ak ste správcom systému, je dôležité, aby ste mali konzistentný spôsob správy všetkých serverov a počítačov, ktoré používate. Systémy na správu konfigurácie môžu tento proces do veľkej miery zjednodušiť. Efektívne spravujú všetky systémy z centrálneho miesta.
V systéme Linux je k dispozícii viacero systémov na správu konfigurácie. Napríklad Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine atď. Zatiaľ čo nástroje ako Puppet a Chef bývajú zložitejšie a pokročilejšie, Ansible ponúka jednoduchosť a ľahké používanie. Na to, aby Ansible fungoval, nemusíte na uzly inštalovať žiadny dodatočný klientsky softvér. Namiesto toho Ansible používa SSH na správu a automatizáciu systémov. Ansible je open-source softvér. Je tiež vysoko škálovateľný, konzistentný a spoľahlivý.
Tento návod ukazuje, ako nainštalovať a nakonfigurovať Ansible na Ubuntu 20.04.
Ansible na Ubuntu
Ansible dokáže realizovať tri typy automatizácie:
-
Provisioning: Dokáže vytvoriť rôzne servery podľa potrieb infraštruktúry.
-
Správa konfigurácie: Dokáže vykonávať rôzne zmeny konfigurácie serverov. Napríklad spúšťanie a zastavovanie služieb, inštaláciu aplikácií a aktualizácií, implementáciu bezpečnostných pravidiel atď.
-
Nasadenie aplikácií: Uľahčuje DevOps vďaka automatizovanému nasadzovaniu interne vyvinutých aplikácií do produkčného systému.
Ansible dokáže dokonale fungovať v takmer akomkoľvek IT prostredí – či už ide o hostované alebo tradičné servery, virtualizačné platformy alebo cloud. Podporuje tiež správu rôznych systémov, ako sú databázy, siete, brány firewall, úložné zariadenia a mnohé ďalšie. CloudSigma tiež podporuje Ansible pre našu cloudovú infraštruktúru.
Požiadavky
Pre tento návod budeme potrebovať niekoľko strojov:
-
Riadiaci uzol: Riadiaci uzol je centrálny uzol, ktorý sa pripája ku všetkým hostiteľským uzlom, zadáva úlohy a spravuje rôzne aspekty systému. Riadiaci uzol môže byť čokoľvek – lokálny počítač alebo vzdialený server.
-
Hostiteľský uzol: Hostitelia Ansible sú stroje, ktoré môže riadiaci uzol Ansible automatizovať.
Ako napovedá názov návodu, očakáva sa, že všetky tieto stroje budú nakonfigurované s Ubuntu 20.04 s najnovšími balíkmi. Tu je rýchly návod na nastavenie servera Ubuntu. Keďže Ansible používa na pripojenie k strojom SSH, všetky hostiteľské uzly musia mať správne nastavené SSH kľúče s riadiacim uzlom. Uistite sa, že všetky hostiteľské uzly majú verejný SSH kľúč riadiaceho uzla pridaný do súboru authentication_keys. Podľa nášho návodu sa dozviete, ako generovať a pridávať SSH kľúče na servery Linux.
Krok 1: Inštalácia Ansible
V prípade Ubuntu nie je potrebná žiadna dodatočná konfigurácia balíkov alebo repozitárov. Ansible je priamo dostupný z oficiálnych serverov s balíkmi pre Ubuntu. Vykonávanie akýchkoľvek zmien na úrovni systému vyžaduje administratívny prístup – používateľa root alebo iného používateľa s oprávneniami sudo. Súbor sudoers spravuje oprávnenia sudo pre používateľov a skupiny.
Najprv nainštalujeme Ansible na počítač, ktorý bude slúžiť ako riadiaci uzol. Ak chcete nainštalovať Ansible na riadiaci uzol, spustite nasledujúce príkazy:
|
1 |
sudo apt update |

|
1 |
sudo apt install ansible -y |

Ak sa chystáte použiť heslo ako mechanizmus overovania SSH, potom musíte mať balík sshpass nainštalovaný:
|
1 |
sudo apt install sshpass |

Krok 2: Konfigurácia súboru inventára
V Ansible obsahuje súbor inventára informácie o všetkých hostiteľoch, ktoré bude Ansible spravovať. Môže ísť o desiatky alebo stovky serverov registrovaných v inventárnom súbore. Servery môžu byť tiež rozdelené do skupín a podskupín. Vo všeobecnosti sa inventárny súbor používa na definovanie premenných, ktoré budú platné len pre konkrétnych hostiteľov alebo skupiny. Je to užitočná technika pri písaní playbookov a šablón. Určité premenné môžu tiež ovplyvniť spôsob spustenia playbooku.
Ansible sa dodáva s predvoleným súborom inventára. Najprv otvorte tento súbor v textovom editore:
|
1 |
sudo vim /etc/ansible/hosts |

V predvolenom nastavení obsahuje súbor inventára rôzne príklady pre referenciu. Tu je príklad so skupinou s názvom servers obsahujúcou tri rôzne servery. Premenná ansible_python_interpreter definuje interpret Pythonu pre všetkých hostiteľov zahrnutých v inventári. Pomocou direktívy ansible_user, môžeme deklarovať používateľské konto, ku ktorému sa Ansible pripojí:
|
1 2 3 4 5 6 7 |
[servers] server_1 ansible_host=<server_1_ip> ansible_user=<server_1_username> server_2 ansible_host=<server_2_ip> ansible_user=<server_2_username> server_3 ansible_host=<server_3_ip> ansible_user=<server_3_username> [all:vars] ansible_python_interpreter=/usr/bin/python3 |

Potom súbor uložte a zatvorte editor. Ak chcete skontrolovať inventár, spustite nasledujúci príkaz:
|
1 |
ansible-inventory --list -y |
Výstup by mal vyzerať približne takto:

Krok 3: Testovanie pripojenia
Po nakonfigurovaní súboru inventára musíme otestovať, či sa Ansible dokáže pripojiť k týmto serverom cez SSH. Môžeme to urobiť jednoduchým pingnutím všetkých hostiteľských uzlov. Z riadiaceho uzla, pingnite všetky hostiteľské uzly:
|
1 |
ansible all -m ping |
Modul ping kontroluje nasledujúce veci:
-
Dostupnosť hostiteľa
-
Platnosť prihlasovacích údajov SSH
-
Hostitelia môžu spúšťať moduly Ansible pomocou Pythonu
Výstup by mal vyzerať približne takto:

Ak je odpoveď z konkrétneho uzla pong, znamená to, že uzol je pripravený na spúšťanie príkazov a playbookov Ansible na serveri.
Krok 4: Spúšťanie ad-hoc príkazov
Toto je voliteľný krok. Môže však byť užitočný pri overovaní plnej funkčnosti Ansible na vzdialených serveroch. Táto časť môže slúžiť aj ako základný úvod do ďalšieho používania a konfigurácie Ansible. Po potvrdení pripojenia k uzlom môžeme začať spúšťať ad-hoc príkazy a playbooky. Akýkoľvek príkaz, ktorý by ste bežne spustili na vzdialených serveroch, je možné spustiť pomocou Ansible na všetkých serveroch.
Tu spustite nasledujúci príkaz. Skontroluje využitie disku na všetkých uzloch súčasne:
|
1 |
ansible all -a "df -h" |

Pomocou funkcie ad-hoc príkazov môžeme tiež spúšťať rôzne moduly Ansible, rovnako ako sme spustili modul ping na testovanie. Napríklad modul apt pracuje so správcom balíkov APT v systéme Ubuntu. Dokáže spravovať balíky na vzdialenom uzle Ubuntu. Upozorňujeme, že na vykonanie zmien na úrovni systému sa vyžadujú oprávnenia root. Vzdialený uzol musí povoliť prihlásenie používateľa root alebo používateľ musí mať oprávnenie na vykonávanie administratívnych úloh.
V nasledujúcom príklade Ansible nainštaluje Nginx na všetky hostiteľské uzly:
|
1 |
ansible all -m apt -a "name=nginx state=latest" -u root |
A čo spúšťanie príkazov len na jednom serveri? Na špecifikáciu servera použijeme prezývku servera (priradenú v súbore inventára):
|
1 |
ansible server_1 -a "df -h" -u cloudsigma |

Môžeme tiež špecifikovať viacero serverov. Deklarujte prezývku každého cieľového servera s dvojbodkou ako oddeľovačom:
|
1 |
ansible server_1:server_2:server_3 -a "df -h" -u cloudsigma |

Záverečné myšlienky
V tejto príručke sme vám ukázali postup krok za krokom na inštaláciu Ansible a konfiguráciu súboru inventára na spúšťanie ad-hoc príkazov z riadiaceho uzla Ansible. Po nakonfigurovaní môže riadiaci uzol spustiť akýkoľvek príkaz alebo playbook, ktorý chcete spustiť na hostiteľoch.
Príjemnú prácu!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.