Здравствуйте, через API-Explorer с put dhcprelayservices все работает нормально, но через ansible я получаю только первое значение, но не записи о сервере и агенте.
Код через API-Explorer работает: { "version": "m2l3jneotn6e4", "name": "NAME_DHCP-RELAY-SERVER", "ipv4RelayTimeout": 60, "ipv6RelayTimeout": 60, "servers": [ { "server": { "type": "networkobject", "name": "IPv4_DHCP1" }, "interface": { "type": "subinterface", "name": "Interfacename who the dhcp running" }, "type": "dhcprelayserver" }, { "server": { "type": "networkobject", "name": "IPv4_DHCP2" }, "interface": { "type": "subinterface", "name": "Interfacename who the dhcp running" }, "type": "dhcprelayserver" } ] "agents": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "setRoute": false, "interface": { "type": "subinterface", "name": "Interface-Name" }, "type": "dhcprelayagent" }, { "enableIpv4Relay": true, "enableIpv6Relay": false, "setRoute": false, "interface": { "type": "subinterface", "name": "Interface-Name" }, "type": "dhcprelayagent" } ] "type": "dhcprelayservice" }
} Код Ansible (все значения ID считываются до выполнения этого скрипта): ---
name: Execute upsertDHCPRelayService operation M-NET HB ftd_configuration: operation: upsertDHCPRelayService data: version: "{{ dhcprelay.version }}" name: NAME_DHCP-RELAY-SERVER description: "NAME_DHCP-RELAY-SERVER" ipv4RelayTimeout: 60 ipv6RelayTimeout: 60 servers[0]: [ {"server": {"type": "networkobject","name": "IPv4_dhcpserver1"},"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayserver"} ] servers[1]: [ {"server": {"type": "networkobject","name": "IPv4_dhcpserver2"},"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayserver"} ] agents[0]: [ {"enableIpv4Relay": true,"enableIpv6Relay": false,"setRoute": false,"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayagent"} ] agents[1]: [ {"enableIpv4Relay": true,"enableIpv6Relay": false,"setRoute": false,"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayagent"} ] agents[2]: [ {"enableIpv4Relay": true,"enableIpv6Relay": false,"setRoute": false,"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayagent"} ] agents[3]: [ {"enableIpv4Relay": true,"enableIpv6Relay": false,"setRoute": false,"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX.id }}' },"type": "dhcprelayagent"} ] agents[4]: [ {"enableIpv4Relay": true,"enableIpv6Relay": false,"setRoute": false,"interface": {'type':'subinterface','id':'{{ subinterface_interfaceX_f.id }}' },"type": "dhcprelayagent"} ] type: dhcprelayservice Если я не использую номер сервера и агентов, то получаю следующую ошибку от ansible. "msg": { "Invalid data provided": { "required": [ "servers[0].server.id", "servers[1].server.id" Вывод Ansible: changed: [ftd-name] => { "ansible_facts": {}, "changed": true, "invocation": { "module_args": { "data": { "agents[0]": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "interface": { "id": "39f2769f-9062-11ee-8f5f-9fdadd220530", "type": "subinterface" }, "setRoute": false, "type": "dhcprelayagent" } ], "agents[1]": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "interface": { "id": "2f321ffb-9063-11ee-8f5f-0d83eeffbb9c", "type": "subinterface" }, "setRoute": false, "type": "dhcprelayagent" } ], "agents[2]": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "interface": { "id": "b2bd3384-9063-11ee-8f5f-cb99fc234435", "type": "subinterface" }, "setRoute": false, "type": "dhcprelayagent" } ], "agents[3]": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "interface": { "id": "b96eea77-9063-11ee-8f5f-81d10b4858ef", "type": "subinterface" }, "setRoute": false, "type": "dhcprelayagent" } ], "agents[4]": [ { "enableIpv4Relay": true, "enableIpv6Relay": false, "interface": { "id": "c01297aa-9063-11ee-8f5f-b5272134f9bc", "type": "subinterface" }, "setRoute": false, "type": "dhcprelayagent" } ], "description": "NAME_DHCP-RELAY-SERVER", "id": "c25e5737-9be2-11ed-8442-7f729e5d90b5", "ipv4RelayTimeout": 60, "ipv6RelayTimeout": 60, "name": "NAME_DHCP-RELAY-SERVER", "servers[0]": [ { "interface": { "id": "5318e182-9065-11ee-8f5f-39e51efbc113", "type": "subinterface" }, "server": { "name": "IPv4_name", "type": "networkobject" }, "type": "dhcprelayserver" } ], "servers[1]": [ { "interface": { "id": "5318e182-9065-11ee-8f5f-39e51efbc113", "type": "subinterface" }, "server": { "name": "IPv4_name", "type": "networkobject" }, "type": "dhcprelayserver" } ], "type": "dhcprelayservice", "version": "oodxtfoeskckb" }, "filters": { "name": "NAME_DHCP-RELAY-SERVER" }, "operation": "upsertDHCPRelayService", "path_params": { "objId": "c25e5737-9be2-11ed-8442-7f729e5d90b5" }, "query_params": null, "register_as": null } }, "response": {}
} Но значения для сервера и агента не установлены. Есть какие-нибудь идеи? Вывод Ansible из getDHCPRelayService : ok: [ftd-name] => {
"ansible_facts": {
"dhcprelay": {
"id": "c25e5737-9be2-11ed-8442-7f729e5d90b5",
"ipv4RelayTimeout": 60,
"ipv6RelayTimeout": 60,
"links": {
"self": "https://X.X.X.X/api/fdm/v6/devicesettings/default/dhcprelayservices/c25e5737-9be2-11ed-8442-7f729e5d90b5"
},
"name": "NAME_DHCP-RELAY-SERVER",
"type": "dhcprelayservice",
"version": "oodxtfoeskckb"
}
},
"changed": false,
"invocation": {
"module_args": {
"data": null,
"filters": null,
"operation": "getDHCPRelayService",
"path_params": {
"objId": "c25e5737-9be2-11ed-8442-7f729e5d90b5"
},
"query_params": null,
"register_as": "dhcprelay"
}
},
"response": {
"id": "c25e5737-9be2-11ed-8442-7f729e5d90b5",
"ipv4RelayTimeout": 60,
"ipv6RelayTimeout": 60,
"links": {
"self": "https://x.x.x.x/api/fdm/v6/devicesettings/default/dhcprelayservices/c25e5737-9be2-11ed-8442-7f729e5d90b5"
},
"name": "NAME_DHCP-RELAY-SERVER",
"type": "dhcprelayservice",
"version": "oodxtfoeskckb"
}
}