![XenServer de migrație fizică către virtuală](/f/13448833c042ef8d58b0c1c5615bccc1.png?width=100&height=100)
In acest Partea 4 de Ansible Series, vom explica cum să utilizați inventarul static și dinamic pentru a defini grupuri de gazde în Ansible.
Într-un Ansible, gazde sau servere gestionate care sunt controlate de Nod de control Ansible sunt definite într-un fișier inventar gazdă după cum se explică în. Un fișier de inventar gazdă este un fișier text care constă din nume de gazdă sau Adrese IP a gazdelor gestionate sau a serverelor la distanță.
Gazde gestionate pot fi listate ca intrări individuale sau clasificate sub un nume de grup așa cum vom vedea mai târziu. În Ansible, există două tipuri de fișiere de inventar: Static și Dinamic.
Să aruncăm o privire la fiecare dintre acestea și să vedem cum le putem gestiona. Până acum, presupunem că ați instalat deja Răspuns pe nodul de controlși a configurat conexiunea SSH fără parolă la gazdele gestionate.
În Ansible, un fișier de inventar static este un fișier text simplu care conține o listă de gazde gestionate declarate sub un grup de gazde folosind fie nume de gazdă, fie adrese IP.
Un nume de grup gazdă este inclus între paranteze pătrate, adică [numele Grupului]
. Intrările de gazdă gestionate sunt listate ulterior sub numele grupului, fiecare pe propria linie. După cum sa discutat anterior, gazdele sunt listate utilizând fie nume de gazdă, fie adrese IP.
[numele Grupului] Gazdă A ip_address Gazdă B ip_address. Gazdă c ip_address.
În scop ilustrativ, vom crea un fișier de inventar static.
# mkdir test_lab && cd test_lab. # gazde vim.
Fișier de inventar static
[servere web] 173.82.115.165 [database_servers] 173.82.220.239 [centru de date: copii] servere web. database_servers.
Salvați fișierul și ieșiți.
După cum puteți vedea în fișierul de inventar de mai sus, am creat 2 grupuri de gazde: servere web și database_servers. De asemenea, am creat un grup suplimentar numit centru de date care include un grup de grupuri gazdă notate cu „: copii”
sufix așa cum s-a văzut mai sus.
Ansible permite, de asemenea, plasarea grupurilor de gazde sub un nume de grup. În fișierul de inventar de mai sus, servere web și database_servers grupurile au fost plasate sub centru de date.
NOTĂ: Nu este obligatoriu să plasați gazde gestionate într-un grup de gazde. Puteți să le listați pur și simplu folosind numele de gazdă sau adresele IP, de exemplu.
173.82.202.239. 172.82.115.165. load_balancer.pnl.com.
Să folosim acum câteva comenzi Ansible pentru trimiterea la fișierul de inventar al gazdei. Sintaxa de bază pentru gestionarea inventarului este așa cum se arată.
$ ansible {model-gazdă} -i / cale / de / inventar / fișier - listă-gazde.
De exemplu,
$ ansible all -i / root / test_labs / hosts --list-hosts.
Alternativ, puteți utiliza caracterul wildcard *
a inlocui 'toate'
argument.
$ ansible * -i / root / test_labs / hosts --list-hosts.
Pentru a lista gazdele dintr-un grup, specificați grupul gazdă în locul modelului gazdă.
$ ansible webservers -i / root / test_labs / hosts --list-hosts.
Într-o configurație - în special o configurație cloud cum ar fi AWS în cazul în care fișierul de inventar continuă să se schimbe pe măsură ce adăugați sau dezafectați servere, păstrarea filelor pe gazde definite în fișierul de inventar devine o adevărată provocare. Devine incomod să reveniți la fișierul gazdă și să actualizați lista gazdelor cu adresele lor IP.
Și aici este un inventar dinamic vine să se joace. Deci, ce este un inventar dinamic? Un inventar dinamic este un script scris în Python, PHP sau orice alt limbaj de programare. Este util în medii cloud, cum ar fi AWS, unde adresele IP se schimbă odată ce un server virtual este oprit și pornit din nou.
Ansible a dezvoltat deja scripturi de inventar pentru platforme publice de cloud, cum ar fi Google Compute Engine, instanța Amazon EC2, OpenStack, RackSpace, cobbler, printre altele.
Puteți scrie propriul inventar dinamic personalizat într-un limbaj de programare la alegere. Inventarul ar trebui să returneze un format în JSON atunci când sunt trecute opțiunile corespunzătoare.
Un script care este utilizat pentru a crea un inventar dinamic trebuie executat astfel încât Ansible să îl poată utiliza.
Pentru a prelua informații despre gazde într-un script de inventar dinamic pur și simplu executați.
# ./script --list
După cum sa menționat anterior, ieșirea ar trebui să fie în JSON în formatul de mai jos.
{"webservers": {"hosts": ["webserver1.example.com", "webserver2.example.com"], "vars": {}}, "database_servers": {"hosts": ["mysql_db1", "mysql_db2"], "vars": {}}, "_meta": {"hostvars": {"mysql_db2": {}, "webserver2.example.com": {}, "webserver1.example.com": { }, "mysql_db1": {} } } }
În acest articol, am demonstrat cum să creăm atât inventare statice cât și dinamice. Pe scurt, un fișier de inventar static este un fișier text simplu care conține o listă de gazde gestionate sau noduri la distanță ale căror numere și adrese IP rămân destul de constante.
Pe de altă parte, un fișier gazdă dinamic continuă să se schimbe pe măsură ce adăugați gazde noi sau dezafectați cele vechi. Adresele IP ale gazdelor sunt, de asemenea, dinamice pe măsură ce opriți și porniți noi sisteme gazdă. Sperăm că ați găsit acest tutorial informativ.