【发布时间】:2016-05-22 04:58:40
【问题描述】:
我想运行this task,但它失败了,因为它找不到bundle 二进制文件,因为与我一起运行它的用户在Ansible 中的$PATH 与我只是sudo su - deploy 时不同。
如果我以 root 身份 SSH 进入该框,然后运行
sudo su - deploy 和 echo 'whoami' $PATH 我得到 deploy /home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games。
但如果我使用与 ansible 任务的 shell: 部分相同的命令,我会得到 deploy /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。
rbenv 部分是在 /etc/profile.d/rbenv.sh 中设置的,但如果我使用 Ansible 运行它,它不会以某种方式加载。
我发现了一个古怪的技巧,可以在我所有的 shell: 参数前面加上 source /etc/profile.d/rbenv.sh,但感觉很脏 :)
我该如何解决这个问题?
PS:我在我的 Fedora 23 上使用 Ansible 2.0.2.0,它与 Ubuntu 14.04 服务器通信。
【问题讨论】:
标签: linux shell ubuntu ansible