Vyhledávání na webu

Jak vytvářet a stahovat role na Ansible Galaxy a používat je – část 9


V části 9 série Ansible se dozvíte, jak vytvářet a stahovat role v Ansible Galaxy a jak je používat. Ansible je jednoduchý, ale účinný nástroj pro správu konfigurace a automatické nasazení, který bezproblémově automatizuje složité úlohy efektivním způsobem. Můžete spravovat stovky nebo dokonce tisíce serverů z jednoho řídicího uzlu pomocí jediného souboru playbooku.

Psaní příruček pro správu stejné služby v různých prostředích však může být značně těžkopádné, což obvykle vede k redundanci kódu. Složitost navíc může ztížit správu všech zařízení.

Přicházejí role. V Ansible se role používají k rozdělení příruček do opakovaně použitelných souborů, které lze použít v několika dalších případech, kdy je potřeba provést podobný úkol. To eliminovalo potřebu znovu a znovu přepisovat učebnice a ušetřilo spoustu času a energie.

Role jsou jednoduše funkcemi příruček. Role se dodává v podstatě s tím, co by představovalo playbook: Úkoly, soubory, moduly, proměnné a šablony. Všimněte si také, že každá role je omezena na konkrétní úkol nebo požadovaný výstup.

Vytvoření Ansible role

Chcete-li vytvořit roli v Ansible, jednoduše použijte syntaxi.

ansible-galaxy init role_name 

Ve vašem aktuálním pracovním adresáři bude vytvořeno více adresářů a souborů. V tomto případě jsem se rozhodl vytvořit roli v adresáři /etc/ansible/roles.

Vytvořme roli s názvem apache.

ansible-galaxy init apache

Pomocí příkazu tree se můžete podívat na adresářovou strukturu role.

tree apache

Jak vidíte, bylo vytvořeno několik adresářů, ale ne všechny budou použity v playbooku.

Chcete-li nyní nově vytvořenou roli použít v playbooku, definujte úlohu v souboru main.yml obsaženém v adresáři úloh vaší nové role.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

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

Poté vytvořte soubor playbooku a zavolejte roli podle obrázku.

--- 
- hosts: webservers
  roles:
   - apache

Instalace role z Ansible Galaxy

Role hrají klíčovou roli při sdílení kódu s ostatními uživateli v komunitě Ansible pomocí platformy Ansible Galaxy. V Ansible Galaxy získáte tisíce rolí provádějících různé úkoly, jako je instalace webových serverů a databází, monitorovací nástroje atd.

Ansible Galaxy je databáze nebo úložiště rolí Ansible, které můžete využít ve svých příručkách a pomoci zefektivnit své úkoly.

Chcete-li vyhledat roli v Ansible Galaxy, jednoduše spusťte příkaz.

ansible-galaxy search <role>

Chcete-li například vyhledat roli s názvem mysql, spusťte.

ansible-galaxy search mysql

Jak vidíte, existují stovky rolí, které odpovídají vyhledávacímu klíčovému slovu mysql. Ne všechny role však budou vykonávat to, co zamýšlíte, proto se doporučuje, abyste si pozorně přečetli pokyny.

Chcete-li získat další informace o roli, jednoduše spusťte příkaz Ansible:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

V našem příkladu nainstalujeme roli 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Role se stáhne a rozbalí do výchozího adresáře rolí umístěného na adrese /etc/ansible/roles.

Role může být poté nazývána v playbooku, například:

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

 roles:
    • 5KYDEV0P5.skydevops-mysql

Nyní můžete bezpečně spustit příručku Ansible, jak je znázorněno.

ansible-playbook install_mysql.yml

Kromě toho můžete navštívit Ansible Galaxy prostřednictvím webového prohlížeče a ručně vyhledávat role pro provádění různých úkolů, jak je uvedeno na řídicím panelu.

Chcete-li například vyhledat roli monitorování, jako je elasticsearch, klikněte na možnost „Monitoring“ a vyhledejte roli podle obrázku.

Ansible Galaxy uživatelům usnadňuje instalaci nejlepších rolí tím, že uvádí nejoblíbenější a nejvíce stahované role. Chcete-li získat více informací o konkrétní roli, jednoduše na ni klikněte.

V playbooku můžete také například zadat více než jednu roli.

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

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

Chcete-li zobrazit seznam nainstalovaných rolí, jednoduše spusťte.

ansible-galaxy list

Závěr

Role usnadňují opětovné použití a sdílení příruček Ansible. Tímto způsobem ušetří uživateli spoustu času při psaní spousty nadbytečného kódu a stráví příliš mnoho času, který by byl použit v jiných úlohách správy systému. A to je pro tento návod vše.