Программно идентифицирующие Ansible playbooks - PullRequest
0 голосов
/ 11 мая 2018

Учитывая исходный код проекта, мне нужно определить, использует ли он Ansible или нет.Для этого я подумал о поиске по всем файлам YAML в иерархии исходного кода и проверке, являются ли они Ansible playbooks.

Существуют ли какие-либо теги или какая-либо структура, уникальная для Ansible playbooks, чтобы отличать их от других файлов YAML?

Или есть лучший способ проверить, использует ли проект Ansible, просто проанализировав его исходный код?

1 Ответ

0 голосов
/ 11 мая 2018

Что нужно сделать проекту, чтобы квалифицироваться как проект с использованием ansible ?Должен ли он содержать сборник пьес?Нужно ли на самом деле называть ansible?Достаточно ли для проекта иметь некоторую документацию относительно использования проекта вместе с ansible?Ответ на ваш вопрос во многом зависит от вашего ответа на этот вопрос.

Существуют ли какие-либо теги или какая-либо структура, уникальная для сборников пьес Ansible, чтобы отличать их от других файлов YAML?

Самый простой способ проверить, является ли YAML-файл допустимым ANSI-файлом, - это сделать что-то вроде

ansible-playbook file.yaml --syntax-check --list-tasks

и проверить его возвращаемое значение.Однако это только эвристика.Нет гарантии, что у кого-то в каком-либо проекте есть YAML-файл, который является допустимым сборником пьес, но используется для совершенно другой цели.

Или есть лучший способ проверить, является лиПроект использует Ansible, просто анализируя его исходный код?

Grepping для ansible, исключая файлы документации, может быть достаточно эвристическим.Вы, конечно, можете проверить, вызывает ли код какой-нибудь ансибильный двоичный файл, но вам нужно будет проанализировать AST кода, пройтись по нему и понять его - и даже тогда он все равно будет просто эвристическим, потому что вы не можетебыть уверенным, что кто-то не назвал какой-нибудь исполняемый файл как ANSIBLE исполняемый файл (хотя это вряд ли).Я бы сказал, что выигрыш в точности по сравнению с поиском и / или поиском игровых книжек не оправдывает затраты на разработку такой проверки.На всех.

...