„Ansible“ galite apibrėžti trijų tipų pasirinktinius faktus.
1) Visuotiniai faktai: Šiuos faktus gali rasti visi jūsų inventoriaus failo pagrindiniai kompiuteriai.
2) Grupės faktai: Šiuos faktus gali gauti tik konkretus pagrindinių kompiuterių rinkinys arba priimančiosios grupė.
3) Pagrindiniai faktai: Su šiais faktais gali susipažinti tik konkretus šeimininkas.
Šiame straipsnyje aš jums parodysiu, kaip dirbti su „Ansible custom fact“. Taigi, pradėkime.
Būtinos sąlygos:
Jei norite išbandyti šio straipsnio pavyzdžius,
1) Savo kompiuteryje turite būti įdiegę „Ansible“.
2) Jūs turite turėti bent 6 „Linux“ pagrindinius kompiuterius, sukonfigūruotus „Ansible“ automatizavimui.
„LinuxHint“ yra daug straipsnių, skirtų „Ansible“ diegimui ir kompiuterių konfigūravimui „Ansible“ automatizavimui. Jei reikia, galite juos patikrinti.
Projektų katalogo nustatymas:
Prieš pradėdami sukurkime projekto katalogą, kad galėtume sutvarkyti savo projekto failus.
Norėdami sukurti projekto katalogą papročiai-faktai / jūsų NAMAI kataloge, vykdykite šią komandą:
$ mkdir -pv pasirinktiniai faktai / grojaraščiai, host_vars, group_vars
Dabar eikite į papročiai-faktai / katalogą taip:
$ cd pasirinktiniai faktai /
Sukurkite Ansible konfigūracijos failą įmanoma.plg savo projekto kataloge taip:
$ nano galima.plg
Įveskite šias eilutes įmanoma.plg failą.
[pagal nutylėjimą]inventorius = šeimininkai
host_key_checking = Netiesa
Baigę paspauskite
Dabar sukurkite Ansible inventoriaus failą šeimininkai savo projekto kataloge taip:
$ nano šeimininkai
Įveskite šias eilutes savo šeimininko inventoriaus byla.
vm1.nodekitas.comvm2.nodekitas.com
[žiniatinklis]
vm3.nodekitas.com
vm4.nodekitas.com
[duomenų bazė]
vm [5: 6].nodekitas.com
Baigę paspauskite
Norėdami išvardyti visus galimus kompiuterius inventoriaus faile, vykdykite šią komandą:
$ ansible all --list-hostsKaip matote, savo inventoriaus byloje turiu šešis pagrindinius kompiuterius.
Norėdami išvardyti pagrindiniame kompiuteryje esančius pagrindinius kompiuterius internetas savo atsargų failo grupę, vykdykite šią komandą:
$ ansible web --list-hostsKaip matote, turiu du šeimininkus (vm3.nodekitas.com ir vm4.nodekitas.com) viduje konors internetas mano atsargų bylos grupę.
Norėdami išvardyti pagrindiniame kompiuteryje esančius pagrindinius kompiuterius duomenų bazė savo atsargų failo grupę, vykdykite šią komandą:
$ ansible duomenų bazė - list-hostsKaip matote, turiu du šeimininkus (vm5.nodekitas.com ir vm6.nodekitas.com) viduje konors duomenų bazė mano atsargų bylos grupę.
Darbas su galimais globaliais faktais:
Šiame skyriuje aš jums parodysiu, kaip apibrėžti galimus visuotinius faktus / kintamuosius savo inventoriaus faile ir pasiekti juos iš jūsų „Ansible“ knygų. Taip pat parodysiu, kaip atskirame faile apibrėžti pasaulinius faktus / kintamuosius.
Pirmiausia atidarykite šeimininko inventoriaus failas su šia komanda:
$ nano šeimininkai
Dabar pridėkite pažymėtas eilutes šeimininko inventoriaus byla. Baigę paspauskite
"
Jūs įtraukiate pasaulinius faktus į visi: vars skyrius. Čia aš pridėjau web_url pasaulinis faktas.
Dabar sukurkite naują pjesę print_global_fact.yaml viduje konors grojaraščiai / katalogą taip:
$ nano grojaraščiai / print_global_fact.yaml
Tada įveskite šias eilutes print_global_fact.yaml failą.
- šeimininkai: visivartotojas: ansible
užduotys:
- pavadinimas: išspausdinkite visuotinio fakto „web_url“ vertę
derinti:
msg: „Žiniatinklio URL: web_url“
Šios knygelės tikslas yra atsispausdinti web_url pasaulinis faktas.
Baigę paspauskite
Dabar paleiskite print_global_fact.yaml pjesė taip:
$ ansible-playbook playbooks / print_global_fact.yaml
Kaip matote, visi mano inventoriaus failo kompiuteriai gali pasiekti visuotinį faktą web_url.
Visuotinius faktus taip pat galite pridėti atskirame faile. Tokiu būdu galite išlaikyti atsargų failą švarų. Pažiūrėkime, kaip tai padaryti.
Pirmiausia pašalinkime pasaulinius faktus iš šeimininko inventoriaus byla.
$ nano šeimininkai
Dabar pašalinkite pažymėtas eilutes iš atsargų bylos ir paspauskite
Tada sukurkite naują failą visi viduje konors group_vars / katalogą taip:
$ nano group_vars / visi
Norėdami pridėti visuotinį faktą web_url, įveskite šioje eilutėje group_vars / all failą.
web_url: https: // www.linuxhint.comBaigę paspauskite
Norėdami patikrinti, ar galite pasiekti visuotinį faktą web_url, paleisti print_global_fact.yaml pjesė dar kartą taip:
$ ansible-playbook playbooks / print_global_fact.yaml
Kaip matote, visi mano inventoriaus failo kompiuteriai gali pasiekti visuotinį faktą web_url.
Darbas su galimais grupės faktais:
Šiame skyriuje aš jums parodysiu, kaip apibrėžti „Ansible group“ faktus / kintamuosius savo inventoriaus faile ir pasiekti juos iš jūsų „Ansible“ knygų. Taip pat parodysiu, kaip atskirame faile apibrėžti grupės faktus / kintamuosius.
Pirmiausia atidarykite šeimininko inventoriaus failas su šia komanda:
$ nano šeimininkai
Jei turite priimančiosios grupę grupė1, tada pridedate tos pagrindinės grupės grupės faktus / kintamuosius a group1: vars atsargų bylos skyrių.
[grupė1]…
[group1: vars]
kintamasis1 = reikšmė1
kintamasis2 = reikšmė2
Pavyzdžiui, norint pridėti grupės faktus / kintamuosius domeno vardas ir database_backends už internetas priimančiosios grupės, galite įvesti pažymėtas eilutes savo atsargų byloje.
Baigę paspauskite
Norėdami atsispausdinti ir patikrinti, ar galime pasiekti grupės faktus, sukurkite naują grojaraštį spausdinimo_grupės_faktai.yaml viduje konors grojaraščiai / katalogą taip:
$ nano grojaraščiai / print_group_facts.yaml
Įveskite šias eilutes savo spausdinimo_grupės_faktai.yaml failą.
- kompiuteriai: internetasvartotojas: ansible
užduotys:
- pavadinimas: spausdinkite grupės faktus
derinti:
msg: 'Domeno vardas: domain_name Duomenų bazės vidinė pusė: database_backend'
Baigę paspauskite
Dabar paleiskite spausdinimo_grupės_faktai.yaml pjesė taip:
$ ansible-playbook playbooks / print_group_facts.yaml
Kaip matote, šeimininkai internetas grupė gali pasiekti domeno vardas ir database_backend grupuoti faktai / kintamieji.
Dabar išvalykime inventoriaus failą ir sužinokime, kaip pridėti grupės faktus / kintamuosius į atskirą failą.
Pirmiausia atidarykite šeimininko inventoriaus byla taip:
$ nano faktai
Pašalinkite pažymėtas linijas nuo šeimininko inventoriaus byla. Baigę paspauskite
Pridedant grupės kintamuosius internetas pagrindinę grupę, sukurkite naują failą internetas (tas pats kaip grupės pavadinimas) group_vars / katalogą taip:
$ nano group_vars / internetas
Norėdami pridėti grupės faktus domeno vardas ir database_backend už internetas pagrindinėje grupėje pridėkite šias eilutes group_vars / internetas failą.
domeno_vardas: internetas.linuxhint.comdatabase_backend: pgsql
Baigę paspauskite
Norėdami patikrinti, ar internetas grupė gali pasiekti grupės faktus, paleisti spausdinimo_grupės_faktai.yaml pjesė taip:
$ ansible-playbook playbooks / print_group_facts.yaml
Kaip matote, šeimininkai internetas grupė gali pasiekti domeno vardas ir database_backend grupuoti faktai / kintamieji.
Darbas su galimais priimančiosios faktais:
Šiame skyriuje aš jums parodysiu, kaip apibrėžti galimus pagrindinio kompiuterio faktus / kintamuosius jūsų inventoriaus faile ir pasiekti juos iš jūsų galimų grojaraščių. Taip pat parodysiu, kaip atskirame faile apibrėžti pagrindinius faktus / kintamuosius.
Pirmiausia atidarykite šeimininko inventoriaus failas su šia komanda:
$ nano šeimininkai
Savo inventoriaus faile po pagrindinio kompiuterio DNS pavadinimo arba IP adreso galite pridėti pagrindinius kompiuterio faktus / kintamuosius taip:
www.domenas1.com kintamasis1 = vertė1 kintamasis2 = vertė2192.168.22.2 kintamasis1 = vertė3 kintamasis2 = vertė4
Pavyzdžiui, galite pridėti pagrindinius faktus / kintamuosius domeno vardas ir database_backend šeimininkams vm3.nodekitas.com ir vm4.nodekitas.com, kaip pažymėta toliau pateiktoje ekrano kopijoje.
Atkreipkite dėmesį, kad domeno vardas ir database_backend faktai / kintamieji kiekvienam kompiuteriui yra skirtingi.
Kai baigsite pridėti pagrindinius faktus / kintamuosius, paspauskite
Kadangi pridėjau tuos pačius faktus / kintamuosius, kaip ir grupės faktų / kintamųjų pavyzdyje, galime naudoti spausdinimo_grupės_faktai.yaml pjesę, kad patikrintumėte ir šių faktų / kintamųjų prieinamumą.
Paleiskite spausdinimo_grupės_faktai.yaml pjesė taip:
$ ansible-playbook playbooks / print_group_facts.yaml
Kaip matote, pagrindinio kompiuterio faktai / kintamieji yra prieinami jų nurodytam pagrindiniam kompiuteriui. Kiekvieno pagrindinio kompiuterio vertės taip pat skiriasi.
Kadangi visi pagrindiniai kompiuteriai yra atskiroje eilutėje mano inventoriaus faile, aš galėčiau lengvai pridėti pagrindinius faktus / kintamuosius savo atsargų byloje. Bet jei naudojate diapazonus, kad apibrėžtumėte pagrindinio kompiuterio aprašą savo atsargų faile, kaip pažymėta toliau pateiktame ekrano kopijoje, negalite pridėti tokių priimančiosios faktų / kintamųjų.
Pagrindiniame kompiuteryje esančius faktus / kintamuosius galite pridėti atskirame faile, lygiai taip pat, kaip darėte visuotiniams ir grupiniams faktams / kintamiesiems.
Norėdami pridėti pagrindinio kompiuterio faktus / kintamuosius vm5.nodekitas.com pagrindinį kompiuterį, sukurkite naują failą vm5.nodekitas.com (tas pats kaip pagrindinio kompiuterio DNS vardas) host_vars / katalogą taip:
$ nano host_vars / vm5.nodekitas.com
Galite pridėti priimančiosios faktus / kintamuosius db_port ir db_name šeimininkui vm5.nodekitas.com su šiomis eilutėmis.
db_port: 3306db_name: demo1
Baigę paspauskite
Tuo pačiu būdu pridėti pagrindinius kompiuterio faktus / kintamuosius vm6.nodekitas.com, sukurti naują failą vm6.nodekitas.com viduje konors host_vars / katalogą taip:
$ nano host_vars / vm6.nodekitas.com
Galite pridėti priimančiosios faktus / kintamuosius db_port ir db_name šeimininkui vm6.nodekitas.com su šiomis eilutėmis.
db_port: 8877db_name: programa1
Baigę paspauskite
Norėdami atsispausdinti ir patikrinti, ar galime pasiekti pagrindinius faktus / kintamuosius, sukurkite naują grojaraštį print_host_facts.yaml viduje konors grojaraščiai / katalogą taip:
$ nano grojaraščiai / print_host_facts.yaml
Dabar įveskite šias eilutes print_host_facts.yaml failą.
- kompiuteriai: duomenų bazėvartotojas: ansible
užduotys:
- pavadinimas: spausdinkite pagrindinio kompiuterio faktus
derinti:
msg: 'Duomenų bazės pavadinimas: db_name Duomenų bazės prievadas: db_port'
Baigę paspauskite
Norėdami patikrinti, ar šeimininkas vm5.nodekitas.com ir vm6.nodekitas.com gali pasiekti pagrindinius duomenis / kintamuosius, paleisti print_host_facts.yaml pjesė taip:
$ ansible-playbook playbooks / print_host_facts.yaml
Kaip matote, šeimininkai vm5.nodekitas.com ir vm6.nodekitas.com gali prieiti prie db_name ir db_port pagrindiniai faktai / kintamieji.
Viską sudėjus kartu: pirmenybė teikiama galimiems faktams
Šiame skyriuje kalbėsiu apie galimą faktą / kintamą pirmenybę. Taigi, pradėkime.
Prieš pradėdami, išvalykime inventoriaus bylą.
Atidaryk šeimininko inventoriaus failas su šia komanda:
$ nano šeimininkai
Pašalinkite pažymėtą skyrių iš atsargų bylos.
Štai kaip šiuo metu turėtų atrodyti jūsų atsargų byla.
Dabar pridėkite pažymėtą eilutę į savo atsargų failą. Šios eilutės prideda visuotinius faktus / kintamuosius fact_scope ir uostas.
Tada pridėkite pažymėtas eilutes savo atsargų byloje. Šios eilutės prideda fact_scope ir uostas faktai / kintamieji duomenų bazė grupė.
Galiausiai pridėkite fact_scope ir uostas pagrindiniai faktai / kintamieji vm3.nodekitas.com ir vm4.nodekitas.com kompiuteriai, kaip pažymėta žemiau esančiame ekrano kopijoje.
Baigę paspauskite
Norėdami išspausdinti visuotinių, grupinių ir pagrindinių faktų / kintamųjų vertę, sukurkite naują pjesę faktas_precendencija.yaml viduje konors grojaraščiai / katalogą taip:
„$ nano“ grojaraščiai / faktų_precedencija.yaml
Įveskite šias eilutes faktas_precedencija.yaml failą.
- šeimininkai: visivartotojas: ansible
užduotys:
- pavadinimas: atsispausdinkite visus faktus
derinti:
msg: „Faktų apimtis: fact_scope prievadas: port
Baigę paspauskite
Norėdami atsispausdinti visuotinius, grupinius ir pagrindinius duomenis / kintamuosius, paleiskite faktas_precedencija.yaml pjesė taip:
$ ansible-playbook playbooks / fact_precedence.yaml
Kaip matote, atspausdinami visuotiniai, grupiniai ir pagrindiniai faktai / kintamieji.
Atkreipkite dėmesį, kad grupės faktai / kintamieji pakeitė visuotinius faktus / kintamuosius (1). Taip pat atkreipkite dėmesį, kad pagrindiniai faktai / kintamieji pakeitė ir grupinius, ir visuotinius faktus / kintamuosius (2).
„Ansible“ faktas / kintamas prioritetas yra toks:
Priimančiojo faktas> Grupės faktas> Visuotinis faktasIšvada:
Perskaitę šį straipsnį turėtumėte patogiai dirbti su „Ansible global“, grupiniais ir pagrindiniais faktais / kintamaisiais. Prisiminkite „Ansible custom fact“ pirmenybę. Tai padės lengviau derinti „Ansible“ grojaraščius.