首页 文章

Ansible Tower API不接受令牌

提问于
浏览
2

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

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


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

并收回错误:

{“detail”:“未提供身份验证凭据 . ”}

还试过以下内容:

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

正如建议here .

POST 正文中传递原始用户名/密码时也是如此(并跳过 Authorization Headers ):

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

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

1 回答

  • 0

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

    1 . 创建要运行ci作业的用户

    2 . 在相应的CI工作中执行以下帖子:

    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 是上述用户的tyical base64编码用户名密码

    您还可以分配上述结果并根据 201 进行检查,这是成功创建作业时 AWX 返回的内容 .

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

相关问题