Ansible boucle à travers les vars de groupe dans le modèle
Je suis aux prises avec un motif de traction de l'inventaire de vars dans Ansible modèles, s'il vous plaît aider. 🙂
Je suis la mise en place d'une surveillance de serveur, et je veux être en mesure de configurer automatiquement les serveurs à l'aide Ansible. J'ai du mal avec les boucles dans le modèle pour me permettre de me ce.
Mon semi-travail soluition jusqu'à présent est dans le playbook qui appelle le modèle de tâche que j'ai:
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}
modèle.yml
all_hosts += [
{% for host in servers_to_monitor %}
"{{ host.cname }}{{ host.ip }}|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
{% endfor %}
]
Mais ce n'est pas l'idéal comme je ne peux pas définir l'adresse IP différente pour différents serveurs à surveiller. Comment ont d'autres gens faire cela? Je suis sûr qu'il doit être trivial, mais mon cerveau a du mal avec la syntaxe.
Grâce
Alan
edit: Pour clarifier le modèle résultant ressemble à quelque chose comme ceci:
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 + "/",
]
Ce que je voudrais, c'est les valeurs web1/web2/db1/db2 être différentes selon que je suis en utilisant une production de l'inventaire fichier ou un dossier d'inventaire.
source d'informationauteur Alan Hollis
Vous devez vous connecter pour publier un commentaire.
L'idéal serait d'utiliser différents fichiers d'inventaire de production et de mise en scène, qui vous permettent de garder le même
{{ inventory_hostname }}
valeur, mais de cibler les différentes machines.Vous pouvez également faire une boucle par les différents groupes...
hôtes:
playbook:
modèle: