有关Ansible lint规则的应用方法

这篇文章是Ansible lint Advent Calendar 2022第6天的文章。

这次讨论如何应用Ansible lint的规则。

关于黑名单和白名单的方式

在安全领域中,有两种常用的术语:黑名单和白名单。黑名单是将威胁对象列入列表中,而白名单则是将被认为安全的对象列入列表中。

我觉得只需要一个选择就可以了: 如果你想起了firewalld的设置或者AWS EC2的安全组,你就会明白这个问题。

在Ansible lint中指定应用规则的基本思路。

在 Ansible lint 的初始设置中,采用了白名单方式,即在执行 Ansible lint 时会应用所有规则。”从应用了所有规则的状态开始,根据需要指定不适用的规则”,这是 Ansible lint 规则应用的基本思想。

在Ansible lint中指定不采用的规则。

在执行Ansible lint时,有两种方法可以指定不适用的规则。这两种方法分别是skip_list和warn_list。在skip_list中指定的规则或标签将被跳过处理。如果在warn_list中指定了规则,则会执行处理,但如果检测到错误,则会发出警告。

在命令选项中指定

# skip_list

ansible-lint <target> -x SKIP_LIST
# もしくは
ansible-lint <target> --skip-list SKIP_LIST

在SKIP_LIST中指定规则名或标签名。

# warn_list

ansible-lint <target> -w WARN_LIST
# もしくは
ansible-lint <target> --warn-list WARN_LIST

在WARN_LIST中指定规则名称或标签名称。

在配置文件中指定

# skip_list

skip_list:
  - SKIP_LIST

在SKIP_LIST中指定规则名称或标签名称。

# warn_list

warn_list:
  - WARN_LIST

在WARN_LIST中指定规则名或标签名。

应该选择使用 skip_list 还是 warn_list?

基本上應該採用warn_list。如果將不採用的規則指定為skip_list,則不會輸出任何警告,導致內容無法持續改善。應該使用warn_list,以便在此內容中輸出問題存在的提示。

在个人资料中指定

在Ansible lint中,还有一种名为”profile”的规则分类方法,可以通过指定profile来选择要采用的规则。

在命令选项中指定

ansible-lint -p <profile> <target>

用配置文件进行指定

profile: <profile> # min, basic, moderate,safety, shared, production

应该使用个人资料吗?

个人资料是最近添加的功能。未来有很高的可能性会对正在分类的规则进行更改,目前似乎还不是积极采用的阶段。

广告
将在 10 秒后关闭
bannerAds