Rakenduses Ansible saate määratleda kolme tüüpi kohandatud fakte.
1) Üldised faktid: Nendele faktidele pääsete juurde kõikidest teie varude faili hostidest.
2) Grupi faktid: Need faktid on kättesaadavad ainult kindlatest hostidest või hostigrupist.
3) Fakti faktid: Need faktid on kättesaadavad ainult kindlalt hostilt.
Selles artiklis näitan teile, kuidas töötada Ansible'i kohandatud faktidega. Alustame siis.
Eeldused:
Kui soovite proovida selle artikli näiteid,
1) Teie arvutisse peab olema installitud Ansible.
2) Teil peab olema Ansible automatiseerimise jaoks konfigureeritud vähemalt 6 Linuxi hosti.
LinuxHintis on palju artikleid, mis on pühendatud Ansible'i installimisele ja hostide konfigureerimisele Ansible'i automatiseerimiseks. Vajadusel võite neid vaadata.
Projektikataloogi seadistamine:
Enne alustamist loome projekti kataloog, et saaksime oma projektifaile korrastada.
Projektikataloogi loomiseks kohandatud faktid / oma KODU kataloogi, käivitage järgmine käsk:
$ mkdir -pv kohandatud faktid / playbooks, host_vars, group_vars
Nüüd navigeerige jaotisesse kohandatud faktid / kataloogi järgmiselt:
$ cd kohandatud faktid /
Looge Ansible konfiguratsioonifail võimalik.vrd oma projekti kataloogis järgmiselt:
$ nano on võimalik.vrd
Sisestage järgmistele ridadele teie võimalik.vrd faili.
[vaikimisi]inventar = hostid
host_key_checking = Vale
Kui olete valmis, vajutage
Nüüd looge Ansible inventuuri fail võõrustajad oma projekti kataloogis järgmiselt:
$ nano hostid
Sisestage oma rida järgmised read peremehe oma varude toimik.
vm1.nodekite.comvm2.nodekite.com
[võrk]
vm3.nodekite.com
vm4.nodekite.com
[andmebaas]
vm [5: 6].nodekite.com
Kui olete valmis, vajutage
Kõigi saadaolevate hostide loendisse loetlemiseks tehke järgmine käsk:
$ ansible all --list-hostsNagu näete, on minu inventari failis kuus hosti.
Aadressil saadaval olevate hostide loetelu võrk oma varude faili rühmas käivitage järgmine käsk:
$ ansible web --list-hostsNagu näete, on mul kaks hostit (vm3.nodekite.com ja vm4.nodekite.com) võrk minu varude faili rühm.
Aadressil saadaval olevate hostide loetelu andmebaasi oma varude faili rühmas käivitage järgmine käsk:
$ ansible andmebaas - list-hostsNagu näete, on mul kaks hosti (vm5.nodekite.com ja vm6.nodekite.com) andmebaasi minu inventuuri faili rühm.
Töötamine võimalike globaalsete faktidega:
Selles jaotises näitan teile, kuidas määratleda oma inventuuri failis Ansible globaalseid fakte / muutujaid ja pääseda neile juurde oma Ansible esiraamatutest. Samuti näitan teile, kuidas globaalseid fakte / muutujaid eraldi failis määratleda.
Esiteks avage peremehe oma inventari fail järgmise käsuga:
$ nano hostid
Nüüd lisage märgitud read oma peremehe oma varude toimik. Kui olete valmis, vajutage
"
Lisate globaalsed faktid kõik: vars jaotises. Siia olen lisanud web_url globaalne fakt.
Nüüd looge uus mänguraamat print_global_fact.yaml aastal mänguraamatud / kataloogi järgmiselt:
$ nano playbooks / print_global_fact.yaml
Seejärel tippige väljale järgmised read print_global_fact.yaml faili.
- võõrustajad: kõikkasutaja: ansible
ülesanded:
- nimi: printige globaalse fakti 'web_url' väärtus
silumine:
msg: 'Veebi URL: web_url'
Selle raamatu eesmärk on printida veebi_url globaalne fakt.
Kui olete valmis, vajutage
Nüüd käivitage print_global_fact.yaml järgmine raamat:
$ ansible-playbook playbooks / print_global_fact.yaml
Nagu näete, pääsevad kõik minu inventeerimisfaili hostid globaalsele faktile juurde web_url.
Üldiseid fakte saate lisada ka eraldi faili. Nii saate inventeerimisfaili puhtana hoida. Vaatame, kuidas seda teha.
Kõigepealt eemaldame globaalsed faktid peremehe oma varude toimik.
$ nano hostid
Nüüd eemaldage märgitud read inventeerimisfailist ja vajutage
Seejärel looge uus fail kõik aastal group_vars / kataloogi järgmiselt:
$ nano group_vars / kõik
Lisades globaalse fakti veebi_url, tippige group_vars / kõik faili.
web_url: https: // www.linuxhint.comKui olete valmis, vajutage
Kontrollimaks, kas pääsete juurde globaalsele faktile veebi_url, käivitada print_global_fact.yaml mänguraamat uuesti järgmiselt:
$ ansible-playbook playbooks / print_global_fact.yaml
Nagu näete, pääsevad kõik minu inventeerimisfaili hostid globaalsele faktile juurde veebi_url.
Töötamine grupi võimalike faktidega:
Selles jaotises näitan teile, kuidas määratleda oma inventuuri failis Ansible grupi faktid / muutujad ja pääseda neile juurde oma Ansible esiraamatutest. Samuti näitan teile, kuidas grupifaktid / muutujad eraldi failis määratleda.
Esiteks avage peremehe oma inventari fail järgmise käsuga:
$ nano hostid
Kui teil on hostgrupp rühm1, siis lisate a selle rühma faktid / muutujad selle hosti rühma jaoks rühm1: vars jaotis teie varude failis.
[rühm1]…
[rühm1: vars]
muutuja1 = väärtus1
muutuja2 = väärtus2
Näiteks rühma faktide / muutujate lisamiseks domeeninimi ja andmebaasi_taustad jaoks võrk hostgrupi, saate sisestada oma varude faili märgitud read.
Kui olete valmis, vajutage
Printimiseks ja testimiseks, kas meil on juurdepääs grupi faktidele, looge uus mänguraamat print_grupi_faktid.yaml aastal mänguraamatud / kataloogi järgmiselt:
$ nano playbooks / print_group_facts.yaml
Sisestage oma rida järgmised read print_grupi_faktid.yaml faili.
- hostid: veebkasutaja: ansible
ülesanded:
- nimi: grupi faktide printimine
silumine:
msg: 'Domeeni nimi: domain_name andmebaasi taustaprogramm: database_backend'
Kui olete valmis, vajutage
Nüüd käivitage print_grupi_faktid.yaml järgmine raamat:
$ ansible-playbook playbooks / print_group_facts.yaml
Nagu näete, on võrk rühm pääseb juurde domeeninimi ja andmebaasi_taust rühma faktid / muutujad.
Puhastame nüüd inventeerimisfaili ja vaatame, kuidas lisada grupifaktid / muutujad eraldi faili.
Esiteks avage peremehe oma varude fail järgmiselt:
$ nano faktid
Eemaldage märgitud jooned lehelt peremehe oma varude toimik. Kui olete valmis, vajutage
Kui lisame grupi muutujaid võrk hostgrupp, looge uus fail võrk (sama mis rühma nimi) group_vars / kataloogi järgmiselt:
$ nano group_vars / veeb
Grupi faktide lisamiseks domeeninimi ja andmebaasi_taust jaoks võrk lisage järgmised read ritta group_vars / veeb faili.
domeeninimi: veeb.linuxhint.comandmebaasi_taust: pgsql
Kui olete valmis, vajutage
Kontrollimaks, kas võrk grupil on juurdepääs grupi faktidele, käivitage print_grupi_faktid.yaml järgmine raamat:
$ ansible-playbook playbooks / print_group_facts.yaml
Nagu näete, on võrk rühm pääseb juurde domeeninimi ja andmebaasi_taust rühma faktid / muutujad.
Võimalike hostifaktidega töötamine:
Selles jaotises näitan teile, kuidas määratleda oma inventeerimisfailis Ansible host fakte / muutujaid ja pääseda neile juurde oma Ansible esiraamatutest. Samuti näitan teile, kuidas määratleda hostifaktid / muutujad eraldi failis.
Esiteks avage peremehe oma inventari fail järgmise käsuga:
$ nano hostid
Saate oma masinafailis lisada hosti DNS-i nime või IP-aadressi järel hosti faktid / muutujad järgmiselt:
www.domeen1.com muutuja1 = väärtus1 muutuja2 = väärtus2192.168.22.2 muutuja1 = väärtus3 muutuja2 = väärtus4
Näiteks saate lisada hosti faktid / muutujad domeeninimi ja andmebaasi_taust võõrustajatele vm3.nodekite.com ja vm4.nodekite.com, nagu on märgitud alloleval ekraanipildil.
Pange tähele, et väärtuse domeeninimi ja andmebaasi_taust faktid / muutujad on iga hosti jaoks erinevad.
Kui olete hosti faktide / muutujate lisamise lõpetanud, vajutage
Kuna olen lisanud samad faktid / muutujad nagu grupi faktide / muutujate näites, saame kasutada print_grupi_faktid.yaml ka nende faktide / muutujate ligipääsetavuse testimiseks.
Käivitage print_grupi_faktid.yaml järgmine raamat:
$ ansible-playbook playbooks / print_group_facts.yaml
Nagu näete, on hostifaktid / muutujad nende määratud hostile juurdepääsetavad. Väärtused on ka iga hosti jaoks erinevad.
Kuna kõik hostid asuvad minu inventari failis eraldi real, võiksin hõlpsalt oma massifaili lisada hostifaktid / muutujad. Kuid kui kasutate varude failis hostide määratlemiseks vahemikke, nagu on märgitud alloleval ekraanipildil, ei saa te selliseid hosti fakte / muutujaid lisada.
Saate lisada hostifaktid / muutujad eraldi faili, nagu olete teinud globaalsete ja grupeeruvate faktide / muutujate puhul.
Hosti faktide / muutujate lisamine vm5.nodekite.com host, looge uus fail vm5.nodekite.com (sama mis hosti DNS-i nimi) host_vars / kataloogi järgmiselt:
$ nano host_vars / vm5.nodekite.com
Saate lisada hosti faktid / muutujad db_port ja db_nimi peremehe jaoks vm5.nodekite.com järgmiste ridadega.
db_port: 3306db_name: demo1
Kui olete valmis, vajutage
Samamoodi saate lisada hostile fakte / muutujaid vm6.nodekite.com, looge uus fail vm6.nodekite.com aastal host_vars / kataloogi järgmiselt:
$ nano host_vars / vm6.nodekite.com
Saate lisada hosti faktid / muutujad db_port ja db_nimi peremehe jaoks vm6.nodekite.com järgmiste ridadega.
db_port: 8877db_name: rakendus1
Kui olete valmis, vajutage
Printimiseks ja testimiseks, kas pääseme juurde hostfaktidele / muutujatele, looge uus mänguraamat print_host_faktid.yaml aastal mänguraamatud / kataloogi järgmiselt:
$ nano playbooks / print_host_facts.yaml
Sisestage nüüd järgmised read print_host_faktid.yaml faili.
- hosts: andmebaaskasutaja: ansible
ülesanded:
- nimi: printige hostifaktid
silumine:
msg: 'Andmebaasi nimi: db_name Andmebaasi port: db_port'
Kui olete valmis, vajutage
Kontrollimaks, kas host vm5.nodekite.com ja vm6.nodekite.com pääseb juurde hostfaktidele / muutujatele, käivitage print_host_faktid.yaml järgmine raamat:
$ ansible-playbook playbooks / print_host_facts.yaml
Nagu näete, võõrustajad vm5.nodekite.com ja vm6.nodekite.com pääseb db_nimi ja db_port hostfaktid / muutujad.
Selle kõik kokku panemine: eelistatavad faktid
Selles osas räägin võimalikust faktist / muutuvast ülimuslikkusest. Alustame siis.
Enne alustamist koristame inventeerimisfaili.
Ava peremehe oma inventari fail järgmise käsuga:
$ nano hostid
Eemaldage märgistatud osa inventuuri failist.
Nii peaks teie varude fail selles punktis välja nägema.
Nüüd lisage oma varude faili märgitud rida. Need read lisavad üldised faktid / muutujad fakt_skeem ja sadam.
Seejärel lisage oma varude faili märgitud read. Need read lisavad fakt_skeem ja sadam faktid / muutujad hostides andmebaasi Grupp.
Lõpuks lisage fakt_skeem ja sadam hostfaktid / muutujad vm3.nodekite.com ja vm4.nodekite.com hostid, nagu on märgitud alloleval ekraanipildil.
Kui olete valmis, vajutage
Globaalse, grupi ja hostiga seotud faktide / muutujate väärtuse printimiseks looge uus mänguraamat fakt_precendence.yaml aastal mänguraamatud / kataloogi järgmiselt:
$ nano mänguraamatud / fakt_precedence.yaml
Sisestage järgmistesse ridadesse fakt_pretsedentsus.yaml faili.
- võõrustajad: kõikkasutaja: ansible
ülesanded:
- nimi: printige kõik faktid
silumine:
msg: 'Faktide ulatus: fact_scope Port: port'
Kui olete valmis, vajutage
Üldiste, rühma- ja hostifaktide / muutujate printimiseks käivitage fakt_pretsedentsus.yaml järgmine raamat:
$ ansible-playbooki mänguraamatud / fakt_precedence.yaml
Nagu näete, trükitakse globaalsed, grupi ja hostiga seotud faktid / muutujad.
Pange tähele, et rühma faktid / muutujad asendasid üldised faktid / muutujad (1). Pange tähele, et hostfaktid / muutujad asendasid nii grupi kui ka globaalsed faktid / muutujad (2).
Ansible'i fakt / muutuv prioriteet on järgmine:
Saatefakt> grupifakt> globaalne faktJäreldus:
Pärast selle artikli lugemist peaksite saama mugavalt töötada globaalse, grupi ja hostiga seotud faktide / muutujatega. Pidage meeles Ansible'i kohandatud faktide ülimuslikkust. See aitab teil oma Ansible'i raamatuid hõlpsamini siluda.