Запуск скрипта 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
