Hva er Ansible set_fact

Hva er Ansible set_fact
Variabler hjelper oss med å tilpasse Ansible Playbooks og oppgaver for å jobbe med forskjellige vertssystemer og arbeidsmiljøer.

Selv om du kan bruke vars_file, vars, eller inkludere_var for å sette opp variabler i spillbøkene dine, er SET_FACT -modulen en av de beste måtene å gjøre det, først og fremst på grunn av fleksibiliteten.

Denne opplæringen vil forklare hva Ansible set_fact er, hvordan det fungerer, og hvordan du kan bruke det.

Forståelse av Ansible set_fact

I motsetning til andre moduler som lar deg angi Ansible-variabler-tenk vars_file, vars, eller inkluderer_var-der du trenger å kjenne de variable verdiene på forhånd, gjør Ansible Set_Facts-modulen deg i stand til å angi variabler utenfor-mansjetten som nødvendig, ofte på en vert -To-host-sak.

Variabler satt ved hjelp av set_facts er tilgjengelige for utførelse av playbook i samme spill. Imidlertid kan du gjøre disse variablene til fakta i fakta "-precedence, noe som gjør dem kjørbare over Playbook-kjøringer ved å bruke hurtigparameteren som er satt til JA.

Ansible set_fact -parametere

Ansible set_fact støtter følgende parametere:

  • Cacheable: Denne boolske parameteren har to alternativer: ja og nei. Denne parameteren gjør en set_fact -variabel til et "faktum" som er lagret i den faktum cache, men bare hvis du har fakta caching aktivert.
  • Key_Value: Variabler angitt ved hjelp av SET_FACT -modulen Bruk “nøkkel = verdi” -eller “nøkkel: verdi” for YAML - strengpar, der nøkkelen er variabelnavnet og verdien definerer variabelenes verdi.

Følgende er noen viktige funksjoner i SET_FACT -modulen.

  • Nøkkelen = Verdi-eller nøkkel: Verdiparameter for YAML-bare skaper booleanere og strenger, men du kan bruke var: [Val20, Val30] for å lage ordbøker eller matriser.
  • Set_fact oppretter statiske variable verdier
  • Variabler satt ved hjelp av set_fact Følg standard ansible variable precedence -regler; Dermed kan andre variabeltyper med høyere prioritet overstyre det verdifulle verdisettet ved hjelp av set_fact
  • Du kan ikke bruke 'cacheable' som et gyldig faktaavn fordi Ansible versjon 2.4 og senere ha det som en modulparameter
  • Set-faktiske variabler er vertsbasert og er tilgjengelige for påfølgende Ansible Playbook Runs
  • SET_FACT -modulen støtter også Windows -mål

Ansible set_fact -eksempel

La oss se på noen få eksempler for å illustrere ved hjelp av set_fact.

I eksemplet nedenfor bruker vi SET_FACT for å tilordne en spesifikk verdi til en variabel og opprette en bruker.

---
- Verter: Alle
bli: sant
oppgaver:
- Navn: Opprett bruker.
set_fact:
Brukernavn: Linuxhint
bruker:
Navn: "brukernavn"
gruppe: "brukernavn"
Shell: /Bin /Bash

I eksemplet over bruker vi SET_FACT -modulen for å opprette en bruker på en ekstern vert.

Et annet eksempel er å bruke SET_FACT med Conditionals. For eksempel:

---
- Verter: Alle
bli: sant
oppgaver:
- Navn: Apache
set_fact:
PKG: "Apache2"
Når: Ansible_Distribution == "Debian" eller Ansible_Distribution == "Ubuntu"
- Navn: Httpd
set_fact:
PKG: "Httpd"
Når: Ansible_Distribution == 'Centos' eller Ansible_Distribution == 'Red Hat Enterprise Linux'

I eksemplet playbook ovenfor setter vi pakken til Apache2 når distribusjonen er Debian eller Ubuntu og Httpd for CentOS og Rehl.

Lukking

Ansible set_fact -modulen lar deg legge til fleksibilitet til spillbøkene dine basert på informasjonen som er samlet fra verten.

Takk for at du leser!