Ansible Galaxy: tot ce trebuie să știți

Publicat: 2022-09-29

Ansible este un instrument popular de gestionare a configurației open-source. Pe de altă parte, Ansible Galaxy este un depozit de roluri Ansible.

S-ar putea să aveți doar o mână de manuale ca administrator de sistem începător. Pe măsură ce abilitățile dumneavoastră de automatizare se îmbunătățesc și vă familiarizați mai mult cu Ansible, veți învăța toate cele mai bune practici. Pe măsură ce vă măriți cărțile de joc, veți realiza și cât de important este Ansible Galaxy.

Ce este Ansible Galaxy?

Ansible Galaxy este un depozit online open-source bazat pe web pentru conținut Ansible (în principal roluri și colecții). Este aproape ca și cum ai crea ceva nou și vrei să-l împărtășești cu alții.

Dacă aveți probleme cu automatizarea Ansible sau aveți nevoie de o soluție pre-ambalată de la alții pentru a vă porni proiectele de automatizare, Ansible Galaxy vă poate ajuta. De exemplu, puteți avea roluri, colecții, module sau pluginuri. Mulți membri ai comunității și-au încărcat deja colecțiile și rolurile Ansible.

Ansible-Galaxy-2

Pentru a îndeplini sarcini precum instalarea de roluri din Galaxy sau orice SCM git, crearea sau eliminarea de roluri sau efectuarea unor sarcini pe site-ul Galaxy, putem folosi comanda „ansible-galaxy”. Această comandă vine preinstalată cu Ansible, astfel încât să o puteți utiliza imediat după instalarea Ansible.

Proiectul Galaxy este un proiect open-source care ne permite să găzduim serverele noastre interne Galaxy. Pentru a utiliza serverul intern Galaxy, va trebui să editați configurația implicită în fișierul Ansible.cfg cu adresa serverului serverului intern Galaxy deoarece, implicit, folosește adresa serverului galaxy.ansible.com.

Prezentare generală Ansible

Ansible poate fi descris ca un multiplicator care automatizează și scalează infrastructurile de toate dimensiunile. Poate fi folosit pentru a gestiona configurațiile, orchestrarea implementărilor și alte funcții. Ansible este foarte ușor de configurat. Ansible poate fi folosit chiar și de un administrator de sistem începător pentru a automatiza infrastructura în doar câteva ore.

Ansible automatizează utilizând protocolul SSH. Mecanismul de control folosește o conexiune SSH pentru a comunica cu gazdele sale țintă (de obicei, gazdele Linux). Administratorii de sistem Windows pot folosi în continuare Ansible pentru a-și automatiza mediile Windows cu WinRM în loc de SSH. Mașina de control trebuie să ruleze în continuare Linux.

Ansible poate efectua sarcini comune de administrator de sistem, cum ar fi corecția, actualizarea, gestionarea grupurilor și utilizatorilor, furnizarea și alte sarcini administrative.

Ansible este cel mai utilizat și popular instrument de gestionare a configurației, orchestrare și implementare în prezent. Simplitatea sa este unul dintre principalele sale puncte forte. Este simplu, puternic, dar fără agent. Aceasta înseamnă că un administrator de sistem nou sau entry-level poate automatiza infrastructura în doar câteva ore. Ansible permite scalarea rapidă, eficiența și funcționalitatea încrucișată.

Se lucrează la Ansible Galaxy

Apoi, să deschidem terminalul și să rulăm câteva comenzi folosind Ansible Galaxy. Dar înainte de asta, trebuie să aveți cel mai recent Ansible instalat pe sistemul dumneavoastră.

Când aveți cel mai recent Ansible instalat pe sistemul dvs., trebuie doar să introduceți ansible-galaxy în terminal și veți obține toate opțiunile disponibile cu Galaxy.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy 
galaxie-ansible

În primul rând, puteți începe cu comanda init și puteți crea un rol. Aici creez un rol de „testare”. Utilizați comanda ls pentru a verifica dacă rolul a fost creat cu succes. Comanda init creează, de asemenea, fișierele necesare în directorul rolului de testare.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing
ansible-galaxy-init

Ansible galaxy este o comunitate mare și activă în care au fost deja create multe roluri pe care le poți folosi direct.

Mai jos este pagina care se va deschide când veți naviga pe „galaxy.ansible.com”, sau putem spune că este pagina de pornire a site-ului „Ansible Galaxy”. Putem face clic pe orice categorie populară din pagina de pornire sau putem face clic pe butonul „Căutare” pentru a obține mai multe filtre pentru a aplica o căutare granulară.

ansible-galaxie

De exemplu, dacă căutați un rol de server MySQL, căutați-l și faceți clic pe butonul de filtrare. Puteți vedea că geerlingguy are descărcări maxime; putem încerca să instalăm acest rol. Faceți clic pe geerlingguy MySQL.

ansible-galaxy-mysql

Veți primi apoi comanda de instalare pentru a instala acest rol folosind ansible-galaxy .

ansible-galaxy-install-mysql

Rulați comanda menționată în instantaneul de mai sus pentru a descărca și instala rolul de server MySQL pe mașina dvs.

 ubuntu@ubuntu-VirtualBox:~$ instalează ansible-galaxy geerlingguy.mysql 
ansible-galaxy-install

Dacă știți deja ce rol să căutați după un anumit autor, puteți utiliza comanda de căutare așa cum se arată mai jos.

 ubuntu@ubuntu-VirtualBox:~$ căutare ansible-galaxy elasticsearch --author geerlingguy 
ansible-galaxie-căutare

Comenzi comune Ansible Galaxy

Comanda ansible-galaxy gestionează roluri și colecții folosind galaxy.ansible.com. Mai jos sunt câteva comenzi ansible-galaxy foarte utile pe care fiecare administrator de sistem le folosește din când în când:

  • ansible-galaxy list: Această comandă galaxy afișează o listă a tuturor rolurilor instalate, cu numerele lor de versiune.
  • ansible-galaxy remove: Această comandă galaxy elimină un rol instalat pe sistem.
  • ansible-galaxy info: Această comandă galaxy va oferi informații detaliate despre Ansible Galaxy.
  • ansible-galaxy init : Această comandă pentru galaxie poate fi folosită pentru a crea un șablon de rol potrivit pentru trimiterea către Ansible Galaxy.
  • ansible-galaxy import : această comandă galaxy necesită o autentificare pentru a importa un rol de pe site-ul oficial galaxy.

Comenzile de mai sus (init, import, install, remove) pot fi folosite cu comanda ansible-galaxy collection pentru a gestiona colecțiile folosind Ansible galaxy.

Acum să vorbim despre roluri și colecții din Ansible Galaxy.

Creați roluri cu Ansible Galaxy

Ansible Galaxy este practic un depozit public mare pentru rolurile Ansible. Rolurile vin cu READMEs -uri care explică utilizarea și variabilele. Galaxy are multe roluri care evoluează și cresc continuu.

Galaxy poate adăuga surse de rol, cum ar fi GitHub, folosind git. Ansible Galaxy ne permite să creăm roluri Ansible folosind comanda ansible-galaxy . Ansible-galaxy init poate fi folosit pentru a inițializa un nou rol galaxie sau puteți folosi comanda ansible-galaxy install <name of role> pentru a instala rolul.

Înainte de a le putea folosi în manuale, rolul trebuie să fie descărcat. După ce au fost plasate în directorul implicit /etc/ansible/roles , puteți găsi exemple de roluri.

Structura rolului Ansible și semnificația acesteia

Mai jos sunt fișierele și directoarele create atunci când este instalat un rol:

  • README.md este fișierul Readme care descrie rolul. Fișierul readme conține toate detaliile despre parametrii de intrare și exemplul yml .
  • sarcini – Toate sarcinile pot fi înscrise în funcție de Rol la sarcini. Punctul de intrare pentru Rol este Main.yml. Aici începe execuția. Acest fișier poate conține și alte fișiere.
  • Handlers – Această categorie include handler-uri care pot fi utilizați în acest rol sau în orice alt rol.
  • defaults – Variabilele implicite pentru Rol.
  • vars – Variabile care sunt mai importante decât valorile implicite pentru Rol.
  • Fișiere – Aceste fișiere pot fi implementate folosind Role.
  • Șabloane – Această secțiune conține șabloane care pot fi utilizate prin Rol.
  • meta – Metadatele pot fi folosite pentru a defini rolurile în meta. Acest fișier ar trebui să includă și orice dependențe de rol.
  • Teste – teste CI care urmează să fie executate.
  • bibliotecă – Încorporarea modulelor sau pluginurilor în roluri. Nu este creat de comanda init. De asemenea, puteți crea un modul personalizat în Python în acest folder și apoi îl puteți utiliza în sarcinile dvs.

Creați colecții cu Ansible Galaxy

Ansible Galaxy este cel mai bun instrument de gestionare a rolurilor și a fost folosit de ani de zile. Cu toate acestea, veți vedea noi funcții sau modificări în Ansible Galaxy. Ansible versiunea 2.2.8 include acum caracteristica de colectare.

Conținutul Ansible poate fi distribuit folosind colecții. Sunt folosite pentru ambalarea și distribuirea de playbook-uri și roluri, module, precum și plugin-uri.

Următoarea structură stă la baza colecțiilor:

 Colectie/
├── documente/
├── galaxie.yml
├── pluginuri/
│ ├──
module/
│ │ └── module1.py
│ ├──
inventar/
│ └── .../
├── README.md
├── roluri/
│ ├──
rol 1/
│ ├──
rol 2/
│ └── .../
├── cărți de joc/
│ ├──
fisiere/
│ ├──
vars/
│ ├──
șabloane/
│ └── sarcini/
└── teste/

Crearea unui schelet de colecție

Pentru a instala o colecție pe computer, puteți utiliza comanda de instalare a colecției ansible-galaxy.

În special, unele subcomenzi pot fi folosite și cu galaxia ansible.

  • init : creează o structură de bază de colecție bazată pe șablonul implicit al Ansible'sle sau pe al tău
  • build : creează un artefact de colecție care poate fi încărcat în Galaxy sau în propriul depozit
  • publish : Galaxy publică un artefact de colecție integrată
  • install : instalează una sau mai multe colecții

Concluzie

Galaxia Ansible este o modalitate excelentă de a vă organiza și de a vă gândi la cărțile de rol în continuă creștere. Ansible Galaxy are aproximativ 39.000 de autori comunitari, 30.000 de roluri și 1656 de colecții care pot fi folosite pentru a demara rapid proiectul nostru de automatizare. Ghidul dezvoltatorului și ghidul colaboratorilor explică cum să contribui la codul existent Ansible Galaxy, care este un proiect open-source.

Ați putea fi, de asemenea, interesat de sarcinile Sysadmin pe care le puteți automatiza cu Ansible.