我想用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'变化':u'接受',u' access_control_allow_headers':u'访问控制 - 允许 - 来源,内容类型,X-CSRFToken,授权,访问权限,内容 - 处理',访问控制方法':你' ; GET,DELETE,POST,PUT,OPTIONS',' access_control_allow_credentials':' true',u' content':u' {\&#34 ;令牌\":\" eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4 \"}&#39 ;,'失败&#39 ;:假,U' JSON&#39 ;: { ü'标记':U' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvI GApBVH_aPI5mSd4'},....
这样做的正确方法是什么?
答案 0 :(得分:3)
uri
模块将content
作为字符串返回。
使用{{ (token.content | from_json).token }}
或{{ token.json.token }}
。