如何运行成为和$ PATH一样的Ansible任务?

我想运行这个任务,但它失败了,因为它没有findbundle二进制文件,因为我用它运行的用户在Ansible中有一个不同的$ PATH比sudo su - deploy

如果我以root身份进入SSH,然后运行sudo su - deploydeploy /home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games echo 'whoami' $PATH我得到deploy /home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

但是,如果我使用和shell:相同的命令shell:部分任务是deploy /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

rbenv部分是在/etc/profile.d/rbenv.sh设置的,但是如果我用Ansible运行它,它不会被加载。

我发现一个古怪的黑客前缀所有我的shell: PARAMS source /etc/profile.d/rbenv.sh但感觉肮脏:)

我怎样才能解决这个问题?

PS:我在Fedora 23上使用Ansible 2.0.2.0,并与Ubuntu 14.04服务器进行通信。

http://bencane.com/2013/09/16/understanding-a-little-more-about-etcprofile-and-etcbashrc/

区别很简单,仅在交互式shell中执行/ etc / profile,而对于交互式和非交互式shell执行/ etc / bashrc。 实际上,在Ubuntu中,/ etc / profile直接调用/ etc / bashrc。

因此,在/etc/profile.d/rbenv.sh中包含.bashrc或

我发现一个古怪的黑客前缀所有我的外壳:PARAMS源/etc/profile.d/rbenv.sh