Ansible Tower API 不接受令牌

Ansible Tower API not accepting token

我正在 Tower 服务器中执行以下操作 POST

http://<my-tower-url>/api/v2/job_templates/10/launch/


Headers:
Content-Type:application/json
Authorization:sometokenhere

并找回错误:

{"detail":"Authentication credentials were not provided."}

还尝试了以下方法:

Headers:
Content-Type:application/json
Authorization:Token sometokenhere

按照建议 here

POST body 中传递原始 username/password 时会发生同样的情况,如下所示(并跳过 Authorization header):

{
    "username": "myusername",
    "password": "mypass",
    "inventory": "inventoryname",
    "verbosity": 0,
    "extra_vars": {
        "var1": "somevar1",
        "var2": "somevar2",
        "var3": "somevar3",
        "var4": "somevar4",
        "var5": "somevar5"
    }
}

知道为什么这不起作用吗?

我最终使用基本身份验证如下:

1.创建你想要运行你的ci工作

的用户

2。在相应的 CI 作业中执行以下 post:

curl -o /dev/null -s -w \"%{http_code}\n\" -X POST http://<my-tower-url>/api/v2/job_templates/10/launch/ \
                  -H \"authorization: Basic $MY_AUTH_TOKEN\" \
                  -H \"content-type: application/json\" \
                  -d \"@awx_data.json

在哪里

  • awx_data.json 是一个包含实际 POST 主体的文件
  • MY_AUTH_TOKEN是上述用户
  • 的典型base64编码用户名+密码

您还可以分配上述结果并根据 201 检查它,这是 AWX returns 成功创建工作后的结果。

轮询 AWX 服务器以检查作业是否成功完成当然是另一回事了。

Authorization: Bearer <oauth2-token-value>

See here,“3. OAuth 2 令牌身份验证”部分,"Curl Example" 部分。