如何在ansible中将参数作为“整数”传递?

时间:2013-10-09 08:45:02

标签: ansible

所以我在yaml项目中有ansible这段。

- name: common | register vim as a type of editor for update-alternatives
  command: update-alternatives --install "/usr/bin/editor" "editor" $(which vim) 100
  sudo: yes

我想要注意的是editor注册,将priority设置为100。

因为我可以在终端中执行此行,但是,我无法将其写入ansible,这是错误:

  

stderr:update-alternatives:优先级必须是整数

我有没有把“100”转换成整数而不是字符串?

2 个答案:

答案 0 :(得分:2)

来自ansible的来源:

  

如果你想通过shell运行一个命令(假设你使用<,>,|等),你实际上想要shell模块。命令模块更安全,因为它不受用户环境的影响。

在这种情况下,请改用shell模块。

如果您仍想要更安全的command

任何 shell命令表示为其完整路径(因为没有加载环境)。

答案 1 :(得分:1)

事实证明我无法在这里通过$(which vim)

如果我将行更改为:

command: update-alternatives --install "/usr/bin/editor" "editor" "/usr/bin/vim" 100

问题解决了。