有关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
应该使用个人资料吗?
个人资料是最近添加的功能。未来有很高的可能性会对正在分类的规则进行更改,目前似乎还不是积极采用的阶段。