Запуск скрипта Python через ansible
Я пытаюсь запустить скрипт python из сценария ansible. Я думал, что это будет легко сделать, но я не могу понять. У меня есть такая структура проекта:
playbook-folder
roles
stagecode
files
mypythonscript.py
tasks
main.yml
release.yml
Я пытаюсь бежать mypythonscript.py в рамках задачи в основном.yml (роль, используемая в выпуске.в формате YML). Вот задача:
- 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
Я также пробовал ../files/mypythonscript.py - ... Я думал, что путь для ansible будет относительно playbook, но я думаю нет?
Я также попытался отладить, чтобы выяснить, где я нахожусь в середине скрипта, но там тоже не повезло.
- 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
Это просто распечатывает".". Так полезный. ..
2 ответов
попробуйте использовать скрипт директива, она работает для меня
мой главный.в формате YML
---
- name: execute install script
script: get-pip.py
и get-pip.py файл должен быть в файлы в той же роли
Если вы хотите использовать относительный путь к вашему скрипту, а не абсолютный путь, вам лучше использовать role_path
волшебная переменная чтобы найти путь к роли и работать оттуда.
со структурой, которую вы используете в вопросе, должно работать следующее:
- name: run my script!
command: ./mypythonscript.py
args:
chdir: "{{ role_path }}"/files
delegate_to: 127.0.0.1
run_once: true