Kuinka luoda ja ladata rooleja Ansible Galaxyssa ja käyttää niitä - Osa 9


Ansible-sarjan osassa 9 opit luomaan ja lataamaan rooleja Ansible Galaxyssa ja käyttämään niitä. Ansible on yksinkertainen mutta tehokas kokoonpanonhallinta- ja automaattinen käyttöönottotyökalu, joka automatisoi saumattomasti monimutkaiset tehtävät tehokkaasti. Voit hallita satoja tai jopa tuhansia palvelimia yhdestä ohjaussolmusta käyttämällä yhtä pelikirjatiedostoa.

Pelikirjojen kirjoittaminen saman palvelun hallintaan eri ympäristöissä voi kuitenkin olla melko vaivalloista ja tämä yleensä johtaa koodin redundanssiin. Lisäksi monimutkaisuus voi vaikeuttaa kaikkien laitteiden hallintaa.

Mukaan tulee roolit. Ansiblessa rooleja käytetään leikkikirjojen jakamiseen uudelleenkäytettäviksi tiedostoiksi, joita voidaan käyttää useissa muissa tapauksissa, joissa on tarvetta suorittaa samanlainen tehtävä. Tämä poisti tarpeen kirjoittaa pelikirjoja uudelleen ja uudelleen ja säästää paljon aikaa ja energiaa.

Roolit ovat yksinkertaisesti pelikirjojen toimintoja. Rooliin sisältyy melkein se, mikä muodostaisi pelikirjan: tehtävät, tiedostot, moduulit, muuttujat ja mallit. Huomaa myös, että jokainen rooli on rajoitettu tiettyyn tehtävään tai haluttuun tulokseen.

Mahdollisen roolin luominen

Luo rooli Ansiblessa käyttämällä syntaksia.

ansible-galaxy init role_name 

Nykyiseen työhakemistoosi luodaan useita hakemistoja ja tiedostoja. Tässä tapauksessa olen päättänyt luoda roolin /etc/ansible/roles-hakemistoon.

Luodaan rooli nimeltä apache.

ansible-galaxy init apache

Käytä puukomentoa tarkastellaksesi roolin hakemistorakennetta.

tree apache

Kuten näet, useita hakemistoja on luotu, mutta kaikkia niitä ei käytetä pelikirjassa.

Nyt, jotta voit käyttää äskettäin luomaasi roolia leikkikirjassa, määritä tehtävä main.yml-tiedostoon, joka on uuden roolisi tehtävähakemistossa.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

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

Luo sen jälkeen pelikirjatiedosto ja kutsu roolia kuvan mukaisesti.

--- 
- hosts: webservers
  roles:
   - apache

Roolin asentaminen Ansible Galaxysta

Rooleilla on ratkaiseva rooli koodin jakamisessa muiden Ansible-yhteisön käyttäjien kanssa Ansible Galaxy -alustan avulla. Ansible Galaxyssa saat tuhansia rooleja, jotka suorittavat erilaisia tehtäviä, kuten verkkopalvelimien ja tietokantojen asennusta, valvontatyökaluja jne.

Ansible Galaxy on tietokanta tai Ansible-roolien arkisto, jota voit hyödyntää pelikirjoissasi ja auttaa virtaviivaistamaan tehtäviäsi.

Voit etsiä roolia Ansible Galaxysta suorittamalla komennon.

ansible-galaxy search <role>

Voit esimerkiksi etsiä roolia nimeltä mysql run.

ansible-galaxy search mysql

Kuten näet, on satoja rooleja, jotka vastaavat hakuavainsanaa mysql. Kaikki roolit eivät kuitenkaan suoriudu haluamallasi tavalla, joten on suositeltavaa lukea ohjeet huolellisesti läpi.

Saadaksesi lisätietoja roolista, suorita Ansible-komento:

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Esimerkissämme asennamme roolin 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Rooli ladataan ja puretaan oletusroolihakemistoon osoitteessa /etc/ansible/roles.

Roolia voidaan sen jälkeen kutsua leikkikirjaan, esimerkiksi:

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

 roles:
    • 5KYDEV0P5.skydevops-mysql

Nyt voit turvallisesti käyttää Ansible playbookia kuvan osoittamalla tavalla.

ansible-playbook install_mysql.yml

Lisäksi voit vierailla Ansible Galaxyssa verkkoselaimesi kautta ja etsiä manuaalisesti rooleja kojelaudan esittämien tehtävien suorittamiseen.

Jos haluat esimerkiksi etsiä seurantaroolia, kuten elasticsearch, napsauta Seuranta-vaihtoehtoa ja etsi roolia kuvan mukaisesti.

Ansible Galaxy helpottaa parhaiden roolien asentamista listaamalla suosituimmat ja ladatuimmat roolit. Saat lisätietoja tietystä roolista napsauttamalla sitä.

Pelikirjassa voit myös määrittää esimerkiksi useamman kuin yhden roolin.

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

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

Listaa asennetut roolit yksinkertaisesti suorittamalla.

ansible-galaxy list

Johtopäätös

Roolien ansiosta Ansible-pelikirjojen uudelleenkäyttö ja jakaminen on melko helppoa. Tällä tavalla käyttäjä säästää paljon aikaa yrittäessään kirjoittaa paljon redundanttia koodia ja viettää liian paljon aikaa, joka olisi käytetty muissa järjestelmän hallintatehtävissä. Ja siinä se tälle oppaalle.