Ifhem il-Komponenti Ewlenin ta' Ansible - Parti 1


L-eżami ta’ Red Hat Certified Specialist in Ansible Automation (EX407) huwa programm ta’ ċertifikazzjoni ġdid minn Red Hat li jittestja l-ħiliet tiegħek biex tuża Ansible biex awtomat il-konfigurazzjoni tas-sistemi u l-applikazzjonijiet.

Is-serje se tkun intitolata The Red Hat Certified Specialist in Ansible Automation exam (EX407) u tkopri l-għanijiet tal-eżami li ġejjin ibbażati fuq Red Hat Enterprise Linux 7.5 u Ansible 2.7, li se nkopru f'din is-serje Ansible:

Biex tara l-miżati u tirreġistra għal eżami f'pajjiżek, iċċekkja l-paġna tal-eżami ta' Ansible Automation.

F'din il-Parti 1 tas-serje Ansible, ser niddiskutu xi ħarsa ġenerali bażika tal-komponenti ewlenin f'Ansible.

Ansible hija pjattaforma ta' awtomazzjoni b'xejn u opensource minn RedHat li tippermettilek timmaniġġja u tikkontrolla servers multipli minn post ċentrali wieħed. Huwa speċjalment ideali meta jkollok kompiti multipli u ripetittivi li jeħtieġ li jitwettqu. Allura minflok ma tidħol f'kull wieħed minn dawn in-nodi remoti u twettaq il-kompiti tiegħek, tista 'tagħmel dan b'mod komdu minn post ċentrali u tmexxi b'mod komdu s-servers tiegħek.

Dan huwa ta 'benefiċċju meta trid iżżomm il-konsistenza fl-iskjerament tal-applikazzjoni, tnaqqas l-iżball uman u tawtomatizza kompiti ripetittivi u kemmxejn mundani.

Naturalment, hemm alternattivi oħra għal Ansible bħal Puppet, Chef, u Salt. Madankollu, Ansible huwa l-aktar preferut minħabba li huwa faċli biex tużah u sempliċi biex titgħallem.

Għaliex huwa sempliċi li titgħallem tista 'titlob? Dan għaliex Ansible juża YAML (Yet Another Markup Language) fil-konfigurazzjoni u l-impjiegi ta 'awtomazzjoni tiegħu li jinqraw mill-bniedem u pjuttost faċli biex isegwu. YAML juża protokoll SSH biex jikkomunika ma 'servers remoti, b'differenza pjattaformi ta' awtomazzjoni oħra li jeħtieġu li inti tinstalla aġent fuq nodi remoti biex tikkomunika magħhom.

Qabel ma nibdew b'Ansible, huwa importanti li tkun familjari ma' xi terminoloġiji bażiċi sabiex ma tintilefx jew ma titħawwadx hekk kif nimxu 'l quddiem.

Inventarju huwa fajl ta' test li fih lista ta' servers jew nodi li qed timmaniġġja u tikkonfigura. Normalment, is-servers huma elenkati abbażi tal-hostnames jew l-indirizzi IP tagħhom.

Fajl ta' inventarju jista' jkun fih sistemi remoti definiti mill-indirizzi IP tagħhom kif muri:

10.200.50.50
10.200.50.51
10.200.50.52

Alternattivament, jistgħu jiġu elenkati skond il-gruppi. Fl-eżempju hawn taħt, għandna servers imqiegħda taħt 2 gruppi - servers tal-web u databases. Dan il-mod jistgħu jiġu referenzjati skond l-ismijiet tal-grupp tagħhom u mhux l-indirizzi IP tagħhom. Dan jissimplifika aktar il-proċessi tat-tħaddim.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Jista 'jkollok gruppi multipli b'diversi servers jekk tkun f'ambjent ta' produzzjoni kbir.

Playbook huwa sett ta 'skripts ta' ġestjoni tal-konfigurazzjoni li jiddefinixxu kif il-kompiti għandhom jiġu esegwiti fuq hosts remoti jew grupp ta 'magni ospitanti. L-iskripts jew l-istruzzjonijiet huma miktuba fil-format YAML.

Pereżempju, jista 'jkollok fajl tal-playbook biex tinstalla l-webserver Apache fuq CentOS 7 u sejjaħlu httpd.yml.

Biex toħloq il-playbook mexxi l-kmand.

$ touch playbook_name.yml

Per eżempju biex toħloq playbook imsejjaħ httpd, mexxi l-kmand.

$ touch httpd.yml

Fajl YAML jibda bi 3 sings kif muri. Ġewwa l-fajl, żid l-istruzzjonijiet li ġejjin.

---
- 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

Il-playbook ta 'hawn fuq jinstalla s-server tal-web Apache fuq sistemi remoti definiti bħala servers tal-web fil-fajl tal-inventarju. Wara l-installazzjoni tal-webserver, Ansible aktar tard jiċċekkja jekk is-server tal-web Apache hux beda u jaħdem.

Il-moduli huma unitajiet diskreti ta 'kodiċi użati fil-playbooks għall-eżekuzzjoni ta' kmandi fuq hosts jew servers remoti. Kull modulu huwa segwit minn argument.

Il-format bażiku ta 'modulu huwa ewlieni: valur.

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

Fis-snippet tal-kodiċi YAML ta 'hawn fuq, -name u yum huma moduli.

Ansible play huwa skript jew istruzzjoni li tiddefinixxi l-kompitu li għandu jitwettaq fuq server. Kollezzjoni ta' drammi jikkostitwixxu playbook. Fi kliem ieħor, playbook huwa ġabra ta 'plays multipli, li kull wieħed minnhom jistipula b'mod ċar il-kompitu li għandu jitwettaq fuq server. Plays jeżistu fil-format YAML.

Jekk għandek sfond fl-ipprogrammar, allura x'aktarx li użajt varjabbli. Bażikament, varjabbli tirrappreżenta valur. Varjabbli tista' tinkludi ittri, numri, u underscores iżda GĦANDHA dejjem tibda b'ittri.

Il-varjabbli jintużaw meta l-istruzzjonijiet ivarjaw minn sistema għal oħra. Dan huwa veru speċjalment waqt il-konfigurazzjoni jew diversi servizzi u karatteristiċi.

Hemm 3 tipi ewlenin ta 'varjabbli:

  • Vabbli tal-playbook
  • Vabbli ta' l-inventarju
  • Vabbli speċjali

F'Ansible, il-varjabbli l-ewwel jiġu definiti bl-użu tal-vars k, imbagħad segwiti mill-isem tal-varjabbli u l-valur.

Is-sintassi hija kif murija:

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

Ikkunsidra l-kodiċi hawn taħt.

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

Fl-eżempju ta 'hawn fuq, il-varjabbli hawnhekk hija web_directory u tagħti struzzjonijiet lil ansible biex toħloq direttorju fil-mogħdija /var/www/html/.

Il-fatti huma proprjetajiet tas-sistema miġbura minn Ansible meta tesegwixxi playbook fuq sistema ospitanti. Il-proprjetajiet jinkludu l-isem tal-host, il-familja tal-OS, it-tip ta 'CPU, u l-qlub tas-CPU biex insemmu xi ftit.

Biex ikollok idea tan-numru ta' fatti disponibbli għall-użu toħroġ il-kmand.

$ ansible localhost -m setup

Kif tistgħu taraw, numru kbir ta 'fatti ġew murija awtomatikament. Tista' tkompli tnaqqas ir-riżultati billi tuża l-parametru tal-filtru kif muri.

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

F'Ansible, fajl ta' konfigurazzjoni huwa fajl li fih settings ta' parametri differenti li jiddeterminaw kif jaħdem Ansible. Il-fajl tal-konfigurazzjoni default huwa l-fajl ansible.cfg li jinsab fid-direttorju /etc/ansible/.

Tista' tara l-fajl tal-konfigurazzjoni billi tħaddem:

$ cat /etc/ansible/ansible.cfg

Kif tista' tosserva, diversi parametri huma inklużi bħall-mogħdijiet tal-fajl tal-inventarju u tal-librerija, utent sudo, filtri tal-plugin, moduli, eċċ. Dawn il-parametri jistgħu jiġu aġġustati sempliċement billi tikkummentahom u timmodifika l-valuri fihom.

Barra minn hekk, jista 'jkollok fajls ta' konfigurazzjonijiet multipli li jaħdmu ma 'Ansible minbarra l-fajl tal-konfigurazzjoni default tiegħek.

Wara li ħares lejn il-komponenti ewlenin f'Ansible, nittamaw li tkun f'pożizzjoni li żżommhom fuq ponot subgħajk u tagħżelhom hekk kif nimxu 'l quddiem. Ingħaqad magħna fuq is-suġġett li jmiss tiegħek.