Comment obtenir une liste de tous les sels, les minions dans un modèle?
Fondamentalement, je suis entrain de créer un Sel d'état décrivant Munin configuration du serveur et j'ai besoin d'obtenir une liste de tous les serviteurs connu du maître, quelque chose comme ceci:
{% for host in pillar['munin_clients'] %}
[{{ host.fqdn }}]
address {{ host.ip }}
use_node_name yes
{% endfor %}
La seule différence est que je ne veux pas utiliser pilier pour cela, j'ai besoin de cette liste à être remplie de façon dynamique. ret.get_minions
semble être pertinente, mais je ne peux pas le faire fonctionner pour une raison quelconque. Quelles sont mes options?
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à atteindre cet objectif à l'aide de la Mine de Sel (système grâce à des membres de Sel-les utilisateurs de Google group):
J'ai dû ajouter
à la fin de
/etc/salt/minion
sur chaque nœud pour activer la Mine de Sel.Alex réponse est grande. La Mine de Sel qui va vous donner la liste des minions c'est correct comme de la dernière fois que la Mine a été exécuté.
Si vous voulez vivre jusqu'à la deuxième de données vous pouvez utiliser les pairs de l'interface à l'aide de la publier module. Publier module docs sont ici: http://docs.saltstack.com/ref/modules/all/salt.modules.publish.html#module-salt.modules.publish
Assurez-vous de définir votre configuration maître de permettre que les serviteurs d'exécuter du réseau.ip_addrs.
EDIT:
Pour répondre à la question ci-dessous, vous devez activer l'hôte pour interroger les autres serviteurs par les pairs publier interface. Pour permettre à tous les serviteurs d'interroger les adresses ip de tous les autres serviteurs, ajoutez ceci à votre /etc/sel/master:
host.*
viennent? Si je viens de lancersalt-call network.ip_addrs
, je viens de voir une liste d'adresses IP. Deuxièmement, la documentation dit simplement: "Vous devez activer le publier sur le maître", cependant je trouve qu'il y a de lapublish_port
, et il n'est pas clair quelles sont les implications de ce sont.Pourquoi ne pas utiliser minion.liste de module?
Dans notre pilier de l'environnement, nous avons pilier qui sont privés de chaque minion (/srv/pilier/hosts,/[serveur_a serveur_b, server_C...]/some_pillar.sls).
Pour faciliter les choses (étant donné que certaines personnes oublie d'ajouter de nouveaux piliers en haut du fichier) notre pilier en haut du fichier ressemble à ceci:
De cette façon je peux obtenir une liste de tous les serviteurs connu du maître à chaque fois que le pilier nécessitant est mis à jour.