Sådan oprettes og downloades roller på Ansible Galaxy og bruges af dem - Del 9


I del 9 af Ansible Series lærer du, hvordan du opretter og downloader roller på Ansible Galaxy og bruger dem. Ansible er et simpelt, men effektivt konfigurationsstyrings- og automatisk implementeringsværktøj, der problemfrit automatiserer komplekse opgaver på en effektiv måde. Du kan administrere hundreder eller endda tusinder af servere fra en enkelt kontrolknude ved hjælp af en enkelt playbook-fil.

Men at skrive playbooks til styring af den samme service i forskellige miljøer kan være ret besværligt, og det fører normalt til kodeunderskud. Derudover kan mere kompleksitet øge vanskelighederne med at administrere alle enheder.

Ind kommer roller. I Ansible bruges roller til at nedbryde playbøger i genanvendelige filer, der kan bruges i flere andre tilfælde, hvor behovet opstår for at udføre en lignende opgave. Dette eliminerede behovet for at omskrive playbooks igen og igen og sparer meget tid og energi.

Roller er simpelthen funktionaliteter i playbooks. En rolle leveres med stort set hvad der ville udgøre en playbook: Opgaver, filer, moduler, variabler og skabeloner. Bemærk også, at hver rolle er begrænset til en bestemt opgave eller den ønskede output.

Oprettelse af en synlig rolle

For at oprette en rolle i Ansible skal du blot bruge syntaksen.

# ansible-galaxy init role_name 

Flere mapper og filer oprettes i din nuværende arbejdsmappe. I dette tilfælde har jeg besluttet at oprette en rolle i kataloget/etc/ansible/roller.

Lad os oprette en rolle kaldet apache.

# ansible-galaxy init apache

Brug trækommandoen til at få et kig på rollebibliotekets struktur.

# tree apache

Som du kan se, er der oprettet flere mapper, men ikke alle vil blive brugt i playbook.

For at bruge din nyoprettede rolle i en playbook skal du nu definere en opgave i main.yml-filen indeholdt i opgavemappen for din nye rolle.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

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

Derefter skal du oprette en playbook-fil og kalde rollen som vist.

--- 
- hosts: webservers
  roles:
   - apache

Installation af en rolle fra Ansible Galaxy

Roller spiller en afgørende rolle i deling af kode med andre brugere i Ansible-samfundet ved hjælp af Ansible Galaxy-platformen. I Ansible Galaxy får du tusindvis af roller, der udfører forskellige opgaver såsom installation af webservere og databaser, overvågningsværktøjer osv.

Ansible Galaxy er en database eller et lager af Ansible-roller, som du kan udnytte i dine playbøger og hjælpe med at strømline dine opgaver.

For at søge efter en rolle i Ansible Galaxy skal du blot køre kommandoen.

# ansible-galaxy search <role>

For eksempel for at søge efter en rolle med navnet mysql run.

# ansible-galaxy search mysql

Som du kan se, er der hundredvis af roller, der matcher søgeordet mysql. Imidlertid vil ikke alle roller udføre, hvad du har til hensigt, så det anbefales, at du læser instruktionerne grundigt igennem.

For at indsamle mere information om en rolle skal du blot køre kommandoen Ansible:

# ansible-galaxy info 5KYDEV0P5.skydevops-mysql

I vores eksempel skal vi installere rollen 5KYDEV0P5.skydevops-mysql.

# ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Rollen downloades og ekstraheres til standardrollemappen, der findes på/etc/ansible /roller.

Rollen kan derefter kaldes i en playbook, for eksempel:

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

 roles:
    • 5KYDEV0P5.skydevops-mysql

Nu kan du sikkert køre Ansible-playbogen som vist.

# ansible-playbook install_mysql.yml

Derudover kan du besøge Ansible Galaxy via din webbrowser og manuelt søge efter roller til at udføre forskellige opgaver som beskrevet på instrumentbrættet.

For eksempel for at søge efter en overvågningsrolle som elastiksøgning skal du klikke på 'Overvågning' og søge efter rollen som vist.

Ansible Galaxy gør det lettere for brugerne at installere de bedste roller ved at angive de mest populære og mest downloadede roller. For at få flere oplysninger om en bestemt rolle skal du blot klikke på den.

I en playbook kan du f.eks. Også angive mere end en rolle.

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

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

For at liste de installerede roller skal du blot køre.

# ansible-galaxy list

Roller gør det ret nemt at genbruge og dele Ansible playbooks. På denne måde sparer de en bruger meget tid på at prøve at skrive masser af overflødig kode og bruge for meget tid, som ville have været brugt i andre systemadministrationsopgaver. Og det er det til denne guide.