以编程方式识别Ansible剧本

时间:2018-05-10 23:21:35

标签: ansible yaml

鉴于项目的源代码,我需要确定它是否使用Ansible。为此,我想到搜索源代码层次结构中的所有YAML文件,并检查它们是否是Ansible playbooks。

Ansible playbooks是否有任何标签或某些结构可以区别于其他YAML文件?

或者是否有更好的方法来检查项目是否使用Ansible,只需分析其源代码?

1 个答案:

答案 0 :(得分:0)

项目需要做什么才能使用ansible 作为项目?它需要包含剧本吗?是否需要实际调用ansible?项目是否足以获得有关将项目与ansible一起使用的文档?你的问题的答案很大程度上取决于你对这个问题的回答。

  

Ansible playbooks是否有任何标签或某些结构可以区别于其他YAML文件?

检查YAML文件是否是有效的ansible playbook的最简单方法是执行类似

的操作
ansible-playbook file.yaml --syntax-check --list-tasks

并检查其返回值。但是,这只是一种启发式方法。无法保证某个项目中的某个人的YAML文件恰好是有效的ansible剧本,但用于完全不同的目的。

  

或者是否有更好的方法来检查项目是否使用Ansible,只需分析其源代码?

ansible进行限制(不包括文档文件)可能足够启发式。您当然可以检查代码是否调用了一些ansible二进制文件,但是您需要解析代码的AST,然后执行它并理解它 - 即使这样,它仍然只是一个启发式,因为你不能确定某人没有像一个ansible可执行文件那样命名一些可执行文件(尽管不太可能)。我会说,与grepping和/或搜索剧本相比,精确度的提高并不能证明开发此类支票的成本是合理的。完全没有。