我如何 运行 chruby 使用 Ansible?
How can I run chruby with Ansible?
我开发了一个 Ansible role that installs chruby and another one,它使用 ruby-install 安装 ruby。
我想在我的 Ansible 剧本中使用 chruby,但是 chruby
命令对 command
和 shell
模块不可用,即使 ch ruby 如果我使用与 运行 使用剧本的同一用户通过 SSH 登录,则工作正常。
这是我试过的:
按照 chruby's README:
中的建议,通过将以下脚本部署到 /etc/profile.d/chruby.sh
,确保所有用户都可以使用 chruby
if [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then
source /usr/local/share/chruby/chruby.sh
source /usr/local/share/chruby/auto.sh
fi
运行 带有 command
或 shell
模块的任务(使用 /bin/bash
作为可执行文件)手动 运行 source /usr/local/share/chruby/chruby.sh
和 source /usr/local/share/chruby/auto.sh
在为 chruby
执行 command
任务之前
在这两种情况下,我都收到以下错误:chruby: command not found
。
如何在 Ansible 播放中 运行 chruby?
您可以编写简单的 bash/etc 脚本或者获取这些文件:
shell: bash -c "source /usr/local/share/chruby/chruby.sh; source /usr/local/share/chruby/auto.sh;chruby ..."
我开发了一个 Ansible role that installs chruby and another one,它使用 ruby-install 安装 ruby。
我想在我的 Ansible 剧本中使用 chruby,但是 chruby
命令对 command
和 shell
模块不可用,即使 ch ruby 如果我使用与 运行 使用剧本的同一用户通过 SSH 登录,则工作正常。
这是我试过的:
按照 chruby's README:
中的建议,通过将以下脚本部署到/etc/profile.d/chruby.sh
,确保所有用户都可以使用 chrubyif [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then source /usr/local/share/chruby/chruby.sh source /usr/local/share/chruby/auto.sh fi
运行 带有
command
或shell
模块的任务(使用/bin/bash
作为可执行文件)手动 运行source /usr/local/share/chruby/chruby.sh
和source /usr/local/share/chruby/auto.sh
在为chruby
执行
command
任务之前
在这两种情况下,我都收到以下错误:chruby: command not found
。
如何在 Ansible 播放中 运行 chruby?
您可以编写简单的 bash/etc 脚本或者获取这些文件:
shell: bash -c "source /usr/local/share/chruby/chruby.sh; source /usr/local/share/chruby/auto.sh;chruby ..."