我们正在尝试将防火墙事实(包含 1000 多个策略)的返回输出(JSON)传递给 Python 脚本,然后 Python 脚本将处理该输出(例如修改正确的防火墙策略)并将输出作为变量传递给 Ansible playbook再次返回执行下一个任务。
我们已经测试了此方法将 CSV 文件转换为 Excel。但不确定变量。
问:“有没有办法从 Ansible playbook 调用 Python 脚本,并将输出作为变量再次传递给 Ansible playbook 以执行下一个任务?”
是的,当然。
由于几乎没有任何信息,关于您想要实现的目标的进一步描述,根本没有任何关于“脚本”的信息等,因此推荐的方法是开发模块并遵循创建模块的示例。
通过这样做,您可以简单快速地进入在剧本中验证模块代码
的步骤- name: Test Python script
hosts: localhost
vars:
input: "TEST"
tasks:
- name: Run Python script
the_script:
name: "{{ input }}"
register: output
- name: Show output
debug:
msg: '{{ output }}'
产生
的输出TASK [Show output] ******
ok: [localhost]
msg: TEST
更多文档
类似问答
我认为实现此目的的一种方法是使用“register”获取输出,然后将其存储到本地文件中。 之后让 python 脚本读取文件并从那里获取信息并将其存储到变量中。
- name: task that will create the output
...............
register: foo_output
- name: take the output into a file
copy:
content: "{{ foo_output }}"
dest: /path/to/destination/file
我希望这对您有用,请告诉我进展如何。