Configurer Ansible rôles ayant à charge des rôles

Le problème qui est décrit, avec un exemple:

Il y a deux rôles:

  • mailserver: une base configuration du serveur de messagerie
  • mailinglist: liste de diffusion de l'application

Le logiciel de liste de diffusion besoins le serveur de courrier pour le transport des e-mails entrants à la liste de diffusion du logiciel "virtual boîte de réception". Cela nécessite un peu de configuration du serveur de messagerie. Mais le serveur ne sait pas sur la liste de diffusion rôle, ni les autres rôles avec les mêmes exigences de configuration.

Ce que j'aimerais faire, c'est ceci:

  • mailinglist (et d'autres postes similaires) stocke la configuration de transport dans une variable transport_config. Ce pourrait être une "carte de transport" comme $email => $bobine.
  • mailinglist dépend de la mailserver rôle.
  • mailserver configure c'est "transport" à l'aide de la variable transport_config.

Est-il un moyen de faire quelque chose comme cela dans Ansible? Ou une autre solution pour ce problème? C'est pas possible d'utiliser rôle des variables comme {role: mailserver, transport_config: ...}, comme il peut y avoir plus d'un rôle en fonction sur le serveur de courrier.

Ce que je peux penser est une solution de contournement: Le serveur de courrier lit/analyse d'un répertoire de configuration où les cartes de transport sont définis. mailinglist et d'autres rôles ajouter des fichiers dans ce répertoire. Le problème ici est que cela nécessite souvent une "configuration builder" qui lit ce type de configuration des répertoires et génère le fichier de configuration principal.

  • vous avez déclaré que vous ne pouvez pas utiliser dotdee ou assemble parce qu'ils ne peuvent assembler des lignes. Pouvez-vous nous donner un exemple de la syntaxe de configuration dont vous avez besoin pour votre mailserver?
  • C'est quelque chose comme transport_config = file:/etc/mailserver/transport_foo, file:/etc/mailserver/transport_bar.
  • Sont ligne continuations permis dans la syntaxe? Comme finition une ligne avec " \ " pour continuer le contenu de la ligne suivante? Peut-être, comme ce que vous pourriez utiliser assemble de mise en place des transports dans une ligne par lui-même avec une continuation.
InformationsquelleAutor Christian | 2014-06-30