此示例仅在/ 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:
的设置是什么?
答案 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
来传递其他参数(例如chdir
,creates
等)。鉴于user
是一个字典,因此您可以直接在其中添加参数(例如name
,uid
等)。