从python中的模板生成yaml文件

时间:2018-12-05 11:02:35

标签: python ansible jinja2

我有一个python脚本查询api并返回一些不同的值。由此,我试图用从jinja2模板插入的值生成一个ansible剧本,看起来像这样

- name: prep change
  hosts: {{ device }}
  gather_facts: no 
  connection: local

  tasks:

  - name: run arista cmd
    eos_command:
     commands: show ip bgp neighbor | i {{ ip }}

device ip 是python脚本中api调用返回的值。 python是否允许使用jinja2模板来创建.yml文件?

1 个答案:

答案 0 :(得分:1)

意识到这并不能回答您的特定问题,但是如果您的python脚本是为了收集必要数据以生成剧本的目的,并且不可能仅将对API的调用直接合并到剧本中,您考虑将python脚本转换为Ansible库存脚本?

运行ansible_playbook.yml -i /path/to/inventory/dir playbook.yml时,如果目录中的文件是可执行文件,Ansible将执行并接受格式正确的输出作为您的剧本的清单数据。这样,您就可以将剧本设为静态,并通过动态清单向其提供所需的数据。

文档是here,还有几个示例博客帖子herehere