Späť na blog

Inštalácia a konfigurácia LAMP na Ubuntu 20.04 pomocou Ansible

Inštalácia a konfigurácia LAMP na Ubuntu 20.04 pomocou Ansible

Automatizácia serverov je bezpečný a spoľahlivý proces správy a monitorovania serverov efektívnym a technologicky vyspelým spôsobom. Na rozdiel od tradičného štýlu správy serverov v dátových centrách riadených špecializovaným tímom odborníkov sú všetky servery spravované pomocou automatizácie. V dôsledku toho sa minimalizujú ľudské chyby.

Nástroje na správu konfigurácie ako Ansible, Puppet, Terraform, aby sme spomenuli aspoň niektoré, sa zvyčajne používajú na automatizáciu serverov. Tieto nástroje nastavujú servery pomocou automatizácie vytvorením štandardných postupov pre nové servery, pričom eliminujú potenciálne chyby, ktoré vznikajú pri manuálnom vykonávaní.

Ansible je robustný open-source projekt. Je flexibilný, ľahko sa používa a má maximálne zjednodušenú architektúru. Na používanie playbookov Ansible nie sú potrebné žiadne skúsenosti s kódovaním a nevyžaduje sa inštalácia softvéru na uzly. Predovšetkým je nabitý vynikajúcimi funkciami, ktoré umožňujú písať skripty a zefektívňovať automatizáciu.

V tejto príručke vás prevedieme krokmi inštalácie a konfigurácie LAMP na Ubuntu 20.04 pomocou Ansible.

Požiadavky

Na sledovanie tohto návodu budete potrebovať:

Aký je účel Ansible Playbooku?

Tento Ansible playbook je alternatívny spôsob, ako prejsť postupom opísaným v našej príručke Nastavenie LAMP Stacku Linux Apache MySQL PHP.

Spustenie Ansible playbooku vykoná na vašich hostiteľoch Ansible nasledujúce akcie:

  • Nainštaluje aptitude, alternatívu k správcovi balíkov apt, ktorý preferuje Ansible.

  • Nainštaluje všetky potrebné balíky LAMP.

  • Vytvorí nový Apache VirtualHost a nakonfiguruje vyhradený koreňový adresár dokumentov.

  • Nastaví na ZAPNUTÝ nový VirtualHost.

  • Nastaví na VYPNUTÝ predvolenú webovú stránku Apache, t. j. nastaví premennú disable_default na true.

  • Zvolí heslo pre MySQL root používateľa.

  • Odstráni anonymné účty MySQL a testovaciu databázu.

  • Nastaví UFW na povolenie HTTP prevádzky na nakonfigurovanom porte, kde predvolený je 80.

  • Nastaví testovací PHP skript.

Po dokončení spustenia Ansible playbooku uvidíte webové PHP prostredie bežiace na Apache podľa konfigurácií, ktoré sme nastavili.

Použitie Ansible Playbooku

Najprv získajte LAMP playbook a jeho závislosti z repozitára do-community/ansible-playbooks. Potom naklonujte repozitár s LAMP playbookom do lokálneho priečinka v riadiacom uzle Ansible.

Spustite príkaz git pull, aby ste sa uistili, že máte prístup k správnemu obsahu, ktorý budeme v tomto návode používať:

Ak používate repozitár do-community/ansible-playbooks po prvýkrát, zvážte naklonovanie repozitára do vášho domovského priečinka:

Prejdite do priečinka lamp_ubuntu2004 a uvidíte štruktúru:

Tu je prehľad toho, čo tieto súbory znamenajú:

  • files/info.php.j2: Toto je súbor šablóny, v ktorom môžete nastaviť testovaciu stránku PHP v koreňovom adresári webového servera.

  • files/apache.conf.j2: Ďalší súbor šablóny používaný na nastavenie Apache VirtualHost.

  • vars/default.yml: Je to súbor premenných na prispôsobenie nastavení playbooku.

  • playbook.yml: Tento súbor obsahuje celý obsah úloh, ktoré sa majú vykonať na vzdialenom serveri/serveroch.

  • readme.md: Súbor na čítanie obsahujúci informácie o tomto playbooku.

Prispôsobme konfigurácie MySQL a Apache vykonaním zmien v súbore premenných playbooku. Prejdite do adresára lamp_ubuntu2004 a otvorte súbor vars/default.yml pomocou editora nano:

Po otvorení súboru vars/default.yml sa zobrazí zoznam premenných, ktoré je potrebné upraviť:

Poďme si podrobne vysvetliť jednotlivé premenné:

  • mysql_root_password: Ukladá heslo pre root MySQL účet.

  • app_user: Je to vzdialený používateľ bez oprávnení root na hostiteľovi Ansible, ktorý vystupuje ako vlastník súborov aplikácie.

  • http_host: Zobrazuje váš názov domény.

  • http_conf: Zobrazuje názov konfiguračného súboru vytvoreného v rámci Apache.

  • http_port: Je to HTTP port pre tento virtuálny hostiteľ a 80 je predvolený.

  • disable_default: Používa sa na zrušenie predvolených možností, ktoré prichádzajú s Apache.

Potom uložte a zatvorte súbor vars/default.yml.

Po dokončení celého nastavenia sme pripravení spustiť tento playbook na serveroch. V predvolenom nastavení je väčšina serverov v playbookoch nakonfigurovaná na spustenie na každom serveri v inventároch. Použime príznak -l, aby sme ovplyvnili iba jeden server alebo vybranú podskupinu skupín, ktorých sa playbook týka. Prípadne môžeme použiť príznak -u, aby sme získali podrobný prehľad o tom, ktorý vzdialený server sa pripája a vykonáva príkazy na vzdialených hostiteľoch.

Spusťme playbook na jednom serveri server1 a pripojme ho s jedným používateľom ako justin:

Získate výstup podobný tomuto:

Keď uvidíte, že beh playbooku sa dokončil, prejdite do svojho webového prehliadača a otvorte hostiteľa servera. Nezabudnite na koniec IP adresy pridať /info.php:

Po kliknutí na túto URL adresu uvidíte stránku ako táto:

Varovanie: Zobrazená stránka obsahuje citlivé informácie o vašom prostredí PHP. Preto sa odporúča odstrániť vaše osobné informácie zo servera pomocou nasledujúceho príkazu:

rm -f /var/www/info.php

Čo sa nachádza v Playbooku?

Ďalej si vysvetlime význam a dôležitosť súborov použitých v ansible-playbook obsahu:

  • vars/default.yml

Súbor s premennými default.yml obsahuje názov domény a heslo k účtu MySQL root účtu. Ide o predvolené hodnoty použité v ansible-playbook úlohách:

  • files/apache.conf.j2

Súbor apache.conf.j2 je šablóna Jinja 2 používaná na konfiguráciu nového Apache VirtualHost. Premenné použité v tejto šablóne musia byť definované v súbore s premennými vars/default.yml:

  • files/info.php.j2

Podobne ako files/apache.conf.j2, súbor info.php.j2 je tiež šablóna Jinja. Tento súbor používame na nastavenie testovacieho PHP skriptu v koreňovom adresári dokumentov (document root) novo nakonfigurovaného LAMP servera:

  • playbook.yml

Súbor playbook.yml je miesto, kde sú definované všetky úlohy z tohto nastavenia. V tomto súbore je nakonfigurovaný celý LAMP stack. Začína to definovaním skupiny cieľových serverov, ktorá je nastavená na all. Taktiež preberá hodnotu become ako true ( become: true), a definuje všetky úlohy, ktoré je potrebné vykonať. Ďalej tento yaml súbor obsahuje predvolený súbor, ktorým je súbor s premennými vars/default.yml, na načítanie možností konfigurácie:

Tieto súbory môžete upraviť na základe potrieb a požiadaviek vášho projektu.

Záver

V tomto návode sme prešli krokmi inštalácie a konfigurácie LAMP na vzdialenom serveri pomocou Ansible. Existuje množstvo ďalších možností prispôsobenia, s ktorými môžete experimentovať. Napríklad použitie oficiálnej dokumentácie Ansible a použitie prípadov mysql_user z modulu Ansible je skvelý spôsob, ako sa posunúť na vyššiu úroveň. Taktiež postupujte podľa krokov popísaných v tejto príručke a precvičte si automatizáciu pomocou iných nástrojov na správu konfigurácie a operačných systémov, aby ste zvýšili úroveň náročnosti.

Ste v LAMP stacku nováčikom a chcete sa do tejto témy ponoriť hlbšie? Preskúmajte nasledujúce návody na našom blogu:

Príjemnú prácu s počítačom!

author

Hark Labs

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ý.