我想用ansible调用django服务器:
我打过电话:
- name: Check status 200
uri:
url: https://{{ rest_server }}/api/users/api-token-auth/
method: POST
headers:
Content-Type: "application/json"
body: '{"username": "username", "password": "password"}'
return_content: yes
register: token
我得到了令牌。现在我想使用这个令牌进行下一次调用,但我无法弄清楚这是如何工作的....
我试试
- name: Check that LOGIN returns a status 200
uri:
url: https://{{ rest_server }}/api/users/auth/
method: POST
headers:
Content-Type: "application/json"
Authorization: "JWT {{ token.content[token] }}"
body: '{"username": "user", "password": "pass"}'
return_content: yes
register: webpage
但我得到错误:
“msg”:“任务包含一个带有未定义变量的选项。错误是:ansible.utils.unsafe_proxy.AnsibleUnsafeText对象没有元素{u'cookies':{},u'vary':u'Accept',u 'access_control_allow_headers':u'Access-Control-Allow-Origin,Content-Type,X-CSRFToken,Authorization,Access-Bw,Content-Disposition',u'access_control_allow_methods':u'GET,DELETE,POST,PUT,OPTIONS' ,u'access_control_allow_credentials ':u'true',u'content ':U'{\ “标记\”:\ “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4 \”} ' '失败':假,u'json':【U '令牌':u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4' } ....
做正确的方法是什么?
uri
模块将content
作为字符串返回。
使用{{ (token.content | from_json).token }}
或{{ token.json.token }}
。