Sono in difficoltà con un modello che estrae le scorte di inventario nei modelli Ansible, per favore aiuto. :)Ciclo anonimo attraverso le vars di gruppo nel modello
Sto configurando un server di monitoraggio e desidero essere in grado di eseguire il provisioning automatico dei server utilizzando Ansible. Sto lottando con i loop nel modello per consentirmi di farlo.
mio soluition semi-lavoro finora è nel playbook che chiama il compito modello che ho:
monitoringserver.yml
vars:
servers_to_monitor:
- {cname: web1, ip_address: 192.168.33.111}
- {cname: web2, ip_address: 192.168.33.112}
- {cname: db1, ip_address: 192.168.33.211}
- {cname: db2, ip_address: 192.168.33.212}
template.yml
all_hosts += [
{% for host in servers_to_monitor %}
"{{ host.cname }}{{ host.ip }}|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
{% endfor %}
]
Ma questo isn È ideale in quanto non è possibile definire un indirizzo IP diverso per i diversi server da monitorare. Come hanno fatto le altre persone? Sono sicuro che deve essere banale, ma il mio cervello sta lottando con la sintassi.
Grazie
Alan
Edit: Per chiarire il modello risultante simile a questa:
all_hosts += [
"web1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"web2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
]
Quello che vorrei è i valori web1/Web2/db1/DB2 di essere diversi a seconda che io stia utilizzando un file di inventario di produzione o un file di inventario di sviluppo.
Potrebbe aggiungere quello che vuoi il risultato attuale? –
Grazie Ramon, ho aggiunto una modifica per chiarire :) –
Ora sono riuscito a risolverlo creando due dirs di group_var monitor-dev e monitor-pub, in cui il libro di gioco utilizza il ruolo tutti e il file di inventario per produzione chiamando il gruppo specifico vars. Non sembra proprio vero però :) –