告诉Ansible迭代(网络摄像头)配置json文件,并通过新的api调用更新每个值

告诉Ansible迭代(网络摄像头)配置json文件,并通过新的api调用更新每个值,ansible,vapix,Ansible,Vapix,我有一个.json文件,里面有Axis网络摄像头的数百个配置值。内容如下所示: { "Name": "HTTPS.Port", "Value": "443" }, { "Name": "Image.DateFormat", "Value": "YYYY-MM-DD" }, {

我有一个.json文件,里面有Axis网络摄像头的数百个配置值。内容如下所示:

          {
              "Name": "HTTPS.Port",
              "Value": "443"
          },
          {
              "Name": "Image.DateFormat",
              "Value": "YYYY-MM-DD"
          },
          {
              "Name": "Image.MaxViewers",
              "Value": "20"
          },
Axis API(名为)仅提供更新单个值的更新函数,因此我必须循环遍历这些值,并在每次迭代中触发新的API调用:

    name: update parameters
  local_action:
    module: uri 
    user: x
    password: y
    url: "{{ axis_snmp_role.server_url }}?action=update&{{ item }}"
  with_items:
    - "SNMP.V2c=yes"
    - "SNMP.Enabled=yes"
    - "ImageSource.I0.Sensor.ExposureValue=100"

现在,上面的示例要求我将数百个配置值硬编码到循环中。有没有办法告诉Ansible检查摄像头配置json,通过新的api调用更新每个值,并在json文件中没有剩余值时停止?

给定配置的值是一个列表。比如说

shell>cat data.yml
配置:[
{“Name”:“HTTPS.Port”,“Value”:“443”},
{“名称”:“Image.DateFormat”,“值”:“YYYY-MM-DD”},
{“Name”:“Image.MaxViewers”,“Value”:“20”}]

-hosts:localhost
任务:
-包括以下变量:
文件:data.json
-调试:
msg:“?action=update&{{item.Name}}={{{item.Value}”
循环:“{{config}}”
给予

ok:[localhost]=>(项={u'Name':u'HTTPS.Port',u'Value':u'443'})=>{
“msg”:”?操作=更新&HTTPS.端口=443”
}
确定:[localhost]=>(项={u'Name':u'Image.DateFormat',u'Value':u'YYYY-MM-DD'})=>{
“msg”:”?操作=更新和图像。日期格式=YYYY-MM-DD”
}
确定:[localhost]=>(项={u'Name':u'Image.MaxViewers',u'Value':u'20'})=>{
“msg”:”?操作=更新和图像。MaxViewer=20”
}
如果这是您想要的,则循环uri模块。比如说

-本地操作:
模块:uri
用户:x
密码:y
url:“{axis\u snmp\u role.server\u url}}?action=update&{{item.Name}}={{item.Value}”
循环:“{{config}}”