Instalacija Ansible na CentOS 8

Kako instalirati Ansible na CentOS 8?

Ansible je besplatan alat za automatizciju u IT, bilo da su server, cloud ili mreza. Ansible se lako instalira, jednostavan je i koristi yaml programski jezik koji nije tezak da se nauci.

Njega nam donosi RadHat u open source verziji kao Ansible a ima i vezija koja se plaća a to je Ansbile Tower. Ukoliko želite da instalirate Ansible Tower kliknite na ovaj link.

Pokazaću kako se instalira Ansible, kako se koristi i koji su fajlovi najbitniji za konfiguraciju.

Poazaćemo na jednom primeru zašto je Ansible tako dobar i lagan za korišćenje u IT okruženju.

Primer: Treba da podignemo web server na dva centos linuxa. To bi uradili tako što bi na svaki server se ulogovali i otkucali dnf install httpd i tako moramo da se ulogujemo i na drugi server pa da uradimo instalaciju kao i na prvom. Ali šta ako imamo 5 ili više servera i moramo na svaki da se logujemo i da raidmo instalacije ponaosob.

Tu stupa Ansible kao alat za automatizaciju a plus je i agentless (nije potrebno da se instaliraju dodatni pluginovi na server tj. agenti da bi ansible mogao da upravlja sa njima).

Jednostavno napravimo jedan fajl u kome kazemo šta treba da se uradi, zatim kažemo na kojim serverima sve to da promeni.

Za ovaj primer ću da podignem dva linux CentOS 8, jedan će da bude Ansible a druge će biti klijent na koji ćemo da instaliramo na primer web server.

1. Instalacija Ansible na CentOS 8

Ulogujte se na Ansible server i sada ćemo da uradimo instalaciju.

dnf update -y

Update centos dnf komanda

dnf install epel-release

Epel repozitorijum

dnf install ansible.

Instalacija Ansible

Instalacija je zavrsena imamo instaliran Ansible.

Pogledamo sada koje sve fajlove imamo u Ansible direkorijumu

cd /etc/ansible
ls

Direktorijum od ansible

Videćemo tri fajla ansible.cfg, hosts i roles

ansible.cfg – ovde je konfiguracioni fajl od ansible

hosts – sadrži listu onoga što želimo da kontrolišemo tj koji su to server i gde se nalaze. On se zove i inventory jer se u njemu nalaze svi podaci o linux mašinama ili ruterima itd.

2. Dodajemo šta želimo da kontrolišemo

U ovom fajlu ćemo sada da napišemo ip adrese od klijent linux mašine. Ukoliko imate više mašina koje hoćete da kontrolišete istovremeno tj da uradite instalaciju web servera na više njih, onda samo dodajte sve ip adrese jednu ispod druge. Jasnije će biti u primeru koji sledi.

vi hosts

inventory fajl od ansible

na kraj ovog fajla pisemo sledeće

[web-server]

192.168.1.1

[web-server:vars]

ansible_user=root
ansible_password=piincloud

Dodavanje hostova

Snimimo promene.

Prvo smo napisali da imamo grupu i nazvali je web-server i dodali smo jendu ip addresu mog klijenta centos mašine. Ako imate više servera samo dodajte njihove ip adrese. Sad će sve ip adrese koje su u grupi web-server dobiti ista podešavanja koja budemo slali.

Drugo što smo napisali web-server:vars tu je kako ćemo se logovati da bi ansible pristupio serveru ili serverima koji su ubačeni u grupu web-server.

Napomena: stavili smo root usera ali naravno to ne treba raditi. Treba da se ima poseban user na primer ansible koji će biti na serveru ili serverima i tako bi ansible pristupao njima, umesto root usera bilo bi ansible user. Naravno postoje još neke zaštie kao što je SSH key ali za sada ćemo pokazati na najprostijem primeru.

3. Konfiguracioni fajl od Ansible

Treba sada samo da podesimo u konfiguracionom fajlu da ne proverava ssh kljuc.

vi ansible.cfg

Konfiguracioni fajl ansible

Tražimo liniju gde piše

host_key_checking = False

Odkomentarsemo jednu liniju

ovo ćemo da otkomentujemo a to znači da neće proveravati ssh key. Opet i ovo ne treba raditi ali radi testa možemo.

4. Testiramo Ansible

Uradićemo test da vidimo da li je sve u redu sa našom grupom koja se zove web-server i da li možemo da je ping-ujemo. Svič -m je modul koju ćemo da izvršimo

ansible web-server -m ping

Ansible ping komanda

Druga komanda je -a to je ad-hoc komanda.

ansible web-server -a “hostname”

ad-hoc komanda

Ovo je test da pokažemo kako Ansible komunicira i izvršava komande. Pošto vidimo da su oba testa prošla sada ćemo da pokažemo kako ansible koristi playbook da izvriši neku operaciju za zadanu grupu.

5. Playbook

Kroz playbook možemo sve da organizujemo i da unapred napišemo šta će da se uradi i tu će biti napisana i grupa koja je u mom slučaju web-server. Playbook je pisan u yaml. Kroz njega se zadaju razni taskovi koji treba da se izvrše i to će se primeniti na celu grupu koju budete napisali.

Ovo je primer .yml fajla.


– name: Linux CentOS Web
hosts: web-server
tasks:
– name: instalacija httpd
dnf:
name: httpd
state: latest

U ovom primeru vidimo hosts: tu smo napisali grupu koju smo napravili i koja sadrži u mom slučaju jednu ip adresu.

dnf – je modul a on služi centos da možemo da instaliramo neki dodatak.

U delu tasks imamo šta želimo da izvšimo, name je ime komande koja će da se izvrši a to je instalacija httpd web servera.

Pravimo sada ovoj playbook koji ćemo da nazovemo httpd.

vi httpd.yml

Pravimo playbook za ansible


– name: Linux CentOS Web
hosts: web-server
tasks:
– name: instalacija httpd
dnf:
name: httpd
state: latest

httpd playbook

Snimimo promene.

6. Pokrećem playbook

Sledeće što radimo je pokretanje playbook-a i tu ćemo da vidimo šta je u stvari ansible i koliko je jendostavan.

ansible-playbook httpd.yml

Pokretanje httpd playbook

Videćete sledeće: Task kako se zove i ispod toga koje komande će izvršiti.

U statusu stoji changed=1 to znači da ga je instalirao. Ukoliko probamo opet istu komandu da primenimo onda će u delu changed da stoji 0 jer je već instaliran i nema potrebe da se instalira ponovo.

Tip: ukoliko želite sada da deinstalirate na primer httpd možete samo da primenite u httpd.yml fajlu state: latest u state: absent i izbrisaće ga.

Warning: U mom primeru videćete neku grešku, to je zbog imena za grupu koju sam ja napravio web-server. Ime bi trebalo da sadrži -.

[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details

Ukoliko je niste stavili vi nećete videtio ovo obaveštenje a ukoliko jeste samo promenite ime ili stavite bez crtice.

Ovim smo završili instalaciju i uspešno uradili testiranje Ansible koji je open source alat za upravljanje. Kao i što sam pomenuo Rad Hat osim ove vezije ima i plaćenu verziju koja se zove Ansible Tower i koja je u grafičkom okruženju (GUI).

Ukoliko želite možete i da pogledate dokumentaciju od RadHat Ansible posednje verzije.

Related Posts