如何在 Ansible 自定义事实中创建有效 JSON 中的动态 Key/Value 对列表?
How do I create a list of dynamic Key/Value pairs in valid JSON in Ansible custom facts?
我正在尝试在我的 ansible 剧本中使用 "set_fact" 创建一个有效的 JSON key/values 列表。
基本上我希望我的自定义事实看起来像这样:
{
"containerports": [
"10502" : "two",
"11502" : "two",
"10503" : "five",
"11503" : "five",
],
"numconnections": "2"
}
我想不通
1. 如何创建动态变量名称(本例中的端口号)和 2. 如何将此变量添加到我的列表 "connectorports"
目前我的事实文件中有这个:
{
"containerports": [
"10502 : two",
"11502 : two",
"10503 : five",
"11503 : five",
],
}
我不知道如何获得 JSON key:value 映射以便我可以对我的文件执行 select。每次我添加一个新端口时,我都希望能够附加到列表中。我的 test.yml 文件如下所示:
- name: Adding container ports to facts
tags:
- setup
set_fact:
containerports: "{{ containerports | default([]) }} + [ '{{ container_port }} {{ ':' }} {{ container_name }}' ]"
cacheable: true
差不多:)
containerports: "{{ containerports | default([]) }} + [ { container_port: container_name } ]"
就像'[]'被扩展成列表一样,里面的'{}'也被扩展成字典。
我正在尝试在我的 ansible 剧本中使用 "set_fact" 创建一个有效的 JSON key/values 列表。
基本上我希望我的自定义事实看起来像这样:
{
"containerports": [
"10502" : "two",
"11502" : "two",
"10503" : "five",
"11503" : "five",
],
"numconnections": "2"
}
我想不通 1. 如何创建动态变量名称(本例中的端口号)和 2. 如何将此变量添加到我的列表 "connectorports"
目前我的事实文件中有这个:
{
"containerports": [
"10502 : two",
"11502 : two",
"10503 : five",
"11503 : five",
],
}
我不知道如何获得 JSON key:value 映射以便我可以对我的文件执行 select。每次我添加一个新端口时,我都希望能够附加到列表中。我的 test.yml 文件如下所示:
- name: Adding container ports to facts
tags:
- setup
set_fact:
containerports: "{{ containerports | default([]) }} + [ '{{ container_port }} {{ ':' }} {{ container_name }}' ]"
cacheable: true
差不多:)
containerports: "{{ containerports | default([]) }} + [ { container_port: container_name } ]"
就像'[]'被扩展成列表一样,里面的'{}'也被扩展成字典。