使用 ansible aem_agent 模块删除过时的冲洗代理时出错
Error deleting obsolete flush agents using ansible aem_agent module
任何人都可以帮助我解决使用 aem_agent 模块 (https://github.com/lean-delivery/ansible-modules-aem/blob/master/aem_agent.py) 删除过时复制代理的错误吗?
我遇到错误:
"msg": "failed to delete agent: 405 - "
这是一个任务:
- name: Remove dispatcher flush agents
aem_agent:
name: "{{ obsolete_dispatcher }}"
state: absent
folder: 'agents.publish'
admin_user: '{{ admin_login }}'
admin_password: '{{ admin_password }}'
host: 'http://localhost'
port: '4502'
来自error.log:
XX.XX.XXXX XX:XX:XX.XXX *ERROR* [127.0.0.1 [XXXXXXXXXXXXX] DELETE /etc/replication/agents.publish/ip-XX-XX-XXX-XXX-XX-XXXX-X-compute-internal-dispatcher HTTP/1.1] org.apache.sling.servlets.resolver.internal.SlingServletResolver handleError: Recursive invocation. Not further handling status 405(Method DELETE not supported)
当您根据 security checklist 禁用 WebDav 包时,不支持 HTTP DELETE 方法。
您可以重新启用 WebDAV 或修改 Ansible aemagent project 中的代码以使用 Sling POST servlet 进行删除。该请求将是一个 POST,路径参数为“:operation=delete”。
有关示例,请参阅 Sling documentation。
根据建议,我修改了代码(delete_agent
函数)。变化:
- 请求方法来自
delete
=> post
- 向请求添加数据:
{':operation': 'delete'}
- 此外,我创建了 PR 以在代码中添加这些更改。
对我有用。非常感谢 Andrew Khoury!
任何人都可以帮助我解决使用 aem_agent 模块 (https://github.com/lean-delivery/ansible-modules-aem/blob/master/aem_agent.py) 删除过时复制代理的错误吗?
我遇到错误:
"msg": "failed to delete agent: 405 - "
这是一个任务:
- name: Remove dispatcher flush agents
aem_agent:
name: "{{ obsolete_dispatcher }}"
state: absent
folder: 'agents.publish'
admin_user: '{{ admin_login }}'
admin_password: '{{ admin_password }}'
host: 'http://localhost'
port: '4502'
来自error.log:
XX.XX.XXXX XX:XX:XX.XXX *ERROR* [127.0.0.1 [XXXXXXXXXXXXX] DELETE /etc/replication/agents.publish/ip-XX-XX-XXX-XXX-XX-XXXX-X-compute-internal-dispatcher HTTP/1.1] org.apache.sling.servlets.resolver.internal.SlingServletResolver handleError: Recursive invocation. Not further handling status 405(Method DELETE not supported)
当您根据 security checklist 禁用 WebDav 包时,不支持 HTTP DELETE 方法。 您可以重新启用 WebDAV 或修改 Ansible aemagent project 中的代码以使用 Sling POST servlet 进行删除。该请求将是一个 POST,路径参数为“:operation=delete”。
有关示例,请参阅 Sling documentation。
根据建议,我修改了代码(delete_agent
函数)。变化:
- 请求方法来自
delete
=>post
- 向请求添加数据:
{':operation': 'delete'}
- 此外,我创建了 PR 以在代码中添加这些更改。
对我有用。非常感谢 Andrew Khoury!