subota, 20 aprila, 2024
Slobodni profesionalac

Ansibl (1. deo)

Autor: Stefan Nožinić

Uvod

Administracija kućnog sistema nikad nije predstavljala problem. Sve što ste ikada trebali da uradite jeste pokoje ažuriranje i instalaciju potrebnog softvera. Kada treba raditi administraciju ozbiljnijih sistema kao što su to brojni serveri, tu se već prelazi u drugi domen kompleksnosti. Ovde je namerno upotrebljena množina jer se želi naglasiti da je reč o više servera koje treba održavati. Tokom vremena su razvijeni mnogi alati za ovakav menadžment. Dosta takvih alata je zahtevalo instalaciju specifičnog softvera na sve servere kako bi se oni mogli spojiti sa glavnim računarom preko kojeg je administrator upravljao čitavom grupom servera. Ovo je na prvi pogled izgledalo sasvim prihvatljivo, ali se vremenom pokazalo kao pogrešno. Softver je postajao sve kompleksniji i imao je sve više grešaka. Ovo je kasnije administratorima napravilo više problema nego što su imali pre.

Ansibl (Ansible) je jedan od retkih i kvalitetnih softverskih rešenja koje je često korišćeno i koje omogućava laku automatizaciju održavanja više servera. Pored toga, on ne zahteva znanje nekog skript-jezika za neke osnovne stvari i ne zahteva instalaciju na svim serverima, jer umesto svojih agenata na svakom serveru, on povezuje glavni server i ostale preko SSH (eng. Secure Shell) protokola. Ansibl koristi jezik za konfiguraciju koji je jednostavan i može se savladati bez mnogo učenja. Ovo omogućava administratorima da se fokusiraju na probleme koji se tiču same strategije održavanja sistema umesto na kucanje koda.

Zbog ove jednostavnosti u konfiguraciji, Ansibl mogu koristiti programeri, menadžeri, sistemski administratori i ljudi ostalih vrsta profesija. Konfiguraciju je lako pisati, čitati, ali i održavati posle nekog vremena.

Dakle, da sumiramo, Ansibl nam omogućava da kontrolišemo svoje servere sa jednog računara. Ako nam treba instalacija baze podataka na deset servera, nema problema – Ansibl nam to omogućava putem jednostavne konfiguracije, i to možemo uraditi sa našeg laptop računara makar bili i kilometrima daleko od tih servera. Važno je samo da imamo SSH pristup tim serverima.

Instalacija

Ansibl je podržan u skoro svakoj distribuciji. Tako postoje paketi za Ubuntu, Debian, Arčlinuks, Džentu i ostale velike distribucije. U slučaju da ne postoji paket za vašu distribuciju, Ansibl možete preuzeti i instalirati pomoću alatke pip. Preporučujemo, ako imate vremena i volje, da u tom slučaju napravite paket za vašu distribuciju, prosledite to zajednici i time budete deo razvojnog tima slobodnog softvera. Nema bolje satisfakcije za jednog Linuks korisnika, zar ne?

Ako, kojim slučajem, naiđete na problem tokom instalacije, ili ne znate uopšte kako da instalirate Ansibl na vaš računar, možete nas kontaktirati putem naše elektronske pošte koja vam je, nadamo se, do sada već poznata – libre [et] lugons [dot] org.

Još malo uvoda

Pre nego što krenemo sa osnovama, treba pojasniti kako Ansibl komunicira sa ostalim računarima. Ansibl koristi SSH protokol da komunicira sa ostalim serverima preko kojeg im govori koje komande izvršavaju. SSH, kao što verovatno znate, može se koristiti da se spojite na udaljeni server pomoću šifre ili pomoću ključa (RSA / DSA). Ansibl omogućava oba načina, ali takođe i, pored upotrebe SSH protokola, konekciju na chroot, lxc, jail ili lokalno.

Vaše udaljene servere navodite u posebnom fajlu tako da Ansibl tačno zna kome treba da pristupi.

Prvi primer

Sada, kada imamo malo predznanja o tome šta Ansibl radi i čemu konkretno služi, možemo se baviti tehničkim stvarima i pogledati kako to da konkretno iskoristimo u praksi.

Pretpostavimo da imamo tri servera sa sledećim adresama: 192.168.1.3, a.home.net, b.home.net i da te servere želimo da administriramo odjednom.

U fajlu /etc/ansible/hosts navodimo adrese tih servera u svakom redu posebno na sledeći način:

192.168.1.3 a.home.net b.home.net

Pretpostavlja se da imate pristup tim serverima preko SSH protokola, odnosno da imate njihove ključeve (u ovom primeru pretpostavljamo da želimo koristiti ključeve umesto šifre).

Sada možemo „pingovati” sve naše servere navedene u gore opisanom fajlu.

ansible all -m ping

Ansibl će se povezati na udaljene servere koristeći korisničko ime sa vašeg sistema odakle pokrećete Ansibl. Ovo je moguće promeniti, ali to nećemo objašnjavati u ovom tekstu. Ako vas zanimaju konkretno neki detalji, možete nas kontaktirati.

Ako smo ustanovili da sve do sada radi kako smo očekivali, možemo pokrenuti komandu na svim serverima na sledeći način:

ansible all -a "/bin/echo hello"

Jednostavno, zar ne?

Za kraj

Treba naglasiti da je Ansibl mnogo više od pokretanja komandi na više računara. Pravu moć ovog alata tek želimo da vam pokažemo, ali, kao što znate, ne možemo toliko toga da stavimo u jedan članak. Treba ostaviti prostora i za druge teme. Ono što možemo da vam obećamo jeste da ćemo se potruditi da u narednim tekstovima o ovom alatu damo što više primera i zanimljivih informacija. Nadamo se da ćete i vi ubuduće nekome prenositi sjajne utiske o ovom alatu kao što mi sada prenosimo vama.

Ako imate neko pitanje, predlog, zanimljivost ili, pak, želite da nam ukažete na tehnički ili bilo kakav drugi propust, kontaktirajte nas na libre [et] lugons [dot] org i mi ćemo dati sve od sebe da budemo još bolji.