Ansible

Cum se utilizează fapte personalizate Ansible

Cum se utilizează fapte personalizate Ansible
Faptele sunt ca variabile în Ansible. Ansible generează o mulțime de fapte, în funcție de gazda pe care o automatizează. Dacă aveți nevoie, puteți defini și fapte / variabile personalizate în Ansible.

Puteți defini trei tipuri de fapte personalizate în Ansible.

1) Fapte globale: Aceste informații sunt accesibile de la fiecare gazdă din fișierul dvs. de inventar.
2) Fapte de grup: Aceste fapte sunt accesibile numai de la un anumit set de gazde sau un grup de gazde.
3) Date despre gazdă: Aceste fapte sunt accesibile numai de la o anumită gazdă.

În acest articol, vă voi arăta cum să lucrați cu fapte personalizate Ansible. Asadar, haideti sa începem.

Condiții preliminare:

Dacă doriți să încercați exemplele acestui articol,

1) Trebuie să aveți Ansible instalat pe computer.
2) Trebuie să aveți cel puțin 6 gazde Linux configurate pentru automatizarea Ansible.

Există multe articole despre LinuxHint dedicate instalării Ansible și configurării gazdelor pentru automatizarea Ansible. Le puteți verifica dacă este necesar.

Configurarea unui director de proiect:

Înainte de a începe, să creăm un director de proiect, astfel încât să putem organiza fișierele noastre de proiect.

Pentru a crea un director de proiect fapte personalizate / în dumneavoastră ACASĂ director, executați următoarea comandă:

$ mkdir -pv custom-facts / playbooks, host_vars, group_vars

Acum, navigați la fapte personalizate / director după cum urmează:

$ cd fapte personalizate /

Creați un fișier de configurare Ansible ansible.cfg în directorul dvs. de proiect după cum urmează:

$ nano ansible.cfg

Tastați în rândurile următoare ansible.cfg fişier.

[implicit]
inventar = gazde
host_key_checking = Fals

După ce ați terminat, apăsați + X urmată de Da și pentru a salva ansible.cfg Fișier de configurare.

Acum, creați un fișier de inventar Ansible gazde în directorul dvs. de proiect după cum urmează:

$ nano gazde

Tastați următoarele linii în a gazdei dosar de inventar.

vm1.nodekite.com
vm2.nodekite.com
[web]
vm3.nodekite.com
vm4.nodekite.com
[Bază de date]
vm [5: 6].nodekite.com

După ce ați terminat, apăsați + X urmată de Da și pentru a salva gazde dosar de inventar.

Pentru a lista toate gazdele disponibile în fișierul dvs. de inventar, rulați următoarea comandă:

$ ansible all --list-hosts

După cum puteți vedea, am șase gazde în fișierul meu de inventar.

Pentru a lista gazdele disponibile în web grupul de fișiere de inventar, executați următoarea comandă:

$ ansible web --list-hosts

După cum puteți vedea, am două gazde (vm3.nodekite.com și vm4.nodekite.com) în web grupul fișierului meu de inventar.

Pentru a lista gazdele disponibile în Bază de date grupul de fișiere de inventar, executați următoarea comandă:

$ ansible database --list-hosts

După cum puteți vedea, am două gazde (vm5.nodekite.com și vm6.nodekite.com) în Bază de date grupul fișierului meu de inventar.

Lucrul cu Ansible Global Facts:

În această secțiune, vă voi arăta cum să definiți fapte / variabile globale Ansible în fișierul de inventar și să le accesați din cărțile de joc Ansible. De asemenea, vă voi arăta cum să definiți fapte / variabile globale într-un fișier separat.

Mai întâi, deschideți fișierul a gazdei fișier inventar cu următoarea comandă:

$ nano gazde

Acum, adăugați liniile marcate în a gazdei dosar de inventar. După ce ați terminat, apăsați + X urmată de Da și pentru a salva fișierul.

'

Adăugați fapte globale în toate: vars secțiune. Aici, am adăugat web_url fapt global.

Acum, creați un nou playbook print_global_fact.yaml în cărți de joacă / director după cum urmează:

$ nano playbooks / print_global_fact.yaml

Apoi, tastați următoarele linii în print_global_fact.yaml fişier.

- gazde: toate
utilizator: ansible
sarcini:
- name: Imprimați valoarea faptului global „web_url”
depanare:
msg: 'Adresa URL web: web_url'

Scopul acestui manual este de a imprima fișierul web_url fapt global.

După ce ați terminat, apăsați + X urmată de Da și pentru a salva print_global_fact.yaml fişier.

Acum, rulați print_global_fact.yaml playbook după cum urmează:

$ ansible-playbook playbooks / print_global_fact.yaml

După cum puteți vedea, toate gazdele din fișierul meu de inventar pot accesa faptul global web_url.

De asemenea, puteți adăuga informații globale într-un fișier separat. În acest fel, puteți păstra fișierul de inventar curat. Să vedem cum să o facem.

În primul rând, să eliminăm faptele globale din a gazdei dosar de inventar.

$ nano gazde

Acum, eliminați liniile marcate din fișierul de inventar și apăsați + X, urmată de Da și pentru a salva fișierul de inventar.

Apoi, creați un fișier nou toate în group_vars / director după cum urmează:

$ nano group_vars / all

Pentru a adăuga faptul global web_url, tastați următoarea linie în group_vars / all fişier.

web_url: https: // www.linuxhint.com

După ce ați terminat, apăsați + X urmată de Da și pentru a salva group_vars / all fişier.

Pentru a verifica dacă puteți accesa faptul global web_url, rulați print_global_fact.yaml redă din nou playbook-ul după cum urmează:

$ ansible-playbook playbooks / print_global_fact.yaml

După cum puteți vedea, toate gazdele din fișierul meu de inventar pot accesa faptul global web_url.

Lucrul cu datele Ansible Group:

În această secțiune, vă voi arăta cum să definiți fapte / variabile ale grupului Ansible în fișierul de inventar și să le accesați din cărțile de joc Ansible. De asemenea, vă voi arăta cum să definiți fapte / variabile de grup într-un fișier separat.

Mai întâi, deschideți fișierul a gazdei fișier inventar cu următoarea comandă:

$ nano gazde

Dacă aveți un grup de gazdă Grupa 1, apoi adăugați fapte / variabile ale grupului pentru acel grup gazdă într-un grupul 1: vars secțiunea din fișierul dvs. de inventar.

[Grupa 1]
..
[grup1: vars]
variabila1 = valoare1
variabila2 = valoare2

De exemplu, pentru a adăuga datele / variabilele grupului numele domeniului și backback-uri de bază de date pentru web grupul gazdă, puteți introduce liniile marcate în fișierul de inventar.

După ce ați terminat, apăsați + X urmată de Da și pentru a salva fișierul de inventar.

Pentru a imprima și a testa dacă putem accesa datele grupului, creați un nou playbook print_group_facts.yaml în cărți de joacă / director după cum urmează:

$ nano playbooks / print_group_facts.yaml

Tastați următoarele linii în print_group_facts.yaml fişier.

- gazde: web
utilizator: ansible
sarcini:
- nume: tipăriți datele grupului
depanare:
msg: 'Nume domeniu: domain_name Backend bază de date: database_backend'

După ce ați terminat, apăsați + X urmată de Da și pentru a salva print_group_facts.yaml fişier.

Acum, rulați print_group_facts.yaml playbook după cum urmează:

$ ansible-playbook playbooks / print_group_facts.yaml

După cum puteți vedea, gazdele din web grupul poate accesa fișierul numele domeniului și backend_baza de date grupează fapte / variabile.

Acum, să curățăm fișierul de inventar și să vedem cum să adăugăm fapte / variabile de grup într-un fișier separat.

Mai întâi, deschideți fișierul a gazdei fișier de inventar după cum urmează:

$ nano fapte

Eliminați liniile marcate din a gazdei dosar de inventar. După ce ați terminat, apăsați + X urmată de Da și pentru a salva gazde dosar de inventar.

Pe măsură ce adăugăm variabile de grup pentru web grup gazdă, creați un fișier nou web (la fel ca și numele grupului) în group_vars / director după cum urmează:

$ nano group_vars / web

Pentru a adăuga datele grupului numele domeniului și backend_baza de date pentru web grup gazdă, adăugați următoarele rânduri în group_vars / web fişier.

nume_domeniu: web.linuxhint.com
backback_baza de date: pgsql

După ce ați terminat, apăsați + X urmată de Da și pentru a salva group_vars / web fişier.

Pentru a verifica dacă gazdele din web grupul poate accesa datele grupului, poate rula print_group_facts.yaml playbook după cum urmează:

$ ansible-playbook playbooks / print_group_facts.yaml

După cum puteți vedea, gazdele din web grupul poate accesa numele domeniului și backend_baza de date grupează fapte / variabile.

Lucrul cu fapte despre gazda Ansible:

În această secțiune, vă voi arăta cum să definiți fapte / variabile ale gazdei Ansible în fișierul de inventar și să le accesați din cărțile de joc Ansible. De asemenea, vă voi arăta cum să definiți fapte / variabile despre gazdă într-un fișier separat.

Mai întâi, deschideți fișierul a gazdei fișier inventar cu următoarea comandă:

$ nano gazde

Puteți adăuga date / variabile despre gazdă după numele DNS sau adresa IP a gazdei în fișierul de inventar, după cum urmează:

www.domeniu1.com variabilă1 = valoare1 variabilă2 = valoare2
192.168.22.2 variabilă1 = valoare3 variabilă2 = valoare4

De exemplu, puteți adăuga date / variabile despre gazdă numele domeniului și backend_baza de date pentru gazde vm3.nodekite.com și vm4.nodekite.com, așa cum este marcat în captura de ecran de mai jos.

Observați că valoarea numele domeniului și backend_baza de date faptele / variabilele sunt diferite pentru fiecare gazdă.

După ce ați terminat adăugarea faptelor / variabilelor gazdei, apăsați + X, urmată de Da și pentru a salva a gazdei dosar de inventar.

Deoarece am adăugat aceleași fapte / variabile ca în exemplul de fapte / variabile de grup, putem folosi print_group_facts.yaml playbook pentru a testa și accesibilitatea acestor fapte / variabile.

Rulați print_group_facts.yaml playbook după cum urmează:

$ ansible-playbook playbooks / print_group_facts.yaml

După cum puteți vedea, faptele / variabilele gazdei sunt accesibile gazdei lor specificate. Valorile sunt diferite și pentru fiecare gazdă.

Deoarece fiecare dintre gazde se află într-o linie separată în fișierul meu de inventar, aș putea adăuga cu ușurință fapte / variabile despre gazdă în fișierul meu de inventar. Dar, dacă utilizați intervale pentru a defini gazde în fișierul de inventar așa cum este marcat în captura de ecran de mai jos, nu puteți adăuga fapte / variabile despre gazdă de genul acesta.

Puteți adăuga date / variabile ale gazdei într-un fișier separat, la fel cum ați făcut pentru datele / variabilele globale și de grup.

Pentru a adăuga date / variabile despre gazdă pentru vm5.nodekite.com gazdă, creați un fișier nou vm5.nodekite.com (la fel ca numele DNS al gazdei) în host_vars / director după cum urmează:

$ nano host_vars / vm5.nodekite.com

Puteți adăuga datele / variabilele gazdei db_port și db_name pentru gazdă vm5.nodekite.com cu rândurile următoare.

db_port: 3306
db_name: demo1

După ce ați terminat, apăsați + X urmată de Da și pentru a salva vm5.nodekite.com fişier.

În același mod, pentru a adăuga date / variabile despre gazdă pentru gazdă vm6.nodekite.com, creați un fișier nou vm6.nodekite.com în host_vars / director după cum urmează:

$ nano host_vars / vm6.nodekite.com

Puteți adăuga datele / variabilele gazdei db_port și db_name pentru gazdă vm6.nodekite.com cu rândurile următoare.

db_port: 8877
db_name: app1

După ce ați terminat, apăsați + X urmată de Da și pentru a salva vm6.nodekite.com fişier.

Pentru a imprima și a testa dacă putem accesa datele / variabilele gazdei, creați un nou playbook print_host_facts.yaml în cărți de joacă / director după cum urmează:

$ nano playbooks / print_host_facts.yaml

Acum, tastați următoarele linii în print_host_facts.yaml fişier.

- gazde: bază de date
utilizator: ansible
sarcini:
- nume: tipăriți datele despre gazdă
depanare:
msg: 'Nume bază de date: db_name Portul bazei de date: db_port'

După ce ați terminat, apăsați + X urmată de Da și pentru a salva print_host_facts.yaml fişier.

Pentru a verifica dacă gazda vm5.nodekite.com și vm6.nodekite.com poate accesa datele / variabilele gazdei, poate rula print_host_facts.yaml playbook după cum urmează:

$ ansible-playbook playbooks / print_host_facts.yaml

După cum puteți vedea, gazdele vm5.nodekite.com și vm6.nodekite.com poate accesa db_name și db_port gazdă fapte / variabile.

Punând totul laolaltă: Precedența faptelor răspunzătoare

În această secțiune, voi vorbi despre Ansible fact / precedence variabilă. Asadar, haideti sa începem.

Înainte de a începe, să curățăm fișierul de inventar.

Deschide a gazdei fișier inventar cu următoarea comandă:

$ nano gazde

Eliminați secțiunea marcată din fișierul de inventar.

Acesta este modul în care ar trebui să arate fișierul dvs. de inventar în acest moment.

Acum, adăugați linia marcată în fișierul de inventar. Aceste linii adaugă fapte / variabile globale fact_scope și port.

Apoi, adăugați liniile marcate în fișierul de inventar. Aceste linii adaugă fact_scope și port fapte / variabile pentru gazdele din Bază de date grup.

În cele din urmă, adăugați fact_scope și port gazdă fapte / variabile pentru vm3.nodekite.com și vm4.nodekite.com gazde, așa cum este marcat în captura de ecran de mai jos.

După ce ați terminat, apăsați + X urmată de Da și pentru a salva fișierul de inventar.

Pentru a tipări valoarea faptelor / variabilelor globale, de grup și de gazdă, creați un nou playbook fapt_precendență.yaml în cărți de joacă / director după cum urmează:

$ nano playbooks / fact_precedence.yaml

Tastați următoarele linii în fact_precedence.yaml fişier.

- gazde: toate
utilizator: ansible
sarcini:
- nume: tipăriți toate faptele
depanare:
msg: 'Fact Scope: fact_scope Port: port'

După ce ați terminat, apăsați + X urmată de Da și pentru a salva fact_precedence.yaml fişier.

Pentru a imprima datele / variabilele globale, de grup și de gazdă, rulați fact_precedence.yaml playbook după cum urmează:

$ ansible-playbook playbooks / fact_precedence.yaml

După cum puteți vedea, datele / variabilele globale, de grup și de gazdă sunt tipărite.

Observați că faptele / variabilele grupului au înlocuit faptele / variabilele globale (1). De asemenea, observați că faptele / variabilele gazdei au înlocuit atât grupul, cât și faptele / variabilele globale (2).

Precedența de fapt / variabilă a lui Ansible este după cum urmează:

Date despre gazdă> Date despre grup> Date globale

Concluzie:

După ce citiți acest articol, ar trebui să puteți lucra confortabil cu fapte / variabile globale, grup și gazdă Ansible. Amintiți-vă prioritatea faptului personalizat Ansible. Vă va ajuta să depanați mai ușor cărțile de joc Ansible.

Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...