Назад | Перейти на главную страницу

Настройка вывода Ansible

Я хочу использовать Ansible для сбора информации с нескольких серверов. Информация должна подвергаться локальной постобработке, поэтому она должна быть представлена ​​в определенном формате. Кроме как grep и sed и awk и другие лучшие друзья системного администратора, как мне получить от Ansible то, что имеет отношение к задаче, и ничего больше?

Должен быть способ запустить Ansible из Python, экспортируя переменные в сценарий упаковки, или запустить Python из Ansible для настройки вывода.

Ansible действительно вызывается напрямую из вашего собственного скрипта Python. В Ansible API полностью документирован. Я сам не использовал его, но у вас должна быть возможность написать собственный скрипт на Python, чтобы использовать Ansible и делать то, что вы хотите. Согласно их документации, это так просто:

import ansible.runner

runner = ansible.runner.Runner(
   module_name='ping',
   module_args='',
   pattern='web*',
   forks=10
)
datastructure = runner.run()

В документации, на которую я ссылаюсь, есть более подробный пример.