问题描述
谁能帮助我解决使用 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'
来自错误日志:
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 进行删除。请求将是一个带有参数“:operation=delete”到路径的 POST。
有关示例,请参阅 Sling documentation。
,按照建议,我修改了一个代码(delete_agent
函数)。变化:
- 来自
delete
=>post
的请求方法 - 向请求添加数据:
{':operation': 'delete'}
- 此外,我创建了 PR 来在代码中添加这些更改。
它对我有用。非常感谢 Andrew Khoury!