【规则说明·基本】过时命令语法
本文是Ansible lint Advent Calendar 2022 第二、三天的文章。
这次我将解释有关规则“deprecated-command-syntax”的内容。
不推荐使用的命令语法
弃用的命令语法将验证是否使用了缩写法。采用缩写法的写法会增加调试的难度,不推荐使用。
在一些 Ansible 模块中,有一种称为 free-form 的方法可以直接向模块的键传递参数。检查是否使用了省略语法就可以称之为废弃的命令语法。
自由形式的例子
自由形式撰写的处理程序
- name: Run command if /path/to/database does not exist (without 'args')
ansible.builtin.command: /usr/bin/make_database.sh db_user db_name creates=/path/to/database
建议的写法
- name: Run command if /path/to/database does not exist (with 'args' keyword)
ansible.builtin.command: /usr/bin/make_database.sh db_user db_name
args:
creates: /path/to/database
# もしくは
- name: Run command if /path/to/database does not exist (with 'cmd' parameter)
ansible.builtin.command:
cmd: /usr/bin/make_database.sh db_user db_name
creates: /path/to/database
有问题的代码
---
- name: Example playbook
hosts: localhost
tasks:
- name: Perform chmod
ansible.builtin.command: creates=B chmod 644 A # <-- 省略記法が使われている
修订过的代码 guò de
---
- name: Example playbook
hosts: localhost
tasks:
- name: Perform chmod
ansible.builtin.command: chmod 644 A
args:
creates: B
请提供参考网站
- deprecated-command-syntax — Ansible Lint Documentation