Все, что выполняется в скриптах Python, также может быть достигнуто с помощью доступных сборников (с помощью шаблонов jinja2).Но на разработку уходит много времени, и довольно сложно написать сборники рассказов для анализа данных и ввода данных в модули.
Я думаю, это то, что вы действительно просите комментировать,или повторил: «Моя команда может сделать все это в Ansible + Python, но мы можем сделать это в Ansible + Jinja2».
Вы не говорите, насколько сложны создаваемые вами скрипты Python, но одинБольшим преимуществом использования Ansible + Jinja является то, что ваши игровые книги будут более идемпотентными и, в конечном счете, приведут к менее ненужным изменениям в системах (что может привести к дополнительным перезапускам служб, вопросам управления и т. д.).
Но, учитывая это, насколько работа по созданию и поддержке этих шаблонов Jinja2 повлияет на вашу команду?Если вы небольшой магазин, а Ansible - это лишь небольшая часть вашей работы, но у вас есть значительная глубина разработчиков Python, тогда сценарий Python может быть «достаточно хорошим» решением.
Вы упомянули двапроблемы:
- Вызов сценариев Python вызывает снижение производительности или какие-либо проблемы?
Да, каждый раз, когда вы вызываете другую задачу (Python, Shell, исполняемый файл и т. Д.) От Ansible у вас будет дополнительный штраф за выполнение.Вы можете не увидеть его в небольшой среде, но если вы используете playbook на сотнях систем или на каждом контейнере, который длится всего несколько минут, вы наверняка увидите некоторые потери производительности, делающие это таким образом.
Вызов сценариев Python является стандартной кодировкой?если я теряю какие-либо преимущества, если я вызываю скрипты Python, такие как обработка ошибок или управляю ANSIBLE PlayBook
Да, вам придется обрабатывать больше ошибок в вашем скрипте Pythonв противном случае он будет обрабатываться для вас в кодировке Ansible или Jinja2, включая то, что вы упомянули вместе с идемпотентными функциями, предоставляемыми Ansible.
В конечном счете, то, что вы просите «один правильный ответ», и редко бывает один,В своих командах я стараюсь углубить опыт Ansible, поэтому я выберу Ansible + Jinja2.