Kako stvoriti i preuzeti uloge na Ansible Galaxy i koristiti ih - 9. dio
U 9. dijelu serije Ansible naučit ćete kako stvoriti i preuzeti uloge na Ansible Galaxy i kako ih koristiti. Ansible je jednostavan, ali učinkovit alat za upravljanje konfiguracijom i automatsku implementaciju koji besprijekorno automatizira složene zadatke na učinkovit način. Možete upravljati stotinama ili čak tisućama poslužitelja iz jednog kontrolnog čvora pomoću jedne datoteke priručnika.
Međutim, pisanje priručnika za upravljanje istom uslugom u različitim okruženjima može biti prilično glomazno i to obično dovodi do redundantnosti koda. Dodatno, veća složenost može povećati poteškoće u upravljanju svim uređajima.
Uloge dolaze. U Ansibleu uloge se koriste za rastavljanje priručnika u datoteke za višekratnu upotrebu koje se mogu koristiti u nekoliko drugih instanci gdje se pojavi potreba za obavljanjem sličnog zadatka. Ovo je eliminiralo potrebu za iznova i iznova prepisivanjem knjiga i štedi mnogo vremena i energije.
Uloge su jednostavno funkcionalnosti knjiga za igru. Uloga se isporučuje s gotovo svim onim što bi predstavljalo knjigu igranja: zadacima, datotekama, modulima, varijablama i predlošcima. Također imajte na umu da je svaka uloga ograničena na određeni zadatak ili željeni rezultat.
Stvaranje ansibilne uloge
Za izradu uloge u Ansible jednostavno upotrijebite sintaksu.
ansible-galaxy init role_name
U vašem trenutnom radnom direktoriju stvorit će se više direktorija i datoteka. U ovom slučaju, odlučio sam stvoriti ulogu u direktoriju /etc/ansible/roles.
Kreirajmo ulogu pod nazivom apache.
ansible-galaxy init apache
Upotrijebite naredbu stabla da biste vidjeli strukturu direktorija uloge.
tree apache
Kao što vidite, stvoreno je nekoliko direktorija, međutim, neće svi biti korišteni u priručniku.
Sada, da biste svoju novostvorenu ulogu koristili u priručniku, definirajte zadatak u datoteci main.yml koja se nalazi u direktoriju zadataka vaše nove uloge.
/apache/tasks/main.yml
---
- hosts: database_servers
tasks:
- name: Install Apache2 on Ubuntu webserver
apt:
name: apache2
state: installed
Nakon toga stvorite datoteku playbook-a i pozovite ulogu kao što je prikazano.
---
- hosts: webservers
roles:
- apache
Instaliranje uloge iz Ansible Galaxyja
Uloge igraju ključnu ulogu u dijeljenju koda s drugim korisnicima u zajednici Ansible koristeći platformu Ansible Galaxy. U Ansible Galaxy dobivate tisuće uloga koje obavljaju različite zadatke kao što su instalacija web poslužitelja i baza podataka, alati za nadzor itd.
Ansible Galaxy je baza podataka ili repozitorij Ansible uloga koje možete iskoristiti u svojim knjigama i pomoći vam da pojednostavite svoje zadatke.
Za pretraživanje uloge u Ansible Galaxy jednostavno pokrenite naredbu.
ansible-galaxy search <role>
Na primjer za traženje uloge pod nazivom mysql run.
ansible-galaxy search mysql
Kao što vidite, postoje stotine uloga koje odgovaraju ključnoj riječi pretraživanja mysql. Međutim, neće sve uloge izvesti ono što namjeravate, pa se preporučuje da pažljivo pročitate upute.
Da biste prikupili više informacija o ulozi, jednostavno pokrenite naredbu Ansible:
ansible-galaxy info 5KYDEV0P5.skydevops-mysql
U našem primjeru, instalirat ćemo ulogu 5KYDEV0P5.skydevops-mysql.
ansible-galaxy install 5KYDEV0P5.skydevops-mysql
Uloga se preuzima i ekstrahira u zadani direktorij uloga koji se nalazi na /etc/ansible/roles.
Uloga se nakon toga može nazvati u priručniku, na primjer:
---
- name: Install MySQL server
hosts: webservers
roles:
• 5KYDEV0P5.skydevops-mysql
Sada možete sigurno pokrenuti Ansible playbook kao što je prikazano.
ansible-playbook install_mysql.yml
Osim toga, možete posjetiti Ansible Galaxy putem svog web-preglednika i ručno pretraživati uloge za obavljanje različitih zadataka kako je navedeno na nadzornoj ploči.
Na primjer, za traženje uloge nadzora kao što je elasticsearch, kliknite na opciju ‘Monitoring’ i potražite ulogu kao što je prikazano.
Ansible Galaxy olakšava korisnicima instalaciju najboljih uloga tako što navodi najpopularnije i najčešće preuzimane uloge. Za više informacija o određenoj ulozi jednostavno kliknite na nju.
Na primjer, u priručniku možete navesti više od jedne uloge.
---
- name: Install MySQL server
hosts: webservers
roles:
• 5KYDEV0P5.skydevops-mysql
• Aaronpederson.mariadb
Za popis instaliranih uloga jednostavno pokrenite.
ansible-galaxy list
Zaključak
Uloge olakšavaju ponovno korištenje i dijeljenje knjiga Ansible playbooks. Na ovaj način štede korisniku mnogo vremena pokušavajući napisati puno suvišnog koda i troše previše vremena koje bi se koristilo u drugim zadacima administracije sustava. I to je to za ovaj vodič.