Ansible

Slik bruker du egendefinerte fakta

Slik bruker du egendefinerte fakta
Fakta er som variabler i Ansible. Ansible genererer mange fakta, avhengig av verten den automatiserer. Hvis du trenger det, kan du også definere egendefinerte fakta / variabler i Ansible.

Du kan definere tre typer tilpassede fakta i Ansible.

1) Globale fakta: Disse fakta er tilgjengelige fra alle verter i lagerfilen din.
2) Gruppefakta: Disse fakta er bare tilgjengelige fra et bestemt sett med verter eller en vertsgruppe.
3) Vertfakta: Disse fakta er bare tilgjengelige fra en bestemt vert.

I denne artikkelen skal jeg vise deg hvordan du jobber med Ansible tilpassede fakta. Så la oss komme i gang.

Forutsetninger:

Hvis du vil prøve eksemplene på denne artikkelen,

1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst 6 Linux-verter konfigurert for Ansible automatisering.

Det er mange artikler om LinuxHint dedikert til å installere Ansible og konfigurere verter for Ansible automatisering. Du kan sjekke dem ut om nødvendig.

Sette opp en prosjektkatalog:

Før vi begynner, la oss lage en prosjektkatalog slik at vi kan organisere prosjektfilene våre.

Å lage en prosjektkatalog tilpassede fakta / i din HJEM katalog, kjør følgende kommando:

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

Nå, naviger til tilpassede fakta / katalog som følger:

$ cd tilpassede fakta /

Opprett en Ansible-konfigurasjonsfil ansible.cfg i prosjektkatalogen din som følger:

$ nano ansible.cfg

Skriv inn følgende linjer din ansible.cfg fil.

[standard]
inventar = verter
host_key_checking = Usann

Når du er ferdig, trykk + X etterfulgt av Y og for å redde ansible.cfg konfigurasjonsfil.

Opprett nå en Ansible beholdningsfil verter i prosjektkatalogen din som følger:

$ nano verter

Skriv inn følgende linjer i vertens inventarfil.

vm1.nodekite.com
vm2.nodekite.com
[web]
vm3.nodekite.com
vm4.nodekite.com
[database]
vm [5: 6].nodekite.com

Når du er ferdig, trykk + X etterfulgt av Y og for å redde verter inventarfil.

For å liste alle tilgjengelige verter i lagerfilen din, kjør følgende kommando:

$ ansible all - list-hosts

Som du kan se, har jeg seks verter i beholdningsfilen min.

For å liste vertene som er tilgjengelige i nett gruppe av lagerfilen din, kjør følgende kommando:

$ ansible web - liste-verter

Som du ser har jeg to verter (vm3.nodekite.com og vm4.nodekite.com) i nett gruppe av beholdningsfilen min.

For å liste vertene som er tilgjengelige i database gruppe av lagerfilen din, kjør følgende kommando:

$ ansible database - list-hosts

Som du ser, har jeg to verter (vm5.nodekite.com og VM 6.nodekite.com) i database gruppe av beholdningsfilen min.

Arbeide med Ansible Global Facts:

I denne delen skal jeg vise deg hvordan du definerer Ansible globale fakta / variabler i lagerfilen din og får tilgang til dem fra Ansible-spillbøker. Jeg vil også vise deg hvordan du definerer globale fakta / variabler i en egen fil.

Først åpner du vertens inventarfil med følgende kommando:

$ nano verter

Legg nå til de markerte linjene i vertens inventarfil. Når du er ferdig, trykk + X etterfulgt av Y og for å lagre filen.

'

Du legger til globale fakta i alle: vars seksjon. Her har jeg lagt til web_url globalt faktum.

Lag nå en ny lekebok print_global_fact.yaml i lekebøker / katalog som følger:

$ nano playbooks / print_global_fact.yaml

Skriv deretter inn følgende linjer i print_global_fact.yaml fil.

- verter: alle
bruker: ansible
oppgaver:
- navn: Skriv ut verdien av det globale faktumet 'web_url'
feilsøke:
msg: 'Nettadresse: web_url'

Formålet med denne lekeboken er å skrive ut web_url globalt faktum.

Når du er ferdig, trykk + X etterfulgt av Y og for å redde print_global_fact.yaml fil.

Kjør nå print_global_fact.yaml spillbok som følger:

$ ansible-playbook playbooks / print_global_fact.yaml

Som du kan se, har alle vertene i lagerfilen min tilgang til det globale faktum web_url.

Du kan også legge til globale fakta i en egen fil. På denne måten kan du holde beholdningsfilen ren. La oss se hvordan vi gjør det.

La oss først fjerne de globale fakta fra vertens inventarfil.

$ nano verter

Fjern nå de merkede linjene fra lagerfilen og trykk + X, etterfulgt av Y og for å lagre lagerfilen.

Opprett deretter en ny fil alle i group_vars / katalog som følger:

$ nano group_vars / all

For å legge til det globale faktum web_url, skriv inn følgende linje i group_vars / alle fil.

web_url: https: // www.linuxhint.com

Når du er ferdig, trykk + X etterfulgt av Y og for å redde group_vars / alle fil.

For å sjekke om du kan få tilgang til det globale faktum web_url, kjør print_global_fact.yaml spillbok igjen som følger:

$ ansible-playbook playbooks / print_global_fact.yaml

Som du kan se, har alle vertene i lagerfilen min tilgang til det globale faktum web_url.

Arbeide med Ansible Group Facts:

I denne seksjonen skal jeg vise deg hvordan du definerer Ansible gruppefakta / -variabler i lagerfilen din og får tilgang til dem fra dine Ansible-spillbøker. Jeg vil også vise deg hvordan du definerer gruppefakta / variabler i en egen fil.

Først åpner du vertens inventarfil med følgende kommando:

$ nano verter

Hvis du har en vertsgruppe gruppe1, så legger du til gruppefakta / variabler for den vertsgruppen i en gruppe1: vars delen av beholdningsfilen din.

[gruppe1]
..
[gruppe1: vars]
variabel1 = verdi1
variabel2 = verdi2

For eksempel for å legge til gruppens fakta / variabler domenenavn og database_backends for nett vertsgruppe, kan du skrive inn de merkede linjene i lagerfilen.

Når du er ferdig, trykk + X etterfulgt av Y og for å lagre lagerfilen.

For å skrive ut og teste om vi kan få tilgang til gruppens fakta, opprett en ny lekebok utskriftsgruppefakta.yaml i lekebøker / katalog som følger:

$ nano playbooks / print_group_facts.yaml

Skriv inn følgende linjer i utskriftsgruppefakta.yaml fil.

- verter: web
bruker: ansible
oppgaver:
- navn: Skriv ut gruppefakta
feilsøke:
msg: 'Domain Name: domain_name Database Backend: database_backend'

Når du er ferdig, trykk + X etterfulgt av Y og for å redde utskriftsgruppefakta.yaml fil.

Kjør nå utskriftsgruppefakta.yaml spillbok som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er vertene i nett gruppen har tilgang til domenenavn og database_backend gruppefakta / variabler.

La oss nå rydde opp i inventarfilen og se hvordan du legger til gruppefakta / variabler i en egen fil.

Først åpner du vertens inventarfil som følger:

$ nano fakta

Fjern de merkede linjene fra vertens inventarfil. Når du er ferdig, trykk + X etterfulgt av Y og for å redde verter inventarfil.

Når vi legger til gruppevariabler for nett vertsgruppe, opprett en ny fil nett (samme som gruppenavnet) i group_vars / katalog som følger:

$ nano group_vars / web

For å legge til gruppens fakta domenenavn og database_backend for nett vertsgruppe, legg til følgende linjer i group_vars / web fil.

domain_name: web.linuxhint.com
database_backend: pgsql

Når du er ferdig, trykk + X etterfulgt av Y og for å redde group_vars / nett fil.

For å sjekke om vertene i nett gruppen kan få tilgang til gruppens fakta, kjøre utskriftsgruppefakta.yaml spillbok som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er vertene i nett gruppen har tilgang til domenenavn og database_backend gruppefakta / variabler.

Arbeide med fakta om synlige verter:

I denne delen skal jeg vise deg hvordan du definerer Ansible vertsfakta / -variabler i beholdningsfilen din og får tilgang til dem fra Ansible-playbooks. Jeg vil også vise deg hvordan du definerer vertsfakta / variabler i en egen fil.

Først åpner du vertens inventarfil med følgende kommando:

$ nano verter

Du kan legge til vertsfakta / -variabler etter DNS-navnet eller IP-adressen til verten i lagerfilen din som følger:

www.domene1.com variabel1 = verdi1 variabel2 = verdi2
192.168.22.2 variabel1 = verdi3 variabel2 = verdi4

For eksempel kan du legge til fakta / variabler for verten domenenavn og database_backend for vertene vm3.nodekite.com og vm4.nodekite.com, som markert i skjermbildet nedenfor.

Legg merke til at verdien av domenenavn og database_backend fakta / variabler er forskjellige for hver vert.

Når du er ferdig med å legge til fakta / variabler for verten, trykker du på + X, etterfulgt av Y og for å redde vertens inventarfil.

Ettersom jeg har lagt til de samme fakta / variablene som i eksempelet på gruppe fakta / variabler, kan vi bruke utskriftsgruppefakta.yaml spillbok for å teste tilgjengeligheten av disse fakta / variablene også.

Kjør utskriftsgruppefakta.yaml spillbok som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er vertsfakta / -variabler tilgjengelige for den angitte verten. Verdiene er forskjellige for hver vert også.

Siden hver av vertene er i en egen linje i lagerfilen min, kan jeg enkelt legge til vertsfakta / variabler i lagerfilen min. Men hvis du bruker områder for å definere verter i lagerfilen din som markert i skjermbildet nedenfor, kan du ikke legge til vertsfakta / -variabler som den.

Du kan legge til vertsfakta / -variabler i en egen fil, akkurat som du har gjort for globale og gruppefakta / -variabler.

For å legge til vertsfakta / -variabler for vm5.nodekite.com vert, opprett en ny fil vm5.nodekite.com (samme som verts-DNS-navnet) i host_vars / katalog som følger:

$ nano host_vars / vm5.nodekite.com

Du kan legge til vertsfakta / -variabler db_port og db_name for verten vm5.nodekite.com med følgende linjer.

db_port: 3306
db_name: demo1

Når du er ferdig, trykk + X etterfulgt av Y og for å redde vm5.nodekite.com fil.

På samme måte, for å legge til vertsfakta / variabler for verten VM 6.nodekite.com, opprette en ny fil VM 6.nodekite.com i host_vars / katalog som følger:

$ nano host_vars / vm6.nodekite.com

Du kan legge til vertsfakta / -variabler db_port og db_name for verten VM 6.nodekite.com med følgende linjer.

db_port: 8877
db_name: app1

Når du er ferdig, trykk + X etterfulgt av Y og for å redde VM 6.nodekite.com fil.

For å skrive ut og teste om vi kan få tilgang til vertsfaktaene / variablene, lager du en ny spillbok print_host_facts.yaml i lekebøker / katalog som følger:

$ nano playbooks / print_host_facts.yaml

Skriv inn følgende linjer i print_host_facts.yaml fil.

- verter: database
bruker: ansible
oppgaver:
- navn: Skriv ut fakta for verten
feilsøke:
msg: 'Databasenavn: db_name Databaseport: db_port'

Når du er ferdig, trykk + X etterfulgt av Y og for å redde print_host_facts.yaml fil.

For å sjekke om verten vm5.nodekite.com og VM 6.nodekite.com kan få tilgang til vertsfakta / -variabler, kjøre print_host_facts.yaml spillbok som følger:

$ ansible-playbook playbooks / print_host_facts.yaml

Som du kan se, er vertene vm5.nodekite.com og VM 6.nodekite.com kan få tilgang til db_name og db_port vert fakta / variabler.

Sette det hele sammen: Ansible Facts Precedence

I denne delen skal jeg snakke om Ansible fakta / variabel forrang. Så la oss komme i gang.

La oss rydde opp i inventarfilen før vi begynner.

Åpne vertens inventarfil med følgende kommando:

$ nano verter

Fjern den merkede delen fra lagerfilen.

Slik skal beholdningsfilen din se ut på dette punktet.

Legg nå til den markerte linjen i lagerfilen. Disse linjene legger til de globale fakta / variablene fakta_omfang og havn.

Deretter legger du til de merkede linjene i lagerfilen. Disse linjene legger til fakta_omfang og havn fakta / variabler for vertene i database gruppe.

Til slutt, legg til fakta_omfang og havn vert fakta / variabler for vm3.nodekite.com og vm4.nodekite.com verter, som markert i skjermbildet nedenfor.

Når du er ferdig, trykk + X etterfulgt av Y og for å lagre lagerfilen.

For å skrive ut verdien av globale, gruppe- og vertsfakta / -variabler, opprett en ny spillbok fakta_ tilstedeværelse.yaml i lekebøker / katalog som følger:

$ nano playbooks / fact_precedence.yaml

Skriv inn følgende linjer i fakta_precedence.yaml fil.

- verter: alle
bruker: ansible
oppgaver:
- navn: Skriv ut alle fakta
feilsøke:
msg: 'Faktaomfang: fact_scope Port: port'

Når du er ferdig, trykk + X etterfulgt av Y og for å redde fakta_precedence.yaml fil.

For å skrive ut fakta / variabler for global, gruppe og vert, kjør fakta_precedence.yaml spillbok som følger:

$ ansible-playbook playbooks / fact_precedence.yaml

Som du kan se, skrives globale, gruppe- og vertsfakta / -variabler ut.

Legg merke til at gruppens fakta / variabler erstattet de globale fakta / variablene (1). Legg også merke til at vertsfaktaene / -variablene erstattet både gruppen og globale fakta / variabler (2).

Faktisk / variabel forrang for Ansible er som følger:

Vertfakta> Gruppefakta> Globalt faktum

Konklusjon:

Etter å ha lest denne artikkelen, bør du kunne arbeide komfortabelt med Ansible globale, gruppe- og vertsfakta / -variabler. Husk Ansible tilpassede fakta forrang. Det vil hjelpe deg med å feilsøke Ansible-spillbøkene dine lettere.

Mus Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
De fleste Linux-distribusjoner leveres med "libinput" -biblioteket som standard for å håndtere inngangshendelser på et system. Den kan behandle inngan...
Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...