2016-06-20 2 views
2

Si quelqu'un développe un rôle ansible, il peut être facilement distribué en créant un repo sur github qui sera disponible pour l'installation via ansible-galaxy (very clear instructions).Comment distribuer des modules ansibles?

Qu'en est-il des modules? Y a-t-il un "cadre de prise en charge" similaire pour libérer un module évolutif open source (par exemple, un ensemble de fichiers python) de sorte qu'il peut être facilement installé par les utilisateurs?

+0

Ansible Galaxy ressemble à une ville fantôme. J'ai eu de meilleurs résultats en tirant des fichiers de différents repos. Cela est particulièrement vrai pour les modules de base, car l'arriéré des correctifs à publier est de plusieurs mois. – tedder42

Répondre

2

Actuellement, la meilleure façon de le faire est réellement via le répertoire library dans un rôle de galaxie. Vous pouvez toujours obtenir les rôles (et les modules groupés) installés et utilisables via un requirements file sans avoir réellement besoin d'exécuter quoi que ce soit du rôle. Nous cherchons aussi des moyens de rendre les rôles plus bibliothéconomiques eux-mêmes (par exemple, des points d'entrée variables/vides, pas simplement codés en dur dans tasks/main.yml).

1

Un rôle peut contenir des modules dans le dossier de la bibliothèque. Pour activer un module dans un playbook, vous devez d'abord ajouter ce rôle à votre playbook ou en tant que dépendance d'un autre rôle. Sinon Ansible ne connaît pas les modules contenus. Un rôle fournissant un module n'est pas requis pour que quelque chose d'autre comme des tâches soit défini. Il suffit de mettre votre dossier library à l'intérieur et bien sûr le nécessaire meta/main.yml

Depuis Ansible 2.0 cela fonctionne même avec des plugins (la plupart), par exemple plugins d'action, ou des plugins de rappel peuvent être mis dans le dossier action_plugins ou callback_plugins etc. Je pense que la connexion, les vars et les plugins de stratégie ne fonctionnent pas de cette façon, mais c'est pour des raisons évidentes. Ce genre de plugins fonctionne au niveau du playbook, donc ils ne peuvent pas être chargés à travers les rôles.