ansible命令中的`args`部分是什么

时间:2017-07-17 19:20:34

标签: ansible

此示例仅在/ path / to / database不存在时运行:

# You can also use the 'args' form to provide the options.
- name: This command will change the working directory to somedir/ and will only run when /path/to/database doesn't exist.
  command: /usr/bin/make_database.sh arg1 arg2
  args:
    chdir: somedir/
    creates: /path/to/database

但为什么它列在args:下?

args:的设置是什么?

1 个答案:

答案 0 :(得分:8)

args用于将命名参数显式传递给支持“自由格式”参数的操作 - 需要额外的单词args,因为在YAML(用于Ansible playbooks的语言)中,您无法分配字符串字典“root”键的值。

# here `command` is a string
command: /bin/echo ok

# here `user` is a dict
user:
  name: john

由于command是一个字符串,因此您使用args来传递其他参数(例如chdircreates等)。鉴于user是一个字典,因此您可以直接在其中添加参数(例如nameuid等)。