Natrag na blog

Instalacija i konfiguracija LAMP-a na Ubuntu 20.04 pomoću Ansiblea

Instalacija i konfiguracija LAMP-a na Ubuntu 20.04 pomoću Ansiblea

Automatizacija poslužitelja siguran je i pouzdan proces upravljanja i nadzora poslužitelja na učinkovit i tehnološki napredan način. Za razliku od tradicionalnog načina upravljanja poslužiteljima u podatkovnim centrima koje kontrolira namjenski tim stručnjaka, svim se poslužiteljima upravlja pomoću automatizacije. Kao rezultat toga, ljudske su pogreške svedene na minimum.

Alati za upravljanje konfiguracijom poput Ansible, Puppet, Terraform, da spomenemo samo neke, obično se koriste za automatizaciju poslužitelja. Ovi alati postavljaju poslužitelje pomoću automatizacije uspostavljanjem standardnih procedura za nove poslužitelje, istovremeno uklanjajući potencijalne pogreške do kojih dolazi pri ručnom radu.

Ansible je robustan projekt otvorenog koda. Fleksibilan je, jednostavan za korištenje i ima maksimalno pojednostavljenu arhitekturu. Za korištenje Ansible playbookova nije potrebno programersko predznanje i ne zahtijeva instaliranje softvera na čvorovima. Iznad svega, opremljen je izvrsnim mogućnostima koje omogućuju pisanje skripti i pojednostavljenje automatizacije.

U ovom vodiču ćemo vas provesti kroz korake instalacije i konfiguracije LAMP-a na Ubuntu 20.04 s Ansibleom.

Preduvjeti

Kako biste pratili ovaj vodič, trebat će vam:

Koja je svrha Ansible playbooka?

Ovaj Ansible playbook alternativni je način prolaska kroz proceduru opisanu u našem vodiču Postavljanje LAMP stoga Linux Apache MySQL PHP.

Pokretanje Ansible playbooka rezultirat će sljedećim radnjama na vašim Ansible hostovima:

  • Instalaciju aptitude, alternative za apt upravitelj paketa koji preferira Ansible.

  • Instalaciju svih potrebnih LAMP paketa.

  • Izradu novog Apache VirtualHost i konfiguraciju namjenskog korijenskog direktorija dokumenata.

  • Postavljanje na UKLJUČENO novog VirtualHost.

  • Postavljanje na ISKLJUČENO zadane Apache web stranice, tj. postavljanje disable_default varijable na true.

  • Odabir lozinke za MySQL root korisnika.

  • Uklanjanje anonimnih MySQL računa i testne baze podataka.

  • Postavljanje UFW-a za dopuštanje HTTP prometa na konfiguriranom priključku, gdje je zadani 80.

  • Postavljanje PHP testne skripte.

Nakon što Ansible playbook završi s radom, vidjet ćete web PHP okruženje koje se izvodi na Apacheu u skladu s konfiguracijama koje smo postavili.

Korištenje Ansible playbooka

Prvo dohvatite LAMP playbook i njegove ovisnosti iz do-community/ansible-playbooks repozitorija. Zatim klonirajte repozitorij s LAMP playbookom u lokalnu mapu unutar Ansible kontrolnog čvora.

Pokrenite naredbu git pull kako biste bili sigurni da imate pristup ispravnom sadržaju koji ćemo koristiti u ovom vodiču:

Ako prvi put koristite repozitorij do-community/ansible-playbooks, razmislite o kloniranju repozitorija u svoju početnu mapu:

Idite u mapu lamp_ubuntu2004 i vidjet ćete strukturu:

Evo pregleda što ove datoteke znače:

  • files/info.php.j2: Ovo je datoteka predloška u kojoj možete postaviti PHP testnu stranicu u korijenu web poslužitelja.

  • files/apache.conf.j2: Još jedna datoteka predloška koja se koristi za postavljanje Apache VirtualHosta.

  • vars/default.yml: To je datoteka varijabli za prilagodbu postavki playbooka.

  • playbook.yml: Ova datoteka sadrži sav sadržaj zadataka koji će se izvršiti na udaljenom poslužitelju/ima.

  • readme.md: Datoteka za čitanje koja sadrži informacije o ovom playbooku.

Prilagodimo konfiguracije za MySQL i Apache unošenjem promjena u datoteku varijabli playbooka. Idite u lamp_ubuntu2004 direktorij i otvorite vars/default.yml datoteku pomoću nano uređivača:

Nakon otvaranja vars/default.yml datoteke, prikazat će se popis varijabli koje je potrebno izmijeniti:

Pojasnimo detaljno svaku od varijabli:

  • mysql_root_password: Pohranjuje lozinku za root MySQL račun.

  • app_user: To je udaljeni korisnik koji nije root na Ansible poslužitelju i koji djeluje kao vlasnik datoteka aplikacije.

  • http_host: Prikazuje naziv vaše domene.

  • http_conf: Prikazuje naziv konfiguracijske datoteke stvorene unutar Apachea.

  • http_port: To je HTTP port za ovaj virtualni poslužitelj, a 80 je zadana vrijednost.

  • disable_default: Koristi se za poništavanje zadanih opcija koje dolaze s Apacheom.

Zatim spremite i zatvorite vars/default.yml datoteku.

Nakon što je sve postavljeno, spremni smo pokrenuti ovaj playbook na poslužiteljima. Prema zadanim postavkama, većina poslužitelja u playbookovima konfigurirana je za izvršavanje na svakom poslužitelju u inventarima. Upotrijebimo -l zastavicu kako bismo utjecali samo na jedan poslužitelj ili odabrani podskup grupa na koje playbook utječe. Alternativno, možemo koristiti -u zastavicu kako bismo dobili detaljan prikaz o tome s kojim se udaljenim poslužiteljem uspostavlja veza i što se izvršava na udaljenim domaćinima.

Izvršimo playbook na jednom poslužitelju server1 i povežimo ga s jednim korisnikom kao justin:

Dobit ćete izlaz sličan ovome:

Nakon što vidite da je izvođenje playbooka završeno, idite u svoj web preglednik i pristupite domaćinu poslužitelja. Ne zaboravite dodati /info.php na kraj IP adrese:

Klikom na ovaj URL vidjet ćete stranicu poput ove:

Upozorenje: Prikazana stranica sadrži osjetljive informacije o vašem PHP okruženju. Stoga se preporučuje uklanjanje vaših osobnih podataka s poslužitelja pomoću sljedeće naredbe:

rm -f /var/www/info.php

Što se nalazi u Playbooku?

Zatim, shvatimo značenje i važnost datoteka korištenih u ansible-playbook sadržaju:

  • vars/default.yml

Datoteka default.yml s varijablama sadrži naziv domene i lozinku za MySQL root račun. To su zadane vrijednosti koje se koriste u ansible-playbook zadacima:

  • files/apache.conf.j2

Datoteka apache.conf.j2 je Jinja 2 predložak koji se koristi za konfiguraciju novog Apache VirtualHost-a. Varijable korištene unutar ovog predloška moraju biti definirane u vars/default.yml datoteci s varijablama:

  • files/info.php.j2

Slično kao i files/apache.conf.j2, datoteka info.php.j2 je također Jinja predložak. Ovu datoteku koristimo za postavljanje testne PHP skripte u korijenski direktorij dokumenata novokonfiguriranog LAMP poslužitelja:

  • playbook.yml

U datoteci playbook.yml definirani su svi zadaci iz ove konfiguracije. U ovoj datoteci konfigurirani su svi LAMP stogovi. Počinje definiranjem grupe ciljanih poslužitelja i postavljena je na all. Također, uzima vrijednost become kao true ( become: true) i definira sve zadatke koje treba izvršiti. Zatim, yaml datoteka ima zadanu datoteku, a to je vars/default.yml datoteka s varijablama, za učitavanje konfiguracijskih opcija:

Možete modificirati ove datoteke na temelju potreba i zahtjeva vašeg projekta.

Zaključak

U ovom vodiču prošli smo kroz korake instalacije i konfiguracije LAMP-a na udaljenom poslužitelju pomoću Ansiblea. Postoji mnoštvo drugih opcija prilagodbe s kojima možete eksperimentirati. Na primjer, korištenje službene Ansible dokumentacije i korištenje slučajeva mysql_user iz Ansible modula izvrstan je način da podignete svoje vještine na višu razinu. Također, slijedite korake opisane u ovom vodiču kako biste vježbali automatizaciju koristeći druge alate za upravljanje konfiguracijom i operacijske sustave kako biste povećali razinu težine.

Jeste li novi u LAMP stogu i želite dublje istražiti ovu temu? Istražite sljedeće vodiče na našem blogu:

Ugodan rad na računalu!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.