为 Ansible 集合和角色添加目录管理员
作者: jrjsmrtn创建于 2026年7月30日更新于 2026年9月14日
标签needs-proposal
为什么需要此项:
Ansible 是基于代码的基础设施,具有与任何依赖图一样的供应链义务,目前在 syft 中是不可见的 - Ansible 控制节点的集合和角色根本不出现在 SBOM 中。使用 Ansible 构建的基础设施的团队在其清单中存在一个空白,目前没有任何东西能填补这个空白。syft 中的最接近的先例是 terraform-lock-cataloger 和 GitHub-actions-usage-cataloger,因此 IaC 内容并不是一个新的领域。有一件事情使它比看起来更适合: 已安装的集合包含每个文件的校验和。 ansible-galaxy 将 MANIFEST.json (命名空间、名称、版本、依赖项、许可证) 和 FILES.json (每个常规文件的 sha256) 写入每个已安装的集合中 - 并且它是统一的,因为从 git 源安装的集合在安装之前被构建为一个资产。在一个我测量的示例中,community.general 具有 3290/3290 个常规文件的 sha256。因此,Ansible 目录器可以填充 installed 和 declared 两个方面,而 terraform-lock-cataloger 仅限于 declared。这比最近的先例实现的覆盖面更好。
内容来源: anchore/syft