Natrag na blog

Automatizacija postavljanja poslužitelja pomoću Ansiblea i Ubuntua 20.04

Automatizacija postavljanja poslužitelja pomoću Ansiblea i Ubuntua 20.04

Uvod

Danas se poslužitelji moraju vrlo često stvarati i uništavati. To je zato što poslužitelji ponekad imaju veliko opterećenje izvršavanja, dok se u drugim trenucima opterećenje smanjuje, čime se troše resursi sustava. Čest primjer su web stranice e-trgovine tijekom blagdana koje privlače mnogo prometa. Kada je priroda aplikacije takva da mora biti skalabilna, uvijek postoji potreba za alatima za upravljanje konfiguracijom kako bi se cjelokupni proces stvaranja poslužitelja olakšao.Ansible je izvrstan alat za upravljanje konfiguracijom koji automatizira stvaranje poslužitelja koristeći standardne postupke, smanjujući ljudske pogreške.

Ansible ne zahtijeva instalaciju posebnog softvera na čvorovima poslužitelja. Ima sve alate potrebne za pisanje, izgradnju i olakšavanje automatizacije skripti. Ovaj vodič detaljno objašnjava kako koristiti Ansible za automatizaciju koraka sadržanih u našem Kako postaviti svoj Ubuntu poslužitelj vodiču.

Preduvjeti

Za dovršetak ovog vodiča koristit ćemo Ubuntu 20.04. Osim toga, trebat će vam i:

  • Ansible kontrolni čvor: Ubuntu računalo na kojem se izvodi najnovija verzija Ubuntua. Glavna binarna datoteka Ansiblea mora biti instalirana i pokrenuta na ovom računalu. Ovo računalo trebalo bi se moći povezati s Ansible čvorovima. Za ove veze trebate koristiti SSH ključeve. Kako biste izbjegli probleme pri povezivanju, provjerite ima li vaš Ansible kontrolni čvor omogućen vatrozid. Ako vam je potrebna pomoć, pogledajte naš Instalacija i konfiguracija Ansiblea na Ubuntu 20.04 blog.

  • Ansible hostovi: Potreban je jedan ili više hostova za povezivanje. Hostovi su u osnovi upravljani čvorovi u Ansibleu. To moraju biti Ubuntu poslužitelji.

Funkcije Ansible Playbooka

Sve dolje navedene korake možete postaviti ručno. Međutim, mi ćemo automatizirati ovo izvršavanje. Kada pokrenete ovaj playbook, on će izvršiti sljedeće operacije na vašem računalu:

  1. Instalirat će aptitude, koji Ansible preferira kao svoj upravitelj paketa.

  2. Stvorit će administrativnu grupu wheel s dozvolama za sudo bez lozinke.

  3. Stvorit će novog sudo korisnika.

  4. Kopirat će lokalni SSH ključ u authorized_keys. Ovo će se koristiti za novog administrativnog korisnika na udaljenom hostu.

  5. Onemogućit će autentifikaciju temeljenu na lozinki za root korisnika.

  6. Instalirat će potrebne pakete.

  7. Konfigurirat će UFW vatrozid kako bi dopustio samo SSH veze. Sve ostale veze bit će zaustavljene.

Nakon što Playbook završi s izvršavanjem, novi korisnik bit će dostupan. Možete koristiti ovog korisnika za prijavu u sustav.

Korištenje Ansible Playbooka

Za postavljanje poslužitelja trebat će vam playbook za početno postavljanje poslužitelja i njegove ovisnosti. Ako ga koristite prvi put, morat ćete klonirati repozitorij pomoću donje poveznice:

Ako repozitorij već postoji na vašem sustavu, pokrenite donju naredbu kako biste preuzeli najnovija ažuriranja:

Na svom ćete računalu dobiti sljedeću strukturu datoteka:

U nastavku je opis datoteka:

  • vars/default.yml: Ova datoteka sadrži varijable za konfiguraciju Ansible čvora.

  • playbook.yml: Ova datoteka sadrži poslove koji se trebaju izvršiti na poslužitelju.

Datoteka vars/default.yml izgleda otprilike ovako:

U nastavku je opis ovih varijabli. Ako ih želite urediti, možete zamijeniti njihove vrijednosti vlastitima:

  1. create_user: Ovo je korisnik koji se stvara. Ovaj korisnik ima sudo privilegije.

  2. copy_local_key: Ovo sadrži putanju do lokalnog SSH javnog ključa. Kopirat će se na udaljeni poslužitelj kao authorized_key.

  3. sys_packages: Ako želite instalirati jedan ili više paketa na svoj poslužitelj, navedite ih ovdje kao niz.

Nakon što uredite ovu datoteku, spremite sadržaj. Nakon toga, u nano-u, pritisnite CTRL+X , Y. Zatim, ENTER kako biste spremili sadržaj datoteke.

Sada ste spremni pokrenuti ovaj playbook na više poslužitelja. Prema zadanim postavkama, Playbookovi su spremni za izvršavanje na poslužiteljima u vašem inventaru. Ako želite koristiti Playbook na nekim određenim poslužiteljima, možete koristiti -l zastavicu. Sada pretpostavimo da udaljeni poslužitelj ima više korisnika, možete koristiti -u zastavicu kako biste naveli s kojim se korisnikom želite povezati.

Ako je naziv vašeg poslužitelja my_server a korisničko ime je my_user, tada pokrenite naredbu u nastavku za izvršavanje na Ansible čvorovima:

Dobit ćete izlaz sličan ovome:

Nakon što ovo izvršavanje završi, možete se povezati pomoću naredbe u nastavku:

Zapamtite my_user je bilo ime koje smo koristili u vars/default.yml datoteci. Također ćete morati promijeniti IP adresu poslužitelja u IP adresu vašeg poslužitelja u gornjoj naredbi. Ako ste naveli copy_local_key varijablu koja pokazuje na neki prilagođeni SSH ključ, navedite lokaciju pomoću -i prekidača:

Zatim se prijavite na svoj poslužitelj kako biste provjerili pravila UFW vatrozida:

Dobit ćete izlaz kao u nastavku:

Gornji izlaz potvrđuje da je UFW vatrozid uspješno dovršen. Ovo je bio posljednji korak u našem playbooku. Ako je ovo ispravno izvedeno, to znači da je izvršavanje bilo uspješno.

Sadržaj Ansible Playbooka

Datoteke Playbooka koje smo koristili u ovom vodiču nalaze se na ansible-playbooks/setup_ubuntu1804 at master · do-community/ansible-playbooks · GitHub. Ako želite vidjeti sadržaj svake datoteke radi korištenja ili uređivanja, kliknite gumb Raw na vrhu svakog skripta.

Za brzu referencu, podijelit ćemo puni sadržaj Playbooka zajedno s relevantnim datotekama:

  • vars/default.yml

Ova datoteka sadrži vrijednosti koje će koristiti zadaci playbooka. To uključuje vrijednosti kao što su ime korisnika, privilegije, SSH ključevi, paketi koje treba instalirati kao dio početnog postavljanja i tako dalje:

  • playbook.yml

Datoteka playbook.yml sadrži poslove koji se trebaju izvršiti. Prvo, datoteka navodi sve poslužitelje koji su ciljani. Ako želite odrediti sve poslužitelje, postavite vrijednost ovog ključa na all. Zatim, ako želite odrediti zadatke koji će se izvršavati pomoću sudo privilegija, postavljate vrijednost varijable become: true. Na kraju, ova datoteka mora uključivati sadržaj gore navedene vars/default.yml datoteke. Njih uključujemo u nastavku kako bismo učitali postavke iz ove datoteke:

Zaključak

Automatizacija je ključna u IT-u, jer osigurava da su svi procesi bez pogrešaka i da slijede standardne prakse i procedure. Budući da se većina današnjeg softvera isporučuje putem weba i ima distribuiranu prirodu, stvaranje novih poslužitelja postalo je svakodnevni zadatak, npr. za različita okruženja kao što su testno (staging) ili produkcijsko, ili čak demo okruženja.

U ovom smo vodiču pokazali kako postići automatizaciju poslužitelja pomoću Ansiblea, moćnog alata jednostavnog za korištenje koji vam može uštedjeti puno vremena.

Sretno s radom!

author

Shreyas Patil

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.