Späť na blog

Automatizácia nastavenia servera pomocou Ansible a Ubuntu 20.04

Automatizácia nastavenia servera pomocou Ansible a Ubuntu 20.04

Úvod

V dnešnej dobe je potrebné servery vytvárať a rušiť veľmi často. Je to preto, že servery majú niekedy veľkú záťaž, zatiaľ čo inokedy sa záťaž znižuje, čím sa plytvá systémovými prostriedkami. Bežným príkladom sú e-shopy počas sviatkov, ktoré priťahujú veľkú návštevnosť. Keď má byť aplikácia škálovateľná, vždy je potrebné mať nástroje na správu konfigurácie, ktoré uľahčia celkový proces vytvárania serverov. Ansible je skvelý nástroj na správu konfigurácie, ktorý automatizuje vytváranie serverov pomocou štandardných postupov, čím znižuje ľudské chyby.

Ansible nevyžaduje inštaláciu špeciálneho softvéru na uzloch serverov. Má všetky nástroje potrebné na písanie, zostavovanie a uľahčenie automatizácie skriptov. Tento návod podrobne popisuje, ako použiť Ansible na automatizáciu krokov obsiahnutých v našom Ako nastaviť Ubuntu server návode.

Požiadavky

Na dokončenie tohto sprievodcu budeme používať Ubuntu 20.04. Ďalej budete potrebovať:

  • Riadiaci uzol Ansible: Stroj s Ubuntu, na ktorom beží najnovšia verzia Ubuntu. Na tomto stroji musí byť nainštalovaný a spustený hlavný binárny súbor Ansible. Tento stroj by mal byť schopný pripojiť sa k uzlom Ansible. Pre tieto pripojenia musíte použiť kľúče SSH. Aby ste sa vyhli problémom pri pripájaní, uistite sa, že váš riadiaci uzol Ansible má povolený firewall. Ak potrebujete pomoc, pozrite si náš Inštalácia a konfigurácia Ansible na Ubuntu 20.04 blog.

  • Hostitelia Ansible: Na pripojenie je potrebný jeden alebo viac hostiteľov. Hostitelia sú v podstate spravované uzly v Ansible. Musia to byť servery Ubuntu.

Funkcie Ansible Playbooku

Všetky nižšie uvedené kroky môžete nastaviť manuálne. My však toto vykonanie zautomatizujeme. Keď spustíte tento playbook, vykoná na vašom stroji nasledujúce operácie:

  1. Nainštaluje aptitude, ktorý Ansible uprednostňuje ako svojho správcu balíkov.

  2. Vytvorí administratívnu skupinu wheel s oprávneniami sudo bez hesla.

  3. Vytvorí nového sudo používateľa.

  4. Skopíruje lokálny SSH kľúč do authorized_keys. Ten sa použije pre nového administratívneho používateľa na vzdialenom hostiteľovi.

  5. Zakáže autentifikáciu založenú na hesle pre používateľa root.

  6. Nainštaluje potrebné balíky.

  7. Nakonfiguruje UFW firewall tak, aby povoľoval iba pripojenia SSH. Akékoľvek iné pripojenia budú zastavené.

Po dokončení vykonávania Playbooku bude k dispozícii nový používateľ. Tohto používateľa môžete použiť na prihlásenie do systému.

Používanie Ansible Playbooku

Na nastavenie servera budete potrebovať playbook pre počiatočné nastavenie servera a jeho závislosti. Ak ho používate prvýkrát, budete musieť naklonovať repozitár pomocou odkazu nižšie:

Ak už repozitár vo vašom systéme existuje, spustením nižšie uvedeného príkazu získate najnovšie aktualizácie:

Na svojom stroji získate nasledujúcu štruktúru súborov:

Nižšie je uvedený popis súborov:

  • vars/default.yml: Tento súbor obsahuje premenné na konfiguráciu uzla Ansible.

  • playbook.yml: Tento súbor obsahuje úlohy, ktoré sa majú vykonať na serveri.

Súbor vars/default.yml vyzerá nejako takto:

Nižšie je uvedený popis týchto premenných. Ak ich chcete upraviť, môžete ich hodnoty nahradiť vlastnými:

  1. create_user: Toto je používateľ, ktorý sa vytvorí. Tento používateľ má sudo oprávnenia.

  2. copy_local_key: Obsahuje cestu k lokálnemu verejnému kľúču SSH. Skopíruje sa na vzdialený server ako authorized_key.

  3. sys_packages: Ak chcete na svoj server nainštalovať jeden alebo viac balíkov, uveďte ich tu ako pole.

Po úprave tohto súboru uložte jeho obsah. Potom v editore nano stlačte CTRL+X , Y. Potom, ENTER na uloženie obsahu súboru.

Teraz ste pripravení spustiť tento playbook na viacerých serveroch. V predvolenom nastavení sú Playbooky pripravené na spustenie na serveroch vo vašom inventári. Ak chcete použiť Playbook na konkrétnych serveroch, môžete použiť -l príznak. Teraz predpokladajme, že vzdialený server má viacero používateľov, môžete použiť -u príznak na zadanie, ku ktorému používateľovi sa má pripojiť.

Ak je názov vášho servera my_server a meno používateľa je my_user, potom spustite nižšie uvedený príkaz na vykonanie na uzloch Ansible:

Dostanete výstup podobný tomuto:

Po dokončení tohto vykonania sa môžete pripojiť pomocou nižšie uvedeného príkazu:

Pamätajte, že my_user bolo meno, ktoré sme použili v súbore vars/default.yml. V uvedenom príkaze budete musieť zmeniť aj IP adresu servera na IP adresu vášho servera. Ak ste poskytli premennú copy_local_key, aby odkazovala na nejaký vlastný SSH kľúč, špecifikujte umiestnenie pomocou -i prepínača:

Ďalej sa prihláste na svoj server a skontrolujte pravidlá firewallu UFW:

Dostanete nasledujúci výstup:

Vyššie uvedený výstup potvrdzuje, že firewall UFW bol úspešne dokončený. Toto bol posledný krok v našom playbooku. Ak sa vykoná správne, znamená to, že spustenie bolo úspešné.

Obsah Ansible Playbooku

Súbory Playbooku, ktoré sme použili v tomto návode, sú hostované na ansible-playbooks/setup_ubuntu1804 at master · do-community/ansible-playbooks · GitHub. Ak chcete zobraziť obsah jednotlivých súborov na použitie alebo úpravu, kliknite na tlačidlo Raw v hornej časti každého skriptu.

Pre rýchlu orientáciu zdieľame úplný obsah Playbooku spolu s príslušnými súbormi:

  • vars/default.yml

Tento súbor obsahuje hodnoty, ktoré budú použité úlohami playbooku. Patria sem hodnoty ako meno používateľa, privilégiá, SSH kľúče, balíky, ktoré sa majú nainštalovať v rámci počiatočného nastavenia, a tak ďalej:

  • playbook.yml

Súbor playbook.yml obsahuje úlohy, ktoré sa majú vykonať. Najprv súbor uvádza všetky hostiteľské servery, na ktoré sa má zacieliť. Ak chcete špecifikovať všetky servery, nastavte hodnotu tohto kľúča na all. Ďalej, ak chcete špecifikovať úlohy, ktoré sa majú vykonať s privilégiami sudo, nastavíte hodnotu premennej become: true. Nakoniec musí tento súbor obsahovať obsah vyššie uvedeného vars/default.yml súboru. Tieto zahrnieme ako ďalšie, aby sme načítali nastavenia z tohto súboru:

Záver

Automatizácia je v IT kľúčová, pretože zabezpečuje, že všetky procesy sú bezchybné a riadia sa štandardnými postupmi a procedúrami. Keďže väčšina dnešného softvéru sa dodáva prostredníctvom webu a má distribuovaný charakter, vytváranie nových serverov, napr. pre rôzne prostredia, ako je staging, produkcia alebo dokonca demo prostredia, sa stalo každodennou úlohou.

V tomto návode sme si ukázali, ako dosiahnuť automatizáciu serverov pomocou nástroja Ansible, čo je výkonný a ľahko použiteľný nástroj, ktorý vám môže ušetriť množstvo času.

Príjemnú prácu!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.