Puncte:0

Furnizarea valorii gazdelor pentru Ansible Playbook prin condiții Jinja

drapel cn

Am un rol Ansible pe care vreau să-l execut pe anumite gazde în funcție de anumite condiții.

Vreau să populez gazde din sondajul Ansible Tower.Iată cartea mea de joc:

- nume: HTTP Response Deploy Automation
  gazde: „{% if geo == 'LHR' %}'dblhr002' {% elif geo == 'SJC' %}'dbsjc003' {% endif %}"
  gather_facts: adevărat
  roluri:
    - http-response-deploy

Primesc următoarea eroare când aleg LHR:

 [AVERTISMENT]: Nu s-a putut potrivi modelul de gazdă furnizat, ignorând: „dblhr002”

Pentru a reține că, nu funcționează când aleg să omit ghilimelele din jurul numelor de gazdă.

TLDR; trebuie să atingeți condițiile de la Ansible, după cum urmează:

dacă geo == "LHR": 
   gazde: dblhr002
if geo == "SJC":
   gazde: dbsjc003
Puncte:1
drapel th

Ceea ce ați furnizat funcționează bine, atâta timp cât dblhr002 este trecută în inventar. Modelele de gazdă se potrivesc doar cu gazdele existente, nu adaugă gazde noi în inventar.

ec2-user@pandora ~ $ cat test.yml 
- gazde: „{% if geo == 'LHR' %}'dblhr002' {% elif geo == 'SJC' %}'dbsjc003' {% endif %}"
  gather_facts: false
  sarcini:
    - depanare:
ec2-user@pandora ~ $ ANSIBLE_INVENTORY_ENABLED=listă_gazde ansible-playbook ~/test.yml -e geo=LHR -i dblhr002,

PLAY [dblhr002] ************************************************ *****************

SARCINA [depanare] ************************************************ ********************
ok: [dblhr002] => {
    "msg": "Bună lume!"
}

JOACĂ RECAPITULARE ************************************************ ********************
dblhr002: ok=1 schimbat=0 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0   

Dacă trebuie să adăugați dinamic o gazdă, utilizați add_host sarcină într-o piesă separată.

- gazde: localhost
  gather_facts: false
  sarcini:
    - add_host:
        nume: „{{ host_map[geo] }}”
        grupuri: target_host
      vars:
        host_map:
          LHR: dblhr002
          SJC: dbsjc003

- gazde: target_host
  gather_facts: false
  sarcini:
    - depanare:
systrigger avatar
drapel cn
Mulțumiri! al doilea pare mai ideal

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.