Кажется, что это должно быть очень просто:
tasks:
- name: install python packages
pip: name=${item} virtualenv=~/buildbot-env
with_items: [ buildbot ]
- name: create buildbot master
command: buildbot create-master ~/buildbot creates=~/buildbot/buildbot.tac
Однако команда не будет выполнена, если инициатор virtualenv script не будет найден первым, и, похоже, нет необходимости делать это в Ansible command module.
Я экспериментировал с поиском активировать script в различных файлах .profile,.bashrc,.bash_login и т.д., без везения. В качестве альтернативы, есть команда оболочки, но это выглядит как неудобный хак:
- name: create buildbot master
shell: source ~/buildbot-env/bin/activate && \
buildbot create-master ~/buildbot \
creates=~/buildbot/buildbot.tac executable=/bin/bash
Есть ли лучший способ?