0

我想在使用Ansible的远程服务器上获取virtualenvwrapper文件。Ansible source virtualenvwrapper

- name: Source virtualenvwrapper 
    shell: > 
    . /usr/local/bin/virtualenvwrapper.sh 

但我得到Bad Substitution错误。任何想法修复它.. ??

+0

如果登录服务器并尝试手动执行'。/usr/local/bin/virtualenvwrapper.sh',它工作吗? (注意:即使你解决了这个问题,我怀疑virtualenvwrapper会按照你尝试的方式正常工作,但我们一次解决一个问题。) –

+0

是的,当我手动运行命令时,它可以工作。 – Pattu

回答

1

Ansible没有明确使用/bin/sh,并且shell模块使用shell=True作为子进程的参数。所以可能Python子进程使用/ bin/sh而不是所有的shell设置。可以使用名为可执行文件的shell模块的选项来指定另一个shell。

试试这个:

- name: Source virtualenvwrapper 
    shell: > 
    . /usr/local/bin/virtualenvwrapper.sh 
    args: 
    executable: /bin/bash