使用 ansible aem_agent 模块删除过时的刷新代理时出错

问题描述

谁能帮助我解决使用 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 函数)。变化:

  1. 来自 delete => post 的请求方法
  2. 向请求添加数据:{':operation': 'delete'}
  3. 此外,我创建了 PR 来在代码中添加这些更改。

它对我有用。非常感谢 Andrew Khoury!