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