我正在尝试使用uri模块将以下curl转换为ansible play:curl -u user:password -X PUT "http://xxxxxxxxrest/api/1.0/projects/project/repos/my-repo/permissions/groups?permission=REPO_WRITE&name=TestGroup"
有人可以建议如何在剧本中添加值吗?以下不起作用。错误:服务器拒绝此请求,因为请求实体的格式不受所请求方法的请求资源支持
- name: Add Permission to Group
uri:
url: http://xxxxxxxxrest/api/1.0/projects/project/repos/myrepo/permissions/groups
method: PUT
user: user
password: password
body: "permission={REPO_WRITE}"
body: "name={TestGroup}"
force_basic_auth: yes
status_code: 200
body: "permission={REPO_WRITE}" body: "name={TestGroup}"
当他们不在你的curl
体内时,我不知道为什么你把它们移到了身体上;它们是你的curl
中的查询参数,因为它们也应该在你的uri:
调用中:
- uri:
url: http://xx.../groups?permission=REPO_WRITE&name=TestGroup
话虽如此,请注意非幂等行为(除非你在其他地方有when:
保护这个uri:
),因为ansible不知道uri做了什么,因此无法对uri是否需要发生做出任何声明或不。