我正在尝试使用uri模块将以下curl转换为ansible播放:
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
答案 0 :(得分:1)
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是否需要进行任何声明。