试图将curl转换为ansible play

问题描述 投票:1回答:1

我正在尝试使用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
ansible
1个回答
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是否需要发生做出任何声明或不。

© www.soinside.com 2019 - 2024. All rights reserved.