Dans mon jeu de jeu, j'exécute une local_action qui exécute un script et stocke la valeur pour une utilisation future: Ceci a fonctionné super, jusqu'à ce que je déplais mon jeu de jeu dans un sous-répertoire. Il s'avère que la commande fonctionne de votre répertoire de travail actuel (que vous exécutez une fonctionnement de), de sorte que le chemin doit ressembler à ceci: p> J'ai une structure de répertoire comme Ci-dessous: p> Cependant, les rôles / Le nom du dossier Ghost Strong> peuvent changer (et codage rigoureux Cela ne vous permet pas d'exécuter le jeu de jeu dans un autre répertoire). P> Comment Puis-je obtenir le chemin de répertoire des tâches / Main.yml (qui émet la commande local_action), afin que je puisse donner un chemin relatif à celui-ci? p> p>
3 Réponses :
pouvez-vous mettre la sortie.py script dans des rôles / fantômes / fichiers / puis utilisez-le avec local_action et de cette façon, vous n'avez peut-être pas besoin d'obtenir le chemin de répertoire p> Ceci fait référence à ce fait dans la partie de répertoire de la pièce http://www.ansibleworks.com /docs/playbooks_best_practices.html p> p>
J'ai soumis un Demande de traction Avant de voir cela pour la question, mais voici le gist de celui-ci.
Étant donné que nous ne pouvons pas savoir quel chemin le script sera dans lequel le script sera dans, copiez-le sur / TMP: P>
- name: get ghost release version local_action: command python /tmp/release.py register: ghost_release sudo: no
alors nous pouvons exécuter le script p>
- name: copy ghost release script to tmp local_action: copy src=release.py dest=/tmp/release.py sudo: no
A partir de 1.8, il y a un role_path code> variable défini
que vous pouvez utiliser à cette fin. p>
L'erreur était: "role_path" est indéfini code> il semble que cela ne peut être utilisé que dans les rôles, pas des commandes