U Ansibleu možete definirati tri vrste prilagođenih činjenica.
1) Globalne činjenice: Te su činjenice dostupne svim domaćinima u vašoj inventarnoj datoteci.
2) Grupiraj činjenice: Te su činjenice dostupne samo određenom skupu domaćina ili grupi domaćina.
3) Činjenice o domaćinu: Te su činjenice dostupne samo određenom domaćinu.
U ovom članku pokazat ću vam kako raditi s korisnim činjenicama Ansible. Pa, krenimo.
Preduvjeti:
Ako želite isprobati primjere ovog članka,
1) Na računalu morate imati instaliran Ansible.
2) Morate imati najmanje 6 Linux hostova konfiguriranih za Ansible automatizaciju.
Na LinuxHintu postoji mnogo članaka posvećenih Instaliranju Ansible i konfiguriranju hostova za Ansible automatizaciju. Možete ih provjeriti ako je potrebno.
Postavljanje direktorija projekta:
Prije nego što započnemo, kreirajmo direktorij projekta kako bismo mogli organizirati datoteke projekta.
Za stvaranje direktorija projekta custom-činjenice / u vašem DOM direktorija, pokrenite sljedeću naredbu:
$ mkdir -pv prilagođene činjenice / playbooks, host_vars, group_vars
Sada idite na prilagođene činjenice / direktorij kako slijedi:
$ cd prilagođene činjenice /
Stvorite konfiguracijsku datoteku Ansible ansible.usp u vašem direktoriju projekta kako slijedi:
$ nano ansible.usp
Utipkajte sljedeće redove ansible.usp datoteka.
[zadane postavke]inventar = domaćini
host_key_checking = Netačno
Kada završite, pritisnite
Sada stvorite datoteku inventara Ansible domaćini u vašem direktoriju projekta kako slijedi:
$ nano domaćini
Upišite sljedeće retke u svoj domaćina spis inventara.
vm1.nodekite.comvm2.nodekite.com
[mreža]
vm3.nodekite.com
vm4.nodekite.com
[baza podataka]
vm [5: 6].nodekite.com
Kada završite, pritisnite
Da biste popisali sve dostupne hostove u datoteci inventara, pokrenite sljedeću naredbu:
$ ansible all --list-hostsKao što vidite, u svojoj evidenciji inventara imam šest domaćina.
Za popis domaćina dostupnih u mreža grupi svoje inventarne datoteke, pokrenite sljedeću naredbu:
$ ansible web --list-domaćiniKao što vidite, imam dva domaćina (vm3.nodekite.com i vm4.nodekite.com) u mreža skupina moje inventarne datoteke.
Za popis domaćina dostupnih u baza podataka grupi svoje inventarne datoteke, pokrenite sljedeću naredbu:
Baza podataka $ ansible --list-hostsKao što vidite, imam dva domaćina (vm5.nodekite.com i vm6.nodekite.com) u baza podataka grupa moje inventarne datoteke.
Rad s odgovornim globalnim činjenicama:
U ovom odjeljku pokazat ću vam kako definirati globalne činjenice / varijable Ansible u svojoj datoteci inventara i pristupiti im iz svojih knjiga odgovora Ansible. Također ću vam pokazati kako definirati globalne činjenice / varijable u zasebnoj datoteci.
Prvo otvorite domaćina datoteka inventara sa sljedećom naredbom:
$ nano domaćini
Sada dodajte označene retke u svoj domaćina spis inventara. Kada završite, pritisnite
'
Globalne činjenice dodajete u sve: vars odjeljak. Evo, dodao sam web_url globalna činjenica.
Sada izradite novu knjigu pjesama print_global_fact.yaml u igraonice / direktorij kako slijedi:
$ nano playbooks / print_global_fact.yaml
Zatim unesite sljedeće retke u print_global_fact.yaml datoteka.
- domaćini: svikorisnik: ansible
zadaci:
- ime: Ispis vrijednosti globalne činjenice 'web_url'
otklanjanje pogrešaka:
msg: 'Web URL: web_url'
Svrha ove knjige priloga je ispis web_url globalna činjenica.
Kada završite, pritisnite
Sada pokrenite print_global_fact.yaml playbook kako slijedi:
$ ansible-playbook playbooks / print_global_fact.yaml
Kao što vidite, svi domaćini u mojoj inventarskoj datoteci mogu pristupiti globalnoj činjenici web_url.
Također možete dodati globalne činjenice u zasebnu datoteku. Na ovaj način možete održavati inventarnu datoteku čistom. Pogledajmo kako to učiniti.
Prvo, uklonimo globalne činjenice iz domaćina spis inventara.
$ nano domaćini
Sada uklonite označene redove iz datoteke inventara i pritisnite
Zatim stvorite novu datoteku svi u group_vars / direktorij kako slijedi:
$ nano group_vars / sve
Da se doda globalna činjenica web_url, unesite sljedeći redak u group_vars / sve datoteka.
web_url: https: // www.linuxhint.comKada završite, pritisnite
Da biste provjerili možete li pristupiti globalnoj činjenici web_url, pokrenite print_global_fact.yaml playbook opet kako slijedi:
$ ansible-playbook playbooks / print_global_fact.yaml
Kao što vidite, svi domaćini u mojoj datoteci inventara mogu pristupiti globalnoj činjenici web_url.
Rad s odgovornim činjenicama grupe:
U ovom odjeljku pokazat ću vam kako definirati činjenice / varijable grupe Ansible u svojoj inventarskoj datoteci i pristupiti im iz vaših knjiga odgovora Ansible. Također ću vam pokazati kako definirati grupne činjenice / varijable u zasebnoj datoteci.
Prvo otvorite domaćina datoteka inventara sa sljedećom naredbom:
$ nano domaćini
Ako imate grupu domaćina grupa1, tada dodajete činjenice / varijable grupe za tu grupu domaćina u grupa1: vars odjeljak vaše inventarne datoteke.
[grupa1]..
[grupa1: vars]
varijabla1 = vrijednost1
varijabla2 = vrijednost2
Na primjer, za dodavanje grupe činjenica / varijabli naziv domene i baze podataka_bakendi za mreža grupe domaćina, možete upisati označene retke u datoteci inventara.
Kada završite, pritisnite
Da biste ispisali i testirali možemo li pristupiti činjenicama o grupi, stvorite novu knjigu s igrama print_group_facts.yaml u igraonice / direktorij kako slijedi:
$ nano playbooks / print_group_facts.yaml
Upišite sljedeće retke u svoj print_group_facts.yaml datoteka.
- domaćini: webkorisnik: ansible
zadaci:
- naziv: Ispiši činjenice o grupi
otklanjanje pogrešaka:
msg: 'Ime domene: domain_name Backend baze podataka: database_backend'
Kada završite, pritisnite
Sada pokrenite print_group_facts.yaml playbook kako slijedi:
$ ansible-playbook playbooks / print_group_facts.yaml
Kao što vidite, domaćini u mreža grupa može pristupiti naziv domene i baza podataka_bakend grupirati činjenice / varijable.
A sada, počistimo datoteku inventara i pogledajte kako dodati grupne činjenice / varijable u zasebnu datoteku.
Prvo otvorite domaćina spis inventara kako slijedi:
$ nano činjenice
Uklonite označene crte iz domaćina spis inventara. Kada završite, pritisnite
Kako dodajemo grupne varijable za mreža grupa domaćina, stvorite novu datoteku mreža (isto kao i naziv grupe) u group_vars / direktorij kako slijedi:
$ nano group_vars / web
Da dodate grupne činjenice naziv domene i baza podataka_bakend za mreža grupi domaćina, dodajte sljedeće retke u group_vars / web datoteka.
ime_domene: web.linuxhint.combaza podataka_bakend: pgsql
Kada završite, pritisnite
Da biste provjerili jesu li domaćini u mreža grupa može pristupiti činjenicama o grupi, pokrenuti print_group_facts.yaml playbook kako slijedi:
$ ansible-playbook playbooks / print_group_facts.yaml
Kao što vidite, domaćini u mreža grupa može pristupiti naziv domene i baza podataka_bakend grupirati činjenice / varijable.
Rad s činjenicama o odgovornom domaćinu:
U ovom odjeljku pokazat ću vam kako definirati činjenice / varijable domaćina Ansible u svojoj inventarnoj datoteci i pristupiti im iz svojih knjiga odgovora Ansible. Također ću vam pokazati kako definirati činjenice / varijable hosta u zasebnoj datoteci.
Prvo otvorite domaćina datoteka inventara sa sljedećom naredbom:
$ nano domaćini
Činjenice / varijable hosta možete dodati nakon DNS imena ili IP adrese hosta u datoteku inventara kako slijedi:
www.domena1.com varijabla1 = vrijednost1 varijabla2 = vrijednost2192.168.22.2 varijabla1 = vrijednost3 varijabla2 = vrijednost4
Na primjer, možete dodati činjenice / varijable hosta naziv domene i baza podataka_bakend za domaćine vm3.nodekite.com i vm4.nodekite.com, kako je označeno na snimci zaslona u nastavku.
Primijetite da vrijednost naziv domene i baza podataka_bakend činjenice / varijable su različite za svakog domaćina.
Kada završite s dodavanjem činjenica / varijabli o hostu, pritisnite
Kako sam dodao iste činjenice / varijable kao u primjeru grupne činjenice / varijable, možemo koristiti print_group_facts.yaml playbook kako bi se testirala dostupnost i ovih činjenica / varijabli.
Pokrenite print_group_facts.yaml playbook kako slijedi:
$ ansible-playbook playbooks / print_group_facts.yaml
Kao što vidite, činjenice / varijable hosta dostupne su navedenom hostu. Vrijednosti su različite i za svakog domaćina.
Kako su svi domaćini u zasebnom retku u mojoj datoteci inventara, lako bih mogao dodati činjenice / varijable hosta u svoju datoteku inventara. Ali, ako koristite domete za definiranje hostova u datoteci inventara kako je označeno na snimci zaslona u nastavku, ne možete dodati činjenice / varijable hosta poput toga.
Činjenice / varijable hosta možete dodati u zasebnu datoteku, baš kao što ste to učinili za globalne i grupne činjenice / varijable.
Da biste dodali činjenice / varijable hosta za vm5.nodekite.com host, stvorite novu datoteku vm5.nodekite.com (isto kao i DNS ime hosta) u host_vars / direktorij kako slijedi:
$ nano host_vars / vm5.nodekite.com
Možete dodati činjenice / varijable hosta db_port i db_name za domaćina vm5.nodekite.com sa sljedećim redovima.
db_port: 3306db_name: demo1
Kada završite, pritisnite
Na isti način, dodati činjenice / varijable hosta za hosta vm6.nodekite.com, stvoriti novu datoteku vm6.nodekite.com u host_vars / direktorij kako slijedi:
$ nano host_vars / vm6.nodekite.com
Možete dodati činjenice / varijable hosta db_port i db_name za domaćina vm6.nodekite.com sa sljedećim redovima.
db_port: 8877db_name: app1
Kada završite, pritisnite
Da biste ispisali i testirali možemo li pristupiti činjenicama / varijablama domaćina, stvorite novu knjigu s igrama print_host_facts.yaml u igraonice / direktorij kako slijedi:
$ nano playbooks / print_host_facts.yaml
Sada unesite sljedeće retke u print_host_facts.yaml datoteka.
- domaćini: baza podatakakorisnik: ansible
zadaci:
- ime: Ispis činjenica o hostu
otklanjanje pogrešaka:
msg: 'Ime baze podataka: db_name Port baze podataka: db_port'
Kada završite, pritisnite
Da provjeri je li domaćin vm5.nodekite.com i vm6.nodekite.com može pristupiti činjenicama / varijablama domaćina, pokrenuti print_host_facts.yaml playbook kako slijedi:
$ ansible-playbook playbooks / print_host_facts.yaml
Kao što vidite, domaćini vm5.nodekite.com i vm6.nodekite.com mogu pristupiti db_name i db_port domaćin činjenice / varijable.
Sve to zajedno: Prednost odgovornih činjenica
U ovom odjeljku govorit ću o prevladavajućem činjeničnom / varijabilnom prvenstvu. Pa, krenimo.
Prije nego što započnemo, počistimo inventarnu datoteku.
Otvori domaćina datoteka inventara sa sljedećom naredbom:
$ nano domaćini
Uklonite označeni odjeljak iz inventarne datoteke.
Tako bi u ovom trenutku trebala izgledati vaša inventarna datoteka.
Sada dodajte označeni redak u datoteku inventara. Ovi redovi dodaju globalne činjenice / varijable opseg činjenica i luka.
Zatim dodajte označene retke u datoteku inventara. Ovi redovi dodaju opseg_ činjenica i luka činjenice / varijable za domaćine u baza podataka skupina.
Na kraju dodajte opseg činjenica i luka domaćin činjenice / varijable za vm3.nodekite.com i vm4.nodekite.com domaćini, kako je označeno na snimci zaslona u nastavku.
Kada završite, pritisnite
Da biste ispisali vrijednost globalnih, grupnih i hostovanih činjenica / varijabli, stvorite novu knjigu priručnika cinjenica_precencija.yaml u igraonice / direktorij kako slijedi:
$ nano knjige za igranje / činjenica_precedencija.yaml
Utipkajte sljedeće retke u činjenica_precedencija.yaml datoteka.
- domaćini: svikorisnik: ansible
zadaci:
- ime: Ispišite sve činjenice
otklanjanje pogrešaka:
msg: 'Opseg činjenica: fact_scope Ulaz: port'
Kada završite, pritisnite
Za ispis globalnih, grupnih i hostovanih činjenica / varijabli pokrenite činjenica_precedencija.yaml playbook kako slijedi:
$ ansible-playbook playbooks / fact_precedence.yaml
Kao što vidite, ispisuju se globalne, grupne i host činjenice / varijable.
Primijetite da su skupne činjenice / varijable zamijenile globalne činjenice / varijable (1). Također, primijetite da su činjenice / varijable domaćina zamijenile i grupu i globalne činjenice / varijable (2).
Prednost činjenice / varijable Ansible je sljedeća:
Činjenica o domaćinu> Činjenica o grupi> Globalna činjenicaZaključak:
Nakon što pročitate ovaj članak, trebali biste biti u mogućnosti komotno raditi s globalnim, grupnim i hostovanim činjenicama / varijablama Ansible. Sjetite se prednosti prilagođene činjenice Ansible. Pomoći će vam da lakše ispravite svoje knjige odgovora Ansible.