Ako ste administrator sustava, važno je da imate dosljedan način upravljanja svim poslužiteljima i računalima koje koristite. Sustavi za upravljanje konfiguracijom mogu uvelike pojednostaviti taj proces. Oni učinkovito upravljaju svim sustavima sa središnje lokacije.
Na Linuxu, dostupno je više sustava za upravljanje konfiguracijom. Na primjer, Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine, itd. Dok alati poput Puppeta i Chefa znaju biti složeniji i napredniji, Ansible nudi jednostavnost i lakoću korištenja. Ne morate instalirati nikakav dodatni klijentski softver na čvorove da bi Ansible radio. Umjesto toga, Ansible koristi SSH za upravljanje i automatizaciju sustava. Ansible je softver otvorenog koda. Također je vrlo skalabilan, dosljedan i pouzdan.
Ovaj vodič prikazuje kako instalirati i konfigurirati Ansible na Ubuntu 20.04.
Ansible na Ubuntuu
Ansible može postići tri vrste automatizacije:
-
Provizioniranje: Može uspostaviti različite poslužitelje prema potrebama infrastrukture.
-
Upravljanje konfiguracijom: Može izvršiti različite promjene konfiguracije poslužitelja. Na primjer, pokretanje i zaustavljanje usluga, instaliranje aplikacija i ažuriranja, implementaciju sigurnosnih pravila itd.
-
Isporuka aplikacija: Olakšava DevOps s automatiziranom isporukom interno razvijenih aplikacija u produkcijski sustav.
Ansible može savršeno raditi u gotovo svakom IT okruženju – bilo da se radi o zakupljenim ili tradicionalnim poslužiteljima, platformama za virtualizaciju ili u oblaku. Također podržava upravljanje različitim sustavima poput baza podataka, mreža, vatrozida, uređaja za pohranu i mnogih drugih. CloudSigma također podržava Ansible za našu cloud infrastrukturu.
Preduvjeti
Za ovaj vodič trebamo nekoliko strojeva:
-
Kontrolni čvor: Kontrolni čvor je središnji čvor koji se povezuje sa svim host čvorovima, izdaje zadatke i upravlja različitim aspektima sustava. Kontrolni čvor može biti bilo što – lokalno računalo ili udaljeni poslužitelj.
-
Host čvor: Ansible hostovi su strojevi koje kontrolni čvor Ansiblea može automatizirati.
Kao što naslov vodiča sugerira, očekuje se da svi ovi strojevi budu konfigurirani s Ubuntu 20.04 s najnovijim paketima. Evo brzog vodiča o postavljanju Ubuntu poslužitelja. Budući da Ansible koristi SSH za povezivanje sa strojevima, svi host čvorovi moraju biti ispravno postavljeni s SSH ključevima s kontrolnim čvorom. Provjerite imaju li svi host čvorovi javni SSH ključ kontrolnog čvora dodan u authentication_keys datoteku. Pratite naš vodič kako biste saznali kako generirati i dodati SSH ključeve na Linux poslužitelje.
Korak 1: Instalacija Ansiblea
U slučaju Ubuntua, nema potrebe za dodatnom konfiguracijom paketa ili repozitorija. Ansible je izravno dostupan sa službenih Ubuntu poslužitelja paketa. Izvođenje bilo kakvih promjena na razini sustava zahtijeva administrativni pristup – root korisnika ili ne-root korisnika s privilegijama sudo. Sudoers datoteka upravlja sudo dopuštenjima za korisnike i grupe.
Prvo ćemo instalirati Ansible na računalo koje će služiti kao kontrolni čvor. Za instalaciju Ansiblea na kontrolni čvor pokrenite sljedeće naredbe:
|
1 |
sudo apt update |

|
1 |
sudo apt install ansible -y |

Ako ćete koristiti lozinku kao mehanizam SSH autentifikacije, tada morate imati paket sshpass instaliran:
|
1 |
sudo apt install sshpass |

Korak 2: Konfiguriranje datoteke inventara
U Ansibleu, datoteka inventara sadrži informacije o svim hostovima kojima će Ansible upravljati. To mogu biti deseci ili stotine poslužitelja registriranih u inventory datoteci. Poslužitelji se također mogu podijeliti u grupe i podgrupe. Općenito, inventory datoteka se koristi za uspostavljanje varijabli koje će vrijediti samo za određene hostove ili grupe. To je korisna tehnika pri pisanju playbookova i predložaka. Određene varijable također mogu utjecati na to kako se playbook izvodi.
Ansible dolazi sa zadanom datotekom inventara. Prvo otvorite datoteku u uređivaču teksta:
|
1 |
sudo vim /etc/ansible/hosts |

Prema zadanim postavkama, datoteka inventara sadrži razne primjere za referencu. Evo primjera s grupom pod nazivom servers koja sadrži tri različita poslužitelja. Varijabla ansible_python_interpreter definira Python interpreter za sve hosts uključene u inventar. Pomoću direktive ansible_user, možemo deklarirati korisnički račun s kojim će se Ansible povezati:
|
1 2 3 4 5 6 7 |
[servers] server_1 ansible_host=<server_1_ip> ansible_user=<server_1_username> server_2 ansible_host=<server_2_ip> ansible_user=<server_2_username> server_3 ansible_host=<server_3_ip> ansible_user=<server_3_username> [all:vars] ansible_python_interpreter=/usr/bin/python3 |

Zatim spremite datoteku i zatvorite uređivač. Da biste provjerili inventar, pokrenite sljedeću naredbu:
|
1 |
ansible-inventory --list -y |
Izlaz bi trebao izgledati otprilike ovako:

Korak 3: Testiranje veze
Nakon konfiguriranja datoteke inventara, moramo testirati može li se Ansible povezati s tim poslužiteljima putem SSH-a. To možemo učiniti jednostavnim pinganjem svih čvorova domaćina. S kontrolnog čvora, pingajte sve host čvorove:
|
1 |
ansible all -m ping |
The Ping modul provjerava sljedeće stvari:
-
Dostupnost hosta
-
Valjanost SSH vjerodajnica
-
Hostovi mogu pokretati Ansible module koristeći Python
Izlaz bi trebao izgledati otprilike ovako:

Ako je odgovor s određenog čvora pong, to znači da je čvor spreman za pokretanje Ansible naredbi i playbooka na poslužitelju.
Korak 4: Pokretanje ad-hoc naredbi
Ovo je neobavezan korak. Međutim, može biti koristan za provjeru pune funkcionalnosti Ansiblea na udaljenim poslužiteljima. Ovaj odjeljak također može poslužiti kao osnovni uvod u dodatnu upotrebu i konfiguraciju Ansiblea. Nakon što potvrdimo povezivost s čvorovima, možemo početi pokretati ad-hoc naredbe i playbooke. Svaka naredba koju biste inače pokrenuli na udaljenim poslužiteljima može se pokrenuti s Ansibleom na svim poslužiteljima.
Ovdje pokrenite sljedeću naredbu. Ona će provjeriti iskorištenost diska na svim čvorovima u isto vrijeme:
|
1 |
ansible all -a "df -h" |

Također možemo izvršiti različite Ansible module pomoću značajke ad-hoc naredbi, baš kao što smo izvršili ping modul za testiranje. Na primjer, apt modul radi s APT upraviteljem paketa na Ubuntuu. Može upravljati paketima na udaljenom Ubuntu čvoru. Imajte na umu da su za promjene na razini sustava potrebne root ovlasti. Udaljeni čvor mora dopustiti root prijavu ili korisnik mora imati dopuštenje za izvršavanje administrativnih zadataka.
U sljedećem primjeru, Ansible instalira Nginx na sve čvorove domaćine:
|
1 |
ansible all -m apt -a "name=nginx state=latest" -u root |
Što je s pokretanjem naredbi samo na jednom poslužitelju? Koristit ćemo nadimak poslužitelja (dodijeljen unutar datoteke inventara) za određivanje poslužitelja:
|
1 |
ansible server_1 -a "df -h" -u cloudsigma |

Također možemo odrediti više poslužitelja. Deklarirajte nadimak svakog ciljanog poslužitelja s dvotočkom kao graničnikom:
|
1 |
ansible server_1:server_2:server_3 -a "df -h" -u cloudsigma |

Završne misli
U ovom vodiču pokazali smo vam metodu korak-po-korak za instalaciju Ansiblea i konfiguriranje datoteke inventara za pokretanje ad-hoc naredbi s kontrolnog čvora Ansiblea. Nakon konfiguracije, kontrolni čvor može izvršiti bilo koju naredbu ili playbook koji želite pokrenuti na hostovima.
Sretno računanje!
Komentari
Još nema komentara. Budite prvi.