Zpět na blog

Instalace a konfigurace LAMP na Ubuntu 20.04 pomocí Ansible

Instalace a konfigurace LAMP na Ubuntu 20.04 pomocí Ansible

Automatizace serverů je bezpečný a spolehlivý proces správy a monitorování serverů efektivním a technologicky vyspělým způsobem. Na rozdíl od tradičního stylu správy serverů v datových centrech řízených specializovaným týmem odborníků jsou všechny servery spravovány pomocí automatizace. V důsledku toho jsou minimalizovány lidské chyby.

Nástroje pro správu konfigurace jako Ansible, Puppet, Terraform, abychom jmenovali alespoň některé, se obvykle používají k automatizaci serverů. Tyto nástroje nastavují servery pomocí automatizace zavedením standardních postupů pro nové servery a zároveň eliminují potenciální chyby při ručním provádění.

Ansible je robustní open-source projekt. Je flexibilní, snadno se používá a má nejjednodušší architekturu. K používání playbooků Ansible nejsou vyžadovány žádné zkušenosti s kódováním a nevyžaduje instalaci softwaru na uzlech. Především je nabitý vynikajícími schopnostmi, které umožňují psát skripty a zefektivnit automatizaci.

V této příručce vás provedeme kroky instalace a konfigurace LAMP na Ubuntu 20.04 pomocí Ansible.

Požadavky

Chcete-li postupovat podle tohoto návodu, budete potřebovat:

Jaký je účel Ansible Playbooku?

Tento Ansible playbook představuje alternativní způsob, jak projít postupem popsaným v naší příručce Nastavení LAMP Stacku Linux Apache MySQL PHP.

Spuštění Ansible playbooku povede k následujícím akcím na vašich hostitelích Ansible:

  • Nainstalovat aptitude, což je alternativa k apt správci balíčků, který je preferován systémem Ansible.

  • Nainstalovat všechny potřebné balíčky LAMP.

  • Vytvořit nový Apache VirtualHost a nakonfigurovat vyhrazený kořenový adresář dokumentů (document root).

  • Zapnout ZAP nový VirtualHost.

  • Vypnout VYP výchozí web Apache, tj. nastavit proměnnou disable_default na true.

  • Zvolit heslo pro MySQL uživatele root.

  • Odebrat anonymní účty MySQL a testovací databázi.

  • Nastavit UFW tak, aby povoloval HTTP provoz na nakonfigurovaném portu, kde výchozí je 80.

  • Nastavit testovací PHP skript.

Po dokončení spuštění Ansible playbooku uvidíte webové PHP prostředí běžící nad Apache podle konfigurací, které jsme nastavili.

Použití Ansible Playbooku

Nejprve získejte LAMP playbook a jeho závislosti z repozitáře do-community/ansible-playbooks repository. Poté naklonujte repozitář s LAMP playbookem do lokální složky uvnitř řídicího uzlu Ansible (Ansible Control Node).

Spusťte příkaz git pull, abyste se ujistili, že máte přístup ke správnému obsahu, který budeme v tomto návodu používat:

Pokud používáte repozitář do-community/ansible-playbooks poprvé, zvažte naklonování repozitáře do vaší domovské složky:

Přejděte do složky lamp_ubuntu2004 a uvidíte strukturu:

Zde je přehled toho, co tyto soubory znamenají:

  • files/info.php.j2: Toto je soubor šablony, kde můžete nastavit testovací stránku PHP v kořenovém adresáři webového serveru.

  • files/apache.conf.j2: Další soubor šablony používaný k nastavení Apache VirtualHost.

  • vars/default.yml: Jedná se o soubor proměnných pro přizpůsobení nastavení playbooku.

  • playbook.yml: Tento soubor obsahuje veškerý obsah úloh, které mají být provedeny na vzdáleném serveru / vzdálených serverech.

  • readme.md: Soubor s informacemi o tomto playbooku.

Přizpůsobme konfiguraci MySQL a Apache provedením změn v souboru proměnných playbooku. Přejděte do adresáře lamp_ubuntu2004 a otevřete soubor vars/default.yml pomocí nano editoru:

Po otevření souboru vars/default.yml uvidíte seznam proměnných, které je třeba upravit:

Pojďme si podrobně vysvětlit jednotlivé proměnné:

  • mysql_root_password: Ukládá heslo pro účet root v MySQL.

  • app_user: Jedná se o vzdáleného uživatele bez oprávnění root na hostiteli Ansible, který vystupuje jako vlastník souborů aplikace.

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

  • http_conf: Zobrazuje název konfiguračního souboru vytvořeného v rámci Apache.

  • http_port: Je to HTTP port pro tohoto virtuálního hostitele a 80 je výchozí.

  • disable_default: Používá se ke zrušení výchozích možností, které jsou dodávány s Apache.

Poté uložte a zavřete soubor vars/default.yml.

Jakmile je vše nastaveno, jsme připraveni spustit tento playbook na serverech. Ve výchozím nastavení je většina serverů v playbookech nakonfigurována tak, aby se spouštěla na každém serveru v inventářích. Použijme příznak -l, abychom ovlivnili pouze jeden server nebo vybranou podskupinu skupin, které se playbook týká. Případně můžeme použít příznak -u, abychom získali podrobný přehled o tom, který vzdálený server se připojuje a provádí operace na vzdálených hostitelích.

Spusťme playbook na jednom serveru server1 a připojme jej s jedním uživatelem jako justin:

Získáte výstup podobný tomuto:

Jakmile uvidíte, že se spuštění playbooku dokončilo, přejděte do webového prohlížeče a otevřete hostitele serveru. Nezapomeňte připojit /info.php na konec IP adresy:

Po kliknutí na tuto URL adresu uvidíte stránku jako je tato:

Varování: Zobrazená stránka obsahuje citlivé informace o vašem prostředí PHP. Proto se doporučuje odstranit vaše osobní informace ze serveru pomocí následujícího příkazu:

rm -f /var/www/info.php

Co obsahuje Playbook?

Dále si vysvětlíme význam a důležitost souborů použitých v ansible-playbook obsahu:

  • vars/default.yml

Soubor default.yml s proměnnými obsahuje doménové jméno a heslo k účtu MySQL root účtu. Jedná se o výchozí hodnoty použité v ansible-playbook úlohách:

  • files/apache.conf.j2

Soubor apache.conf.j2 je šablonový soubor Jinja 2 používaný ke konfiguraci nového Apache VirtualHost. Proměnné použité v této šabloně musí být definovány v souboru proměnných vars/default.yml:

  • files/info.php.j2

Podobně jako files/apache.conf.j2, soubor info.php.j2 je také šablonou Jinja. Tento soubor používáme k nastavení testovacího PHP skriptu v kořenovém adresáři dokumentů nově nakonfigurovaného serveru LAMP:

  • playbook.yml

Soubor playbook.yml je místo, kde jsou definovány všechny úlohy z tohoto nastavení. V tomto souboru jsou nakonfigurovány všechny součásti LAMP. Začíná definováním skupiny cílových serverů a je nastaven na all. Dále přebírá hodnotu become jako true ( become: true), a definuje všechny úlohy, které je třeba provést. Dále soubor yaml obsahuje výchozí soubor, kterým je soubor proměnných vars/default.yml, pro načtení možností konfigurace:

Tyto soubory můžete upravit na základě potřeb a požadavků vašeho projektu.

Závěr

V tomto návodu jsme si prošli kroky instalace a konfigurace LAMP na vzdáleném serveru pomocí Ansible. Existuje spousta dalších možností přizpůsobení, se kterými můžete experimentovat. Například použití oficiální dokumentace Ansible a použití případů mysql_user z modulu Ansible je skvělý způsob, jak se posunout na vyšší úroveň. Také postupujte podle kroků popsaných v této příručce a procvičte si automatizaci pomocí jiných nástrojů pro správu konfigurace a operačních systémů, abyste zvýšili úroveň obtížnosti.

Jste v oblasti LAMP stacku nováčkem a chcete se do tohoto tématu ponořit hlouběji? Prozkoumejte následující návody na našem blogu:

Příjemnou práci s počítačem!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.