如何在Ansible自定义事实中的有效JSON中创建动态键/值对的列表?

时间:2019-02-06 14:17:08

标签: ansible ansible-facts

我正在尝试在我的Ansible剧本中使用“ set_fact”创建键/值的有效JSON列表。

基本上我希望我的自定义事实看起来像这样:

{
"containerports": [
    "10502" : "two",
    "11502" : "two",
    "10503" : "five", 
    "11503" : "five", 
], 
"numconnections": "2"
}

我不知道 1.如何创建动态变量名称(此示例中为端口号),以及2.如何将此变量添加到我的列表“ connectorports”

当前,我的事实文件中有此文件:

{
"containerports": [
    "10502 : two", 
    "11502 : two", 
    "10503 : five", 
    "11503 : five", 
], 
}

我不知道如何获取JSON键:值映射,以便可以对文件执行选择。每次添加新端口时,我都希望能够附加到列表中。我的test.yml文件看起来像这样:

      - name: Adding container ports to facts
    tags:
      - setup
    set_fact:
        containerports: "{{ containerports | default([]) }} + [ '{{ container_port }} {{ ':' }} {{ container_name }}' ]"
        cacheable: true

1 个答案:

答案 0 :(得分:0)

几乎:)

containerports: "{{ containerports | default([]) }} + [ { container_port: container_name } ]"

以同样的方式将'[]'扩展为列表,内部的'{}'也扩展为字典。