Synlig

Sådan bruges anvendelige brugerdefinerede fakta

Sådan bruges anvendelige brugerdefinerede fakta
Fakta er som variabler i Ansible. Ansible genererer mange fakta afhængigt af den vært, det automatiserer. Hvis du har brug for det, kan du også definere brugerdefinerede fakta / variabler i Ansible.

Du kan definere tre typer brugerdefinerede fakta i Ansible.

1) Globale fakta: Disse fakta er tilgængelige fra alle værter i din beholdningsfil.
2) Gruppefakta: Disse fakta er kun tilgængelige fra et bestemt sæt værter eller en værtsgruppe.
3) Værtsfakta: Disse fakta er kun tilgængelige fra en bestemt vært.

I denne artikel vil jeg vise dig, hvordan du arbejder med Ansible tilpassede fakta. Så lad os komme i gang.

Forudsætninger:

Hvis du vil prøve eksemplerne på denne artikel,

1) Du skal have Ansible installeret på din computer.
2) Du skal have mindst 6 Linux-værter konfigureret til Ansible-automatisering.

Der er mange artikler om LinuxHint dedikeret til installation af Ansible og konfigurering af værter til Ansible-automatisering. Du kan tjekke dem ud, hvis det er nødvendigt.

Opsætning af et projektkatalog:

Lad os oprette en projektmappe, inden vi kommer i gang, så vi kan organisere vores projektfiler.

For at oprette et projektmappe brugerdefinerede fakta / i din HJEM bibliotek, kør følgende kommando:

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

Naviger nu til brugerdefinerede fakta / katalog som følger:

$ cd brugerdefinerede fakta /

Opret en Ansible konfigurationsfil ansible.cfg i din projektmappe som følger:

$ nano ansible.cfg

Indtast de følgende linjer din ansible.cfg fil.

[standard]
beholdning = værter
host_key_checking = Falsk

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde ansible.cfg konfigurationsfil.

Opret nu en Ansible beholdningsfil værter i din projektmappe som følger:

$ nano værter

Indtast følgende linjer i din værtens opgørelsesfil.

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

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde værter opgørelsesfil.

For at liste alle de tilgængelige værter i din beholdningsfil skal du køre følgende kommando:

$ ansible all --list-hosts

Som du kan se, har jeg seks værter i min beholdningsfil.

For at liste de værter, der er tilgængelige i web gruppe af din beholdningsfil, kør følgende kommando:

$ ansible web - liste-værter

Som du kan se, har jeg to værter (vm3.nodekite.com og vm4.nodekite.com) i web gruppe af min beholdningsfil.

For at liste de værter, der er tilgængelige i database gruppe af din beholdningsfil, kør følgende kommando:

$ ansible database - liste-værter

Som du kan se, har jeg to værter (vm5.nodekite.com og vm6.nodekite.com) i database gruppe af min beholdningsfil.

Arbejde med synlige globale fakta:

I dette afsnit vil jeg vise dig, hvordan du definerer Ansible globale fakta / variabler i din beholdningsfil og får adgang til dem fra dine Ansible playbooks. Jeg vil også vise dig, hvordan du definerer globale fakta / variabler i en separat fil.

Først skal du åbne værtens opgørelsesfil med følgende kommando:

$ nano værter

Tilføj nu de markerede linjer i din værtens opgørelsesfil. Når du er færdig, skal du trykke på + x efterfulgt af Y og for at gemme filen.

''

Du tilføjer globale fakta i alle: vars afsnit. Her har jeg tilføjet web_url global kendsgerning.

Opret nu en ny playbook print_global_fact.yaml i legebøger / katalog som følger:

$ nano playbooks / print_global_fact.yaml

Indtast derefter de følgende linjer i print_global_fact.yaml fil.

- værter: alle
bruger: ansible
opgaver:
- navn: Udskriv værdien af ​​det globale faktum 'web_url'
fejlfinde:
msg: 'Web-URL: web_url'

Formålet med denne playbook er at udskrive web_url global kendsgerning.

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde print_global_fact.yaml fil.

Kør nu print_global_fact.yaml playbook som følger:

$ ansible-playbook playbooks / print_global_fact.yaml

Som du kan se, kan alle værter i min beholdningsfil få adgang til den globale kendsgerning web_url.

Du kan også tilføje globale fakta i en separat fil. På denne måde kan du holde lagerfilen ren. Lad os se, hvordan man gør det.

Lad os først fjerne de globale fakta fra værtens opgørelsesfil.

$ nano værter

Fjern nu de markerede linjer fra lagerfilen, og tryk på + x, efterfulgt af Y og for at gemme lagerfilen.

Opret derefter en ny fil alle i gruppe_varsler / katalog som følger:

$ nano group_vars / all

For at tilføje den globale kendsgerning web_url, skriv følgende linje i group_vars / alle fil.

web_url: https: // www.linuxhint.com

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde group_vars / alle fil.

For at kontrollere, om du kan få adgang til den globale kendsgerning web_url, køre print_global_fact.yaml playbook igen som følger:

$ ansible-playbook playbooks / print_global_fact.yaml

Som du kan se, kan alle værter i min beholdningsfil få adgang til den globale kendsgerning web_url.

Arbejde med Ansible Group Fakta:

I dette afsnit vil jeg vise dig, hvordan du definerer Ansible gruppefakta / variabler i din beholdningsfil og får adgang til dem fra dine Ansible playbooks. Jeg vil også vise dig, hvordan du definerer gruppefakta / variabler i en separat fil.

Først skal du åbne værtens opgørelsesfil med følgende kommando:

$ nano værter

Hvis du har en værtsgruppe gruppe1, derefter tilføjer du gruppefakta / variabler for den værtsgruppe i en gruppe1: vars sektion af din beholdningsfil.

[gruppe1]
..
[gruppe1: vars]
variabel1 = værdi1
variabel2 = værdi2

For eksempel at tilføje gruppens fakta / variabler domænenavn og database_backends til web værtsgruppe, kan du indtaste de markerede linjer i din beholdningsfil.

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at gemme lagerfilen.

For at udskrive og teste, om vi kan få adgang til gruppens fakta, skal du oprette en ny playbook print_group_facts.yaml i legebøger / katalog som følger:

$ nano playbooks / print_group_facts.yaml

Indtast følgende linjer i din print_group_facts.yaml fil.

- værter: web
bruger: ansible
opgaver:
- navn: Udskriv gruppefakta
fejlfinde:
msg: 'Domain Name: domain_name Database Backend: database_backend'

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde print_group_facts.yaml fil.

Kør nu print_group_facts.yaml playbook som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er værterne i web gruppe har adgang til domænenavn og database_backend gruppefakta / variabler.

Lad os nu rydde op i beholdningsfilen og se, hvordan man tilføjer gruppefakta / variabler i en separat fil.

Først skal du åbne værtens opgørelsesfil som følger:

$ nano fakta

Fjern de markerede linjer fra værtens opgørelsesfil. Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde værter opgørelsesfil.

Når vi tilføjer gruppevariabler til web værtsgruppe, opret en ny fil web (samme som gruppenavnet) i gruppe_varsler / katalog som følger:

$ nano group_vars / web

For at tilføje gruppens fakta domænenavn og database_backend til web værtsgruppe, tilføj følgende linjer i group_vars / web fil.

domænenavn: web.linuxhint.com
database_backend: pgsql

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde group_vars / web fil.

For at kontrollere, om værterne i web gruppe kan få adgang til gruppens fakta, køre print_group_facts.yaml playbook som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er værterne i web gruppe har adgang til domænenavn og database_backend gruppefakta / variabler.

Arbejde med synlige værtsfakta:

I dette afsnit vil jeg vise dig, hvordan du definerer Ansible værtsfaktaer / -variabler i din beholdningsfil og får adgang til dem fra dine Ansible playbooks. Jeg vil også vise dig, hvordan du definerer værtsfakta / variabler i en separat fil.

Først skal du åbne værtens opgørelsesfil med følgende kommando:

$ nano værter

Du kan tilføje værtsfakta / variabler efter DNS-navnet eller IP-adressen på værten i din lagerfil som følger:

www.domæne1.com variabel1 = værdi1 variabel2 = værdi2
192.168.22.2 variabel1 = værdi3 variabel2 = værdi4

For eksempel kan du tilføje værtsfakta / variabler domænenavn og database_backend for værterne vm3.nodekite.com og vm4.nodekite.com, som markeret i skærmbilledet nedenfor.

Bemærk, at værdien af domænenavn og database_backend fakta / variabler er forskellige for hver vært.

Når du er færdig med at tilføje værtsfakta / variabler, skal du trykke på + x, efterfulgt af Y og for at redde værtens opgørelsesfil.

Da jeg har tilføjet de samme fakta / variabler som i gruppens fakta / variabeleksempel, kan vi bruge print_group_facts.yaml playbook for også at teste tilgængeligheden af ​​disse fakta / variabler.

Kør print_group_facts.yaml playbook som følger:

$ ansible-playbook playbooks / print_group_facts.yaml

Som du kan se, er værtsfakta / variabler tilgængelige for deres angivne vært. Værdierne er også forskellige for hver vært.

Da hver af værterne er i en separat linje i min beholdningsfil, kunne jeg nemt tilføje værtsfakta / variabler i min lagerfil. Men hvis du bruger intervaller til at definere værter i din lagerfil som markeret i skærmbilledet nedenfor, kan du ikke tilføje værtsfakta / variabler som den.

Du kan tilføje værtsfaktaer / variabler i en separat fil, ligesom du har gjort for de globale fakta / variabler.

For at tilføje værtsfakta / variabler til vm5.nodekite.com vært, opret en ny fil vm5.nodekite.com (samme som værts-DNS-navnet) i host_vars / katalog som følger:

$ nano host_vars / vm5.nodekite.com

Du kan tilføje værtsfakta / variabler db_port og db_name for værten vm5.nodekite.com med følgende linjer.

db_port: 3306
db_name: demo1

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde vm5.nodekite.com fil.

På samme måde at tilføje værtsfakta / variabler til værten vm6.nodekite.com, Opret en ny fil vm6.nodekite.com i host_vars / katalog som følger:

$ nano host_vars / vm6.nodekite.com

Du kan tilføje værtsfakta / variabler db_port og db_name for værten vm6.nodekite.com med følgende linjer.

db_port: 8877
db_name: app1

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde vm6.nodekite.com fil.

For at udskrive og teste, om vi kan få adgang til værtsfaktaerne / variablerne, skal du oprette en ny playbook print_host_facts.yaml i legebøger / katalog som følger:

$ nano playbooks / print_host_facts.yaml

Skriv nu de følgende linjer i print_host_facts.yaml fil.

- værter: database
bruger: ansible
opgaver:
- navn: Udskriv værtsfakta
fejlfinde:
msg: 'Database navn: db_name Databaseport: db_port'

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde print_host_facts.yaml fil.

For at kontrollere, om værten vm5.nodekite.com og vm6.nodekite.com kan få adgang til værtsfakta / variabler, køre print_host_facts.yaml playbook som følger:

$ ansible-playbook playbooks / print_host_facts.yaml

Som du kan se, værterne vm5.nodekite.com og vm6.nodekite.com kan få adgang til db_name og db_port vært fakta / variabler.

At sætte det hele sammen: Ansible Fakta forrang

I dette afsnit vil jeg tale om Ansible fakta / variabel forrang. Så lad os komme i gang.

Lad os rydde op i beholdningsfilen, inden vi kommer i gang.

Åbn værtens opgørelsesfil med følgende kommando:

$ nano værter

Fjern det markerede afsnit fra lagerfilen.

Sådan skal din beholdningsfil se ud på dette tidspunkt.

Tilføj nu den markerede linje i din beholdningsfil. Disse linjer tilføjer de globale fakta / variabler fakta_omfang og Havn.

Tilføj derefter de markerede linjer i din beholdningsfil. Disse linjer tilføjer fakta_omfang og Havn fakta / variabler for værterne i database gruppe.

Til sidst tilføj fakta_omfang og Havn værtsfakta / variabler til vm3.nodekite.com og vm4.nodekite.com værter, som markeret i skærmbilledet nedenfor.

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at gemme lagerfilen.

For at udskrive værdien af ​​de globale fakta / variabler, gruppe og vært skal du oprette en ny playbook fakta_tilstedeværelse.yaml i legebøger / katalog som følger:

$ nano playbooks / fact_precedence.yaml

Indtast følgende linjer i fact_precedence.yaml fil.

- værter: alle
bruger: ansible
opgaver:
- navn: Udskriv alle fakta
fejlfinde:
msg: 'Faktaomfang: fact_scope Havn: port'

Når du er færdig, skal du trykke på + x efterfulgt af Y og for at redde fact_precedence.yaml fil.

For at udskrive de globale fakta / variabler, grupper og værter skal du køre fact_precedence.yaml playbook som følger:

$ ansible-playbook playbooks / fact_precedence.yaml

Som du kan se, udskrives de globale, gruppe- og værtsfaktaer / -variabler.

Bemærk, at gruppens fakta / variabler erstattede de globale fakta / variabler (1). Bemærk også, at værtsfakta / -variabler erstattede både gruppe- og globale fakta / variabler (2).

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

Værtsfakta> Gruppefakta> Globale fakta

Konklusion:

Efter at have læst denne artikel, skal du være i stand til komfortabelt at arbejde med Ansible globale, gruppe- og værtsfakta / variabler. Husk Ansible brugerdefinerede faktiske forrang. Det hjælper dig med at fejle dine Ansible-playbøger lettere.

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...