Kako kreirati i preuzeti uloge na Ansible Galaxy i koristiti ih - 9. dio


U 9. dijelu Ansible serije, naučit ćete kako kreirati i preuzeti uloge na Ansible Galaxy i koristiti ih. Ansible je jednostavan, ali efikasan alat za upravljanje konfiguracijom i automatsku implementaciju koji neprimetno automatizuje složene zadatke na efikasan način. Možete upravljati stotinama ili čak hiljadama servera iz jednog kontrolnog čvora koristeći jednu datoteku playbook-a.

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 redundancije koda. Dodatno, veća složenost može povećati poteškoće u upravljanju svim uređajima.

Dolaze uloge. U Ansibleu, uloge se koriste za raščlanjivanje playbook-a na datoteke koje se mogu ponovo koristiti, a koje se mogu koristiti u nekoliko drugih instanci gdje se pojavi potreba za izvođenjem sličnog zadatka. Ovo je eliminisalo potrebu za ponovnim pisanjem priručnika iznova i iznova i štedi mnogo vremena i energije.

Uloge su jednostavno funkcionalnosti knjiga. Uloga se isporučuje s prilično onim što bi činilo playbook: zadaci, datoteke, moduli, varijable i predlošci. Također, imajte na umu da je svaka uloga ograničena na određeni zadatak ili željeni rezultat.

Kreiranje Ansible uloge

Da kreirate ulogu u Ansibleu, jednostavno koristite sintaksu.

ansible-galaxy init role_name 

Više direktorija i datoteka će biti kreirano u vašem trenutnom radnom direktoriju. U ovom slučaju, odlučio sam kreirati ulogu u direktoriju /etc/ansible/roles.

Kreirajmo ulogu pod nazivom apache.

ansible-galaxy init apache

Koristite naredbu stablo da biste imali pogled na strukturu direktorija uloge.

tree apache

Kao što vidite, kreirano je nekoliko direktorija, međutim, neće se svi koristiti u priručniku.

Sada, da biste svoju novostvorenu ulogu koristili u playbook-u, 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 kreirajte datoteku playbook i pozovite ulogu kao što je prikazano.

--- 
- hosts: webservers
  roles:
   - apache

Instaliranje uloge iz Ansible Galaxy

Uloge igraju ključnu ulogu u dijeljenju koda sa drugim korisnicima u Ansible zajednici koristeći Ansible Galaxy platformu. U Ansible Galaxy, dobijate hiljade uloga koje obavljaju različite zadatke kao što su instalacija web servera i baza podataka, alati za praćenje itd.

Ansible Galaxy je baza podataka ili spremište Ansible uloga koje možete iskoristiti u svojim priručnicima 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 za pretraživanje mysql. Međutim, neće sve uloge izvršiti 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, mi ćemo instalirati ulogu 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Uloga se preuzima i izdvaja u zadani direktorij uloga koji se nalazi na /etc/ansible/roles.

Uloga se nakon toga može nazvati u playbook-u, na primjer:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Sada možete bezbedno da pokrenete Ansible playbook kao što je prikazano.

ansible-playbook install_mysql.yml

Osim toga, možete posjetiti Ansible Galaxy preko svog web pretraživača i ručno tražiti uloge za obavljanje različitih zadataka kako je navedeno na kontrolnoj tabli.

Na primjer, da biste tražili ulogu nadzora kao što je elasticsearch, kliknite na opciju 'Nadgledanje' i potražite ulogu kao što je prikazano.

Ansible Galaxy olakšava korisnicima da instaliraju najbolje uloge navodeći najpopularnije i najčešće preuzimane uloge. Da biste dobili više informacija o određenoj ulozi, jednostavno kliknite na nju.

U priručniku možete navesti i više od jedne uloge, na primjer.

---
- 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 ponovnu upotrebu i dijeljenje Ansible priručnika. Na ovaj način štede korisniku mnogo vremena pokušavajući da napiše mnogo suvišnog koda i troše previše vremena koje bi se koristilo u drugim zadacima sistemske administracije. I to je to za ovaj vodič.