Voit määrittää kolmen tyyppisen mukautetun tosiasian Ansible-sovelluksessa.
1) Yleiset tosiasiat: Nämä tosiasiat ovat saatavilla jokaisesta varastotiedostosi isännästä.
2) Ryhmän tosiasiat: Nämä tosiasiat ovat saatavilla vain tietyltä isäntäryhmältä tai isäntäryhmältä.
3) Isäntätiedot: Nämä tosiasiat ovat saatavissa vain tietyltä isännältä.
Tässä artikkelissa aion näyttää, kuinka voit työskennellä mahdollisten mukautettujen tosiasioiden kanssa. Joten, aloitetaan.
Edellytykset:
Jos haluat kokeilla tämän artikkelin esimerkkejä,
1) Tietokoneellasi on oltava asennettuna Ansible.
2) Sinulla on oltava vähintään 6 Linux-isäntää, jotka on määritetty Ansible-automaatiota varten.
LinuxHintissä on paljon artikkeleita, jotka on tarkoitettu Ansible-ohjelmiston asentamiseen ja isäntien määrittämiseen Ansible-automaatiota varten. Voit tarkistaa ne tarvittaessa.
Projektihakemiston määrittäminen:
Ennen kuin aloitamme, luodaan projektihakemisto, jotta voimme järjestää projektitiedostomme.
Projektihakemiston luominen custom-tosiasiat / omassa KOTI , suorita seuraava komento:
$ mkdir -pv custom-faktat / playbooks, host_vars, group_vars
Siirry nyt kohtaan custom-tosiasiat / hakemistoon seuraavasti:
$ cd custom-faktat /
Luo Ansible-määritystiedosto mahdollista.vrt projektihakemistossasi seuraavasti:
$ nano mahdollista.vrt
Kirjoita seuraavat rivit mahdollista.vrt tiedosto.
[oletukset]inventaario = isännät
host_key_checking = Epätosi
Kun olet valmis, paina
Luo nyt Ansible inventaariotiedosto isännät projektihakemistossasi seuraavasti:
$ nano-isännät
Kirjoita seuraavat rivit isäntä inventaariotiedosto.
vm1.nodekiitti.comvm2.nodekiitti.com
[verkko]
vm3.nodekiitti.com
vm4.nodekiitti.com
[tietokanta]
vm [5: 6].nodekiitti.com
Kun olet valmis, paina
Voit luetella kaikki käytettävissä olevat isännät varastotiedostossa suorittamalla seuraavan komennon:
$ ansible all --list-hostsKuten näette, varastotiedostossani on kuusi isäntää.
Luettelemaan isännät, jotka ovat käytettävissä verkko Suorita seuraava komento varastotiedoston ryhmässä:
$ ansible web --list-hostsKuten näette, minulla on kaksi isäntää (vm3.nodekiitti.com ja vm4.nodekiitti.com) verkko luettelo varastotiedostostani.
Luettelemaan isännät, jotka ovat käytettävissä tietokanta Suorita seuraava komento varastotiedoston ryhmässä:
$ ansible -tietokanta --list-hostsKuten näette, minulla on kaksi isäntää (vm5.nodekiitti.com ja vm6.nodekiitti.com) tietokanta luettelo varastotiedostostani.
Työskentely mahdollisten maailmanlaajuisten faktojen kanssa:
Tässä osiossa aion näyttää, kuinka määritetään mahdolliset globaalit tosiasiat / muuttujat inventaariotiedostossasi ja miten niitä käytetään Ansible-soittokirjoista. Näytän myös, kuinka globaalit tosiasiat / muuttujat määritetään erillisessä tiedostossa.
Avaa ensin isäntä varastotiedosto seuraavalla komennolla:
$ nano-isännät
Lisää nyt merkityt viivat omaan isäntä inventaariotiedosto. Kun olet valmis, paina
'
Lisäät globaalit tosiasiat kaikki: vars -osiossa. Täällä olen lisännyt web_url maailmanlaajuinen tosiasia.
Luo nyt uusi soittokirja print_global_fact.yaml että soittokirjat / hakemistoon seuraavasti:
$ nano playbooks / print_global_fact.yaml
Kirjoita sitten seuraavat rivit print_global_fact.yaml tiedosto.
- isännät: kaikkikäyttäjä: mahdollinen
tehtävät:
- nimi: Tulosta globaalin tosiasian 'web_url' arvo
virheenkorjaus:
msg: 'Verkko-URL: web_url'
Tämän soittokirjan tarkoituksena on tulostaa web_url maailmanlaajuinen tosiasia.
Kun olet valmis, paina
Suorita nyt print_global_fact.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / print_global_fact.yaml
Kuten näette, kaikki varastotiedostoni isännät voivat käyttää yleistä tosiasiaa web_url.
Voit myös lisätä yleisiä tosiseikkoja erilliseen tiedostoon. Näin voit pitää varastotiedoston puhtaana. Katsotaanpa, miten se tehdään.
Ensinnäkin poistetaan globaalit tosiasiat isäntä inventaariotiedosto.
$ nano-isännät
Poista nyt merkityt rivit inventaariotiedostosta ja paina
Luo sitten uusi tiedosto kaikki että ryhmä_varret / hakemistoon seuraavasti:
$ nano group_vars / kaikki
Lisätään globaali tosiasia web_url, kirjoita seuraavan rivin group_vars / kaikki tiedosto.
web_url: https: // www.linuxhint.comKun olet valmis, paina
Voit tarkistaa, pääsetkö maailmanlaajuiseen tosiseikkaan web_url, ajaa print_global_fact.yaml pelikirja uudelleen seuraavasti:
$ ansible-playbook playbooks / print_global_fact.yaml
Kuten näette, kaikki varastotiedostoni isännät voivat käyttää yleistä tosiasiaa web_url.
Työskentely mahdollisten ryhmätietojen kanssa:
Tässä osiossa aion näyttää, kuinka määritetään Ansible-ryhmän tosiasiat / muuttujat inventaariotiedostossasi ja miten niitä käytetään Ansible-soittokirjoista. Näytän myös, kuinka määritetään ryhmätiedot / muuttujat erillisessä tiedostossa.
Avaa ensin isäntä varastotiedosto seuraavalla komennolla:
$ nano-isännät
Jos sinulla on isäntäryhmä ryhmä 1, sitten lisäät ryhmän tosiasiat / muuttujat kyseiselle isäntäryhmälle a ryhmä1: vars osasto varastotiedostostasi.
[ryhmä1]…
[ryhmä1: vars]
muuttuja1 = arvo1
muuttuja2 = arvo2
Esimerkiksi lisätä ryhmän tosiasiat / muuttujat verkkotunnus ja database_backends varten verkko isäntäryhmä, voit kirjoittaa merkittyt rivit varastotiedostoon.
Kun olet valmis, paina
Luo uusi pelikirja, jos haluat tulostaa ja testata, pääsimmekö ryhmätietoihin print_group_facts.yaml että soittokirjat / hakemistoon seuraavasti:
$ nano playbooks / print_group_facts.yaml
Kirjoita seuraavat rivit print_group_facts.yaml tiedosto.
- hosts: verkkokäyttäjä: mahdollinen
tehtävät:
- nimi: Tulosta ryhmän tosiasiat
virheenkorjaus:
msg: 'Verkkotunnuksen nimi: domain_name tietokannan taustajärjestelmä: database_backend'
Kun olet valmis, paina
Suorita nyt print_group_facts.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / print_group_facts.yaml
Kuten näette, verkko ryhmä voi käyttää verkkotunnus ja database_backend ryhmätiedot / muuttujat.
Puhdistetaan nyt inventaariotiedosto ja katsotaan, miten ryhmätiedot / muuttujat lisätään erilliseen tiedostoon.
Avaa ensin isäntä varastotiedosto seuraavasti:
$ nanotiedot
Poista merkityt viivat isäntä inventaariotiedosto. Kun olet valmis, paina
Kun lisäämme ryhmämuuttujia verkko isäntäryhmä, luo uusi tiedosto verkko (sama kuin ryhmän nimi) ryhmä_varret / hakemistoon seuraavasti:
$ nano group_vars / verkko
Lisää ryhmän tosiasiat verkkotunnus ja database_backend varten verkko lisää seuraavat rivit group_vars / verkko tiedosto.
domain_name: verkko.linuxhint.comdatabase_backend: pgsql
Kun olet valmis, paina
Voit tarkistaa, onko verkko ryhmä voi käyttää ryhmän tosiasioita, suorittaa print_group_facts.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / print_group_facts.yaml
Kuten näette, verkko ryhmä voi käyttää verkkotunnus ja database_backend ryhmätiedot / muuttujat.
Työskentely mahdollisten isäntätietojen kanssa:
Tässä osiossa aion näyttää, kuinka määritetään mahdolliset isännän tosiasiat / muuttujat inventaariotiedostossasi ja miten niitä käytetään Ansible-soittokirjoista. Näytän myös, miten isäntätiedot / muuttujat määritetään erillisessä tiedostossa.
Avaa ensin isäntä varastotiedosto seuraavalla komennolla:
$ nano-isännät
Voit lisätä isäntätietoja / muuttujia varastotiedostoon isännän DNS-nimen tai IP-osoitteen jälkeen seuraavasti:
www.verkkotunnus1.com muuttuja1 = arvo1 muuttuja2 = arvo2192.168.22.2 muuttuja1 = arvo3 muuttuja2 = arvo4
Voit esimerkiksi lisätä isäntätietoja / muuttujia verkkotunnus ja database_backend isännille vm3.nodekiitti.com ja vm4.nodekiitti.com, kuten alla olevassa kuvakaappauksessa on merkitty.
Huomaa, että verkkotunnus ja database_backend tosiasiat / muuttujat ovat erilaiset kullekin isännälle.
Kun olet lisännyt isäntätiedot / muuttujat, paina
Koska olen lisännyt samat tosiasiat / muuttujat kuin ryhmätiedot / muuttujat -esimerkissä, voimme käyttää print_group_facts.yaml pelikirja testata myös näiden faktojen / muuttujien saatavuutta.
Suorita print_group_facts.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / print_group_facts.yaml
Kuten näette, isännän tosiasiat / muuttujat ovat heidän määritetyn isäntänsä käytettävissä. Arvot ovat erilaiset myös jokaisessa isännässä.
Koska kukin isännistä on erillisellä rivillä varastotiedostossani, voisin helposti lisätä isäntätietoja / muuttujia varastotiedostooni. Mutta jos määrität alueita varastotiedostosi isäntien määrittelemiseksi alla olevan kuvakaappauksen mukaisesti, et voi lisätä tällaisia isäntätietoja / muuttujia.
Voit lisätä isäntätietoja / muuttujia erilliseen tiedostoon, aivan kuten olet tehnyt globaaleille ja ryhmätiedoille / muuttujille.
Lisää isäntätietoja / muuttujia vm5.nodekiitti.com isäntä, luo uusi tiedosto vm5.nodekiitti.com (sama kuin isännän DNS-nimi) host_vars / hakemistoon seuraavasti:
$ nano host_vars / vm5.nodekiitti.com
Voit lisätä isännän tosiasiat / muuttujat db_port ja db_name isännälle vm5.nodekiitti.com seuraavilla riveillä.
db_port: 3306db_name: esittely1
Kun olet valmis, paina
Samalla tavalla, lisätä isäntätietoja / muuttujia isännälle vm6.nodekiitti.com, luo uusi tiedosto vm6.nodekiitti.com että host_vars / hakemistoon seuraavasti:
$ nano host_vars / vm6.nodekiitti.com
Voit lisätä isännän tosiasiat / muuttujat db_port ja db_name isännälle vm6.nodekiitti.com seuraavilla riveillä.
db_port: 8877db_nimi: sovellus1
Kun olet valmis, paina
Luo uusi pelikirja, jos haluat tulostaa ja testata, pääsimmekö pääsyyn isäntätietoihin / muuttujiin print_host_facts.yaml että soittokirjat / hakemistoon seuraavasti:
$ nano playbooks / print_host_facts.yaml
Kirjoita nyt seuraavat rivit print_host_facts.yaml tiedosto.
- hosts: tietokantakäyttäjä: mahdollinen
tehtävät:
- nimi: Tulosta isäntätiedot
virheenkorjaus:
msg: 'Tietokannan nimi: db_name Tietokantaportti: db_port'
Kun olet valmis, paina
Voit tarkistaa, onko isäntä vm5.nodekiitti.com ja vm6.nodekiitti.com voi käyttää isäntätietoja / muuttujia, suorittaa print_host_facts.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / print_host_facts.yaml
Kuten näette, isännät vm5.nodekiitti.com ja vm6.nodekiitti.com voi käyttää db_name ja db_port isäntätiedot / muuttujat.
Yhdistämällä kaikki yhteen: Mahdolliset tosiasiat etusijalla
Tässä osiossa aion puhua mahdollisesta tosiasiasta / muuttuvasta etusijasta. Joten, aloitetaan.
Ennen kuin aloitamme, puhdistetaan varastotiedosto.
Avaa isäntä varastotiedosto seuraavalla komennolla:
$ nano-isännät
Poista merkitty osa varastotiedostosta.
Näin varastotiedostosi tulisi näyttää tässä vaiheessa.
Lisää nyt merkitty rivi varastotiedostoosi. Nämä rivit lisäävät yleiset tosiasiat / muuttujat tosiasia_skooppi ja satamaan.
Lisää sitten merkityt rivit varastotiedostoon. Nämä rivit lisäävät tosiasia_skooppi ja satamaan tosiasiat / muuttujat tietokanta ryhmä.
Lisää lopuksi tosiasia_skooppi ja satamaan isäntätiedot / muuttujat vm3.nodekiitti.com ja vm4.nodekiitti.com isännät, kuten alla olevassa kuvakaappauksessa on merkitty.
Kun olet valmis, paina
Luo uusi pelikirja, jos haluat tulostaa yleisten, ryhmien ja isäntien tosiasiat / muuttujien arvon tosiasiallisuus.yaml että soittokirjat / hakemistoon seuraavasti:
$ nano playbooks / fact_precedence.yaml
Kirjoita seuraavat rivit tosiasiallisuus.yaml tiedosto.
- isännät: kaikkikäyttäjä: mahdollinen
tehtävät:
- nimi: Tulosta kaikki tosiasiat
virheenkorjaus:
msg: 'Tosiasia: fact_scope Portti: port'
Kun olet valmis, paina
Tulosta yleiset, ryhmä- ja isäntätiedot / muuttujat suorittamalla tosiasiallisuus.yaml pelikirja seuraavasti:
$ ansible-playbook playbooks / fact_precedence.yaml
Kuten näette, yleiset, ryhmä- ja isäntätiedot / muuttujat tulostetaan.
Huomaa, että ryhmän tosiasiat / muuttujat korvasivat yleiset tosiasiat / muuttujat (1). Huomaa myös, että isäntätiedot / muuttujat korvasivat sekä ryhmän että yleiset tosiasiat / muuttujat (2).
Ansiblein tosiasia / vaihteleva etusija on seuraava:
Isäntäfaktat> Ryhmätiedot> Globaalit tosiasiatPäätelmä:
Kun olet lukenut tämän artikkelin, sinun pitäisi pystyä työskentelemään mukavasti Ansible globaalien, ryhmä- ja isäntäfaktojen / muuttujien kanssa. Muista Ansible-mukautettujen tosiasioiden etusija. Se auttaa sinua testaamaan Ansible-soittokirjojasi helpommin.