Izprotiet Ansible pamatkomponentus - 1. daļa


Red Hat sertificētais speciālists anonīmās automatizācijas eksāmenā (EX407) ir jauna Red Hat sertifikācijas programma, kas pārbauda jūsu prasmes izmantot Ansible, lai automatizētu sistēmu un lietojumprogrammu konfigurāciju.

Sērijas nosaukums būs “Red Hat sertificēts speciālists anonīmās automatizācijas eksāmenā (EX407)”, un tā aptver šādus eksāmenu mērķus, kuru pamatā ir Red Hat Enterprise Linux 7.5 un Ansible 2.7 un kurus aplūkosim šajā Ansible sērijā:

Lai skatītu maksu un reģistrētos eksāmenam savā valstī, pārbaudiet Ansible Automation eksāmena lapu.

Šajā Ansible sērijas 1. daļā mēs apspriedīsim dažus Ansible galveno sastāvdaļu pārskatus.

Ansible ir bezmaksas un atvērtā koda RedHat automatizācijas platforma, kas ļauj pārvaldīt un kontrolēt vairākus serverus no vienas centrālās vietas. Tas ir īpaši ideāli, ja jums ir jāveic vairāki un atkārtoti uzdevumi. Tātad, tā vietā, lai pieteiktos katrā no šiem attālinātajiem mezgliem un veiktu savus uzdevumus, jūs to varat ērti izdarīt no centrālās vietas un ērti pārvaldīt savus serverus.

Tas ir izdevīgi, ja vēlaties saglabāt konsekvenci lietojumprogrammu izvietošanā, samazināt cilvēku kļūdas un automatizēt atkārtotus un nedaudz ikdienišķus uzdevumus.

Protams, Ansible ir arī citas alternatīvas, piemēram, leļļu, šefpavārs un sāls. Tomēr lielākoties priekšroka tiek dota Ansible, jo to ir viegli lietot un viegli iemācīties.

Kāpēc ir viegli uzzināt, kā jūs varētu jautāt? Tas ir tāpēc, ka Ansible konfigurācijas un automatizācijas darbos izmanto YAML (vēl vienu iezīmēšanas valodu), kas ir cilvēkiem lasāmi un diezgan viegli sekojami. YAML izmanto SSH protokolu, lai sazinātos ar attālajiem serveriem, atšķirībā no citām automatizācijas platformām, kas saziņai ar tiem prasa attālinātos mezglos instalēt aģentu.

Pirms mēs sākam darbu ar Ansible, ir svarīgi iepazīties ar dažām pamata terminoloģijām, lai mēs nezustu un neapjuktu, kad mēs virzāmies uz priekšu.

Inventārs ir teksta fails, kas satur jūsu pārvaldīto un konfigurēto serveru vai mezglu sarakstu. Parasti serveri tiek uzskaitīti pēc to saimniekdatoru nosaukumiem vai IP adresēm.

Inventāra failā var būt attālās sistēmas, kuras nosaka to IP adreses, kā parādīts:

10.200.50.50
10.200.50.51
10.200.50.52

Alternatīvi, tos var uzskaitīt pēc grupām. Zemāk esošajā piemērā mums ir serveri, kas izvietoti 2 grupās - tīmekļa serveri un datu bāzes. Tādā veidā uz tiem var atsaukties pēc to grupas nosaukumiem, nevis pēc IP adresēm. Tas vēl vairāk vienkāršo darbības procesus.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Jums var būt vairākas grupas ar vairākiem serveriem, ja atrodaties lielā ražošanas vidē.

Spēļu grāmata ir konfigurācijas pārvaldības skriptu kopa, kas nosaka, kā uzdevumi jāveic attālos resursdatoros vai resursdatoru grupās. Skripti vai instrukcijas ir rakstītas YAML formātā.

Piemēram, jums var būt atskaņošanas grāmatas fails, lai instalētu Apache tīmekļa serveri CentOS 7 un sauktu to par httpd.yml.

Lai izveidotu atskaņošanas grāmatu, palaidiet komandu.

$ touch playbook_name.yml

Piemēram, lai izveidotu atskaņošanas grāmatu ar nosaukumu httpd, palaidiet komandu.

$ touch httpd.yml

YAML fails sākas ar 3 defisēm, kā parādīts. Faila iekšpusē pievienojiet šādus norādījumus.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Iepriekš minētā grāmata Apache tīmekļa serveri instalē attālās sistēmās, kas inventāra failā ir definētas kā tīmekļa serveri. Pēc tīmekļa servera instalēšanas Ansible vēlāk pārbauda, vai Apache tīmekļa serveris ir palaists un darbojas.

Moduļi ir diskrētas koda vienības, kuras tiek izmantotas atskaņošanas grāmatās, lai izpildītu komandas attālos resursdatoros vai serveros. Katram modulim seko arguments.

Moduļa pamatformāts ir atslēga: vērtība.

- name: Install apache packages 
    yum:   name=httpd  state=present

Iepriekš minētajā YAML koda fragmentā -name un yum ir moduļi.

Iespējama spēle ir skripts vai instrukcija, kas nosaka uzdevumu, kas jāveic serverī. Spēļu grāmatu veido lugu kolekcija. Citiem vārdiem sakot, spēļu grāmata ir vairāku lugu kolekcija, no kurām katra skaidri nosaka uzdevumu, kas jāveic serverī. Spēles eksistē YAML formātā.

Ja jums ir iepriekšēja pieredze programmēšanā, visticamāk, jūs izmantojāt mainīgos. Būtībā mainīgais norāda vērtību. Mainīgais var ietvert burtus, ciparus un pasvītrojumus, taču tam vienmēr Sākas ar burtiem.

Mainīgie tiek izmantoti, ja instrukcijas dažādās sistēmās atšķiras. Tas jo īpaši attiecas uz konfigurāciju vai dažādiem pakalpojumiem un funkcijām.

Ir 3 galvenie mainīgo veidi:

  • Playbook mainīgie
  • Inventāra mainīgie
  • Īpaši mainīgie

Sadaļā Ansible mainīgos lielumus vispirms definē, izmantojot mainīgos k, pēc tam seko mainīgā nosaukums un vērtība.

Sintakse ir tāda, kā parādīts:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Apsveriet zemāk redzamo kodu.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Iepriekš minētajā piemērā mainīgais šeit ir web_directory, un tas dod iespēju izveidot direktoriju mapē/var/www/html/path.

Fakti ir sistēmas rekvizīti, kurus apkopojusi Ansible, izpildot palīggrāmatu resursdatora sistēmā. Īpašības ietver resursdatora nosaukumu, OS saimi, CPU tipu un CPU kodolus, lai minētu dažus.

Lai ieskatītos pieejamo faktu skaitā, izsniedziet komandu.

$ ansible localhost -m setup

Kā redzat, pēc noklusējuma ir parādīts ļoti daudz faktu. Jūs varat vēl vairāk sašaurināt rezultātus, izmantojot filtra parametru, kā parādīts.

$ ansible localhost -m setup -a "filter=*ipv4"

Programmā Ansible konfigurācijas fails ir fails, kas satur dažādus parametru iestatījumus, kas nosaka, kā darbojas Ansible. Noklusējuma konfigurācijas fails ir ansible.cfg fails, kas atrodas direktorijā/etc/ansible /.

Konfigurācijas failu var apskatīt, palaižot:

$ cat /etc/ansible/ansible.cfg

Kā jūs varat novērot, tiek iekļauti vairāki parametri, piemēram, inventāra un bibliotēkas failu ceļi, sudo lietotājs, spraudņu filtri, moduļi utt. Šos parametrus var pielāgot, vienkārši tos komentējot un modificējot tajos esošās vērtības.

Turklāt jums var būt vairāki konfigurācijas faili, kas darbojas ar Ansible, izņemot noklusējuma konfigurācijas failu.

Apskatījuši Ansible galvenos komponentus, mēs ceram, ka jūs spējat tos turēt pa rokai un izvēlēties, kad virzāmies uz priekšu. Pievienojieties mums par savu nākamo tēmu.