Здесь есть ряд проблем. Во-первых, вы создаете виртуальную среду как :- name: Activate sudo: yes sudo_user: vagrant command: /home/vagrant/db/venv/bin/source /home/vagrant/db/venv/bin/activate
sudo_user: vagrant
Но вы пытаетесь получить к нему доступ как vagrant
пользователь:
source
Скорее всего, вы захотите /home/vagrant/db/venv/bin/source
по обеим задачам.
Во-вторых, command
команда - это встроенная оболочка, вы ее не найдете . Так что эта команда просто не имеет смысла.command: /home/vagrant/db/venv/bin/somecommand
И, наконец, даже если это было иметь смысл, это не будет иметь никакого практического эффекта: Это было бы изменить окружение command
модуля, но не будет иметь никакого влияния на последующих задачах. Есть несколько способов борьбы с этим; если вы просто пытаетесь запустить команду, установленную в вашей виртуальной среде, вы можете запустить ее напрямую:
shell:
cmd: |
source /home/vagrant/db/venv/bin/activate
do_stuff_here
Это правильно использует версию Python, установленную в вашей виртуальной среде. Кроме того, вы можете встроить все в сценарий оболочки:
~/.synapse
Обновить
Для тех "это не работает!" комментаторы, я представляю вам ... примерный пример !