所以我在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”转换成整数而不是字符串?
答案 0 :(得分:2)
如果你想通过shell运行一个命令(假设你使用<,>,|等),你实际上想要shell模块。命令模块更安全,因为它不受用户环境的影响。
在这种情况下,请改用shell
模块。
如果您仍想要更安全的command
。
将任何 shell命令表示为其完整路径(因为没有加载环境)。
答案 1 :(得分:1)
事实证明我无法在这里通过$(which vim)
。
如果我将行更改为:
command: update-alternatives --install "/usr/bin/editor" "editor" "/usr/bin/vim" 100
问题解决了。