Exécution du script Python via ansible
Je suis en train de lancer un script python à partir d'un ansible script. Je pense que ce serait une chose facile à faire, mais je ne peux pas le comprendre. J'ai un projet de structure comme ceci:
playbook-folder
roles
stagecode
files
mypythonscript.py
tasks
main.yml
release.yml
J'essaie de l'exécuter mypythonscript.py dans la tâche principale.yml (qui est un rôle utilisé dans le communiqué.yml). Voici la tâche:
- name: run my script!
command: ./roles/stagecode/files/mypythonscript.py
args:
chdir: /dir/to/be/run/in
delegate_to: 127.0.0.1
run_once: true
J'ai aussi essayé ../files/mypythonscript.py. Je pensais que le chemin d'accès pour ansible serait par rapport à la playbook, mais je ne crois pas?
J'ai aussi essayé de débogage pour savoir où je suis dans le milieu du script, mais pas de chance il soit.
- name: figure out where we are
stat: path=.
delegate_to: 127.0.0.1
run_once: true
register: righthere
- name: print where we are
debug: msg="{{righthere.stat.path}}"
delegate_to: 127.0.0.1
run_once: true
Qui se contente d'afficher ".". Si utile ...
source d'informationauteur CorayThan
Vous devez vous connecter pour publier un commentaire.
Si vous voulez être en mesure d'utiliser un chemin relatif vers le script plutôt que par un chemin d'accès absolu, alors vous pourriez être mieux à l'aide de la
role_path
de la magie variable pour trouver le chemin du rôle et de travailler à partir de là.Avec la structure que vous utilisez dans la question, la suivante devrait fonctionner:
essayez d'utiliser script directive, il fonctionne pour moi
mon principal.yml
et get-pip.py fichier doit être dans fichiers dans le même rôle