【规则说明·基本】过时命令语法

本文是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
广告
将在 10 秒后关闭
bannerAds