Hvordan lage og laste ned roller på Ansible Galaxy og bruke dem - del 9


I del 9 av en enkelt playbook-fil.

Det kan imidlertid være ganske tungvint å skrive spillebøker for å administrere den samme tjenesten i forskjellige miljøer, og dette fører vanligvis til koderedundans. I tillegg kan mer kompleksitet legge til vanskelighetene med å administrere alle enhetene.

Inn kommer roller. I Ansible brukes roller for å bryte ned playbooks til gjenbrukbare filer som kan brukes på tvers av flere andre tilfeller der det oppstår behov for å utføre en lignende oppgave. Dette eliminerte behovet for å omskrive spillebøker om og om igjen og sparer mye tid og energi.

Roller er rett og slett funksjonaliteter til playbooks. En rolle leveres med stort sett det som ville utgjøre en lekebok: Oppgaver, filer, moduler, variabler og maler. Vær også oppmerksom på at hver rolle er begrenset til en bestemt oppgave eller ønsket utgang.

Opprette en Ansible rolle

For å opprette en rolle i Ansible, bruk bare syntaksen.

# ansible-galaxy init role_name 

Flere kataloger og filer vil bli opprettet i din nåværende arbeidskatalog. I dette tilfellet har jeg bestemt meg for å opprette en rolle i katalogen /etc/ansible/roles.

La oss lage en rolle kalt apache.

# ansible-galaxy init apache

Bruk trekommandoen for å få et blikk på katalogstrukturen til rollen.

# tree apache

Som du kan se, er det opprettet flere kataloger, men ikke alle vil bli brukt i spilleboken.

Nå, for å bruke den nyopprettede rollen i en spillebok, definer en oppgave i main.yml-filen i oppgavekatalogen til den nye rollen.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

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

Etterpå lager du en playbook-fil og ringer rollen som vist.

--- 
- hosts: webservers
  roles:
   - apache

Installere en rolle fra Ansible Galaxy

Roller spiller en avgjørende rolle i å dele kode med andre brukere i Ansible-fellesskapet ved å bruke Ansible Galaxy-plattformen. I Ansible Galaxy får du tusenvis av roller som utfører forskjellige oppgaver som installasjon av webservere og databaser, overvåkingsverktøy, etc.

Ansible Galaxy er en database eller et oppbevaringssted for Ansible-roller som du kan utnytte i spillebøkene dine og hjelpe til med å strømlinjeforme oppgavene dine.

For å søke etter en rolle i Ansible Galaxy, kjør bare kommandoen.

# ansible-galaxy search <role>

For eksempel for å søke etter en rolle kalt mysql run.

# ansible-galaxy search mysql

Som du kan se, er det hundrevis av roller som samsvarer med søkeordet mysql. Imidlertid vil ikke alle roller utføre det du har tenkt, så det anbefales at du leser gjennom instruksjonene nøye.

For å samle mer informasjon om en rolle, kjør Ansible-kommandoen:

# ansible-galaxy info 5KYDEV0P5.skydevops-mysql

I vårt eksempel skal vi installere rollen 5KYDEV0P5.skydevops-mysql.

# ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Rollen lastes ned og trekkes ut til standardrollekatalogen som ligger på /etc/ansible/roles.

Rollen kan deretter kalles i en lekebok, for eksempel:

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

 roles:
    • 5KYDEV0P5.skydevops-mysql

Nå kan du trygt kjøre Ansible-spilleboken som vist.

# ansible-playbook install_mysql.yml

I tillegg kan du besøke Ansible Galaxy via nettleseren din og manuelt søke etter roller for å utføre ulike oppgaver som skissert av dashbordet.

For eksempel, for å søke etter en overvåkingsrolle som elasticsearch, klikk på Overvåking-alternativet og søk etter rollen som vist.

Ansible Galaxy gjør det enklere for brukere å installere de beste rollene ved å liste opp de mest populære og de mest nedlastede rollene. For å få mer informasjon om en spesifikk rolle, klikk på den.

I en lekebok kan du også spesifisere mer enn én rolle, for eksempel.

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

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

For å liste opp rollene som er installert, bare kjør.

# ansible-galaxy list

Roller gjør det ganske enkelt å gjenbruke og dele Ansible-spillebøker. På denne måten sparer de en bruker for mye tid på å prøve å skrive mye overflødig kode og bruker for mye tid som ville blitt brukt i andre systemadministrasjonsoppgaver. Og det er det for denne guiden.