gpt4 book ai didi

python - 调用 python 脚本向 ansible 提供 json 输出的性能/问题

转载 作者:行者123 更新时间:2023-12-01 08:34:14 30 4
gpt4 key购买 nike

我有 ansible 模块,我必须执行数千个设置,必须进行大量数据解析才能为 ansible 模块输入提供有效输入。

我选择了Python脚本,它执行数千个设置,它执行数据解析并向ansible模块提供有效的json输入

- name: Calling Python1 script
script: /usr/bin/python /python1.py
register: var1

#perform few tasks using ansible modules

#Calling python2 script
- name: Calling Python2 script
script: /usr/bin/python /python2.py
register: var2


#perform few tasks using ansible modules

Python 脚本会多次调用,至少每 20 个 ansible 任务就会调用一个 Python 脚本来获取正确的输入和数据解析。

一切正常,现在还没有问题。

在 python 脚本任务中执行的任何操作也可以通过 ansible playbook 来实现(通过使用 jinja2 模板)。但它需要大量的开发时间,并且编写用于数据解析和向 ansible 模块提供输入的 ansible playbook 相当困难。

这就是原因,我正在使用 python 脚本并在 ansible playbook 中调用 python 脚本。

现在我关心的是,

  1. 调用 Python 脚本会有任何性能损失或任何问题吗?
  2. 调用 Python 脚本是标准编码?如果我调用 python 脚本(例如错误处理或控制 ansible playbook),我是否会失去任何好处

最佳答案

Anything that is performing in python scripts tasks can be achieved from ansible playbooks also (By using jinja2 templates). But its takes lot of time to Develop and it is quite difficult to write ansible playbooks for data parsing and providing input to ansible modules.

我认为这才是您真正要求评论或重申的内容,“我的团队可以在 Ansible+Python 中完成这一切,但我们可以在 Ansible+Jinja2 中完成。”

你没有说你正在创建的Python脚本有多复杂,但是使用Ansible+Jinja的一大好处是你的剧本会更加idempotent并最终减少对系统不必要的更改(这可能导致额外的服务重新启动、管理问题等)。

但与此相平衡的是,构建和维护这些 Jinja2 模板的工作会对您的团队产生多大影响?如果您是一家小商店,Ansible 仅占您工作的一小部分,但您拥有相当深度的 Python 开发人员,那么 Python 脚本可能是“足够好”的解决方案。

您提到了两个问题:

  1. Calling Python scripts have any performance penalty or any issues?

是的,每当您从 Ansible 调用另一个任务(Python、Shell、可执行文件等)时,您都会遇到一些额外的执行损失。您可能在小型环境中看不到它,但如果您在 100 个系统上运行剧本,或者在每个仅持续几分钟的容器上运行剧本,那么您一定会看到这样做会带来一些性能损失。

  1. Calling Python scripts is a standard coding ? is i am loosing any benefits if i am calling python scripts like error handlings or controlling ansible playbooks

是的,您将必须在 Python 脚本中处理更多错误处理,否则这些错误处理将在 Ansible 或 Jinja2 编码中为您处理,包括您提到的以及 Ansible 提供的幂等功能。

最终,您所要求的是“一个正确的答案”,但很少有一个。在我的团队中,我正在努力积累深厚的 Ansible 经验,因此 Ansible+Jinja2 是我选择的路线。

关于python - 调用 python 脚本向 ansible 提供 json 输出的性能/问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803491/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com