【发布时间】:2021-05-18 03:38:07
【问题描述】:
在 Ansible 剧本中,如何过滤具有不确定数量的键:值对的字典以转换为字符串,然后我可以将其用作 Ansible shell 模块的命令字符串?
下面的示例手册说明了数据、问题和期望的结果。
---
- name: Convert a dictionary into a string containing the key value pairs to run as a shell command
hosts:
- all
vars:
devices:
- parameter_key: foo_device
parameter_a: value1
parameter_b: value2
parameter_c: value3
- parameter_key: bar_device
parameter_a: value4
parameter_b: value5
parameter_d: value6
parameter_e: value7
# or like this
- foo_device:
parameter_a: value1
parameter_b: value2
parameter_c: value3
- bar_device:
parameter_a: value4
parameter_b: value5
parameter_d: value6
parameter_e: value7
tasks:
- set_fact:
# I have no idea what to do here
loop: devices
# desired result is a string, or array or strings I can then feed to the ansible shell module for execution on the host
command_str1: "{{ foo_cmd foo_device --parameter_a value1 --parameter_b value2 --parameter_c value3 }}"
command_str2: "{{ foo_cmd bar_device --parameter_a value4 --parameter_b value5 --parameter_d value6 --parameter_e value7 }}"
# and so on if there was more devices
【问题讨论】:
标签: python ansible yaml jinja2