args¶
此规则验证任务参数是否符合插件文档。
规则验证将检查选项名称是否有效,并具有正确的值,以及对选项的条件,例如mutually_exclusive
、required_together
、required_one_of
等等。
更多信息请参见Ansible模块实用程序文档中的参数规范验证器主题。
可能的错误信息
args[module]
- 缺少必需参数: ...args[module]
- 缺少…所需的参数。
问题代码¶
---
- name: Fixture to validate module options failure scenarios
hosts: localhost
tasks:
- name: Clone content repository
ansible.builtin.git: # <- Required option `repo` is missing.
dest: /home/www
accept_hostkey: true
version: master
update: false
- name: Enable service httpd and ensure it is not masked
ansible.builtin.systemd: # <- Missing 'name' parameter required by 'enabled'.
enabled: true
masked: false
- name: Use quiet to avoid verbose output
ansible.builtin.assert:
test:
- my_param <= 100
- my_param >= 0
quiet: invalid # <- Value for option `quiet` is invalid.
正确代码¶
---
- name: Fixture to validate module options pass scenario
hosts: localhost
tasks:
- name: Clone content repository
ansible.builtin.git: # <- Contains required option `repo`.
repo: https://github.com/ansible/ansible-examples
dest: /home/www
accept_hostkey: true
version: master
update: false
- name: Enable service httpd and ensure it is not masked
ansible.builtin.systemd: # <- Contains 'name' parameter required by 'enabled'.
name: httpd
enabled: false
masked: false
- name: Use quiet to avoid verbose output
ansible.builtin.assert:
that:
- my_param <= 100
- my_param >= 0
quiet: True # <- Has correct type value for option `quiet` which is boolean.
特殊情况¶
在一些复杂的案例中,如果您使用的是Jinja表达式,linter可能无法完全验证所有可能的值并报告误报。下面的例子通常会报告parameters are mutually exclusive: data|file|keyserver|url
,但是因为我们添加了# noqa: args[module]
,它将直接通过。