我正在创建一个Ansible playbook,只有在尚未安装的情况下才需要安装Ruby gem(jekyll
)。当在目标主机(Ubuntu 14.04)上的命令行上运行时,这些对我有用:
gem list | grep "jekyll " > /dev/null || gem install jekyll
(gem list | grep "jekyll " > /dev/null) || gem install jekyll
也就是说,当已经安装了gem时,它将不会再次安装。但是,当我将这些命令放在Ansible playbook中时,总是会安装gem:
- name: Install Jekyll only if not yet installed
shell: (gem list | grep "jekyll " > /dev/null) || gem install jekyll
我需要做些什么才能让它发挥作用?是否需要逃避?
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为这是一个环境问题。
尝试使用
bash -lc "gem install ..."