Weboldal keresés

Hogyan hozzunk létre és töltsünk le szerepeket az Ansible Galaxy-ban és használjuk őket – 9. rész


Az Ansible Series 9. részében megtudhatja, hogyan hozhat létre és tölthet le szerepeket az Ansible Galaxy eszközön, és hogyan használhatja azokat. Az Ansible egy egyszerű, de hatékony konfigurációkezelő és automatikus telepítési eszköz, amely zökkenőmentesen és hatékonyan automatizálja az összetett feladatokat. Több száz vagy akár több ezer szervert is felügyelhet egyetlen vezérlőcsomópontról egyetlen játékkönyvfájl segítségével.

Azonban a játékkönyvek írása ugyanazon szolgáltatás különböző környezetekben történő kezeléséhez meglehetősen nehézkes lehet, és ez általában kódredundanciához vezet. Ezenkívül a bonyolultabb megoldás az összes eszköz kezelésének nehézségét okozhatja.

Jönnek a szerepek. Az Ansible alkalmazásban a szerepek a játékkönyvek újrafelhasználható fájlokra bontására szolgálnak, amelyek számos más olyan esetben is felhasználhatók, amikor hasonló feladat elvégzésére van szükség. Ezzel megszűnt a játékkönyvek újra és újra átírása, és rengeteg időt és energiát takarít meg.

A szerepek egyszerűen a játékkönyvek funkciói. A szerepkör nagyjából azzal jár, ami egy játékkönyvet alkotna: feladatok, fájlok, modulok, változók és sablonok. Azt is vegye figyelembe, hogy minden szerep egy adott feladatra vagy a kívánt kimenetre korlátozódik.

Lehetséges szerep létrehozása

Szerepkör létrehozásához az Ansible alkalmazásban egyszerűen használja a szintaxist.

ansible-galaxy init role_name 

Az aktuális munkakönyvtárban több könyvtár és fájl jön létre. Ebben az esetben úgy döntöttem, hogy létrehozok egy szerepet az /etc/ansible/roles könyvtárban.

Hozzunk létre egy apache nevű szerepet.

ansible-galaxy init apache

A fa paranccsal áttekintheti a szerepkör könyvtárstruktúráját.

tree apache

Amint láthatja, számos könyvtárat hoztak létre, azonban nem mindegyiket fogják használni a játékkönyvben.

Ha most szeretné használni az újonnan létrehozott szerepkört egy játékfüzetben, határozzon meg egy feladatot az új szerep feladatkönyvtárában található main.yml fájlban.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Ezután hozzon létre egy játékkönyv fájlt, és hívja meg a szerepet az ábrán látható módon.

--- 
- hosts: webservers
  roles:
   - apache

Szerepkör telepítése az Ansible Galaxy-ból

A szerepek döntő szerepet játszanak a kód megosztásában az Ansible közösség többi felhasználójával az Ansible Galaxy platform használatával. Az Ansible Galaxy-ban több ezer szerepkört kap különböző feladatok elvégzésére, például webszerverek és adatbázisok telepítésére, megfigyelő eszközökre stb.

Az Ansible Galaxy egy adatbázis vagy Ansible-szerepek tárháza, amelyet felhasználhat a játékkönyvekben, és megkönnyítheti feladatait.

Egy szerep kereséséhez az Ansible Galaxy-ban egyszerűen futtassa a parancsot.

ansible-galaxy search <role>

Például a mysql futtatás nevű szerepkör kereséséhez.

ansible-galaxy search mysql

Amint látja, több száz szerepkör egyezik a mysql keresési kulcsszóval. Mindazonáltal nem minden szerep teljesíti a kívántat, ezért javasoljuk, hogy figyelmesen olvassa el az utasításokat.

Ha további információkat szeretne gyűjteni egy szerepkörről, egyszerűen futtassa az Ansible parancsot:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Példánkban az 5KYDEV0P5.skydevops-mysql szerepkört fogjuk telepíteni.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

A szerepkör letöltése és kibontása az alapértelmezett szerepkör-könyvtárba, amely a /etc/ansible/roles címen található.

A szerepet ezután egy játékkönyvben lehet nevezni, például:

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

 roles:
    • 5KYDEV0P5.skydevops-mysql

Most már biztonságosan futtathatja az Ansible játékkönyvet az ábrán látható módon.

ansible-playbook install_mysql.yml

Ezenkívül a webböngészőn keresztül meglátogathatja az Ansible Galaxy-t, és manuálisan kereshet szerepeket a műszerfalon körvonalazott különféle feladatok végrehajtásához.

Például egy megfigyelő szerep, például az elasticsearch kereséséhez kattintson a „Monitoring” lehetőségre, és keresse meg a szerepkört a képen látható módon.

Az Ansible Galaxy megkönnyíti a felhasználók számára a legjobb szerepkörök telepítését a legnépszerűbb és legtöbbet letöltött szerepkörök felsorolásával. Ha többet szeretne megtudni egy adott szerepkörről, kattintson rá.

Egy játékkönyvben például egynél több szerepet is megadhat.

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

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

A telepített szerepkörök felsorolásához egyszerűen futtassa.

ansible-galaxy list

Következtetés

A szerepek megkönnyíti az Ansible játékkönyvek újrafelhasználását és megosztását. Ily módon sok időt takarítanak meg a felhasználónak, amikor rengeteg redundáns kódot próbál írni, és túl sok időt töltenek el, amit más rendszeradminisztrációs feladatokhoz használtak volna. És ez az útmutató.