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č.