在Ansible / Shell中提取CloudFoundry UAAC访问令牌

时间:2017-05-02 18:28:57

标签: ansible cloudfoundry

以下文档: https://docs.pivotal.io/pivotalcf/1-10/customizing/ops-man-api.html

跑完后:

$ uaac target https://OPS-MAN-FQDN/uaa
$ uaac token owner get [options]
$ uaac contexts

我通过access_token字段集(也存储在~/.uaac.yml中)得到我的上下文

如何使用awk,gawk等子字符串工具以编程方式从access_token(如果不是uaac context)中提取~/.uaac.yml

我正在尝试在ansible中执行此操作,但shell可以正常工作。

如果您想知道,stdout中uaac context的输出是:

[2]*[https://OPS-MAN-FQDN/uaa]
  skip_ssl_validation: true

  [0]*[USERNAME]
      user_id: USERID
      client_id: CLIENTID
      access_token: ACCES_TOKEN
      token_type: bearer
      refresh_token: REFRESHTOKEN
      expires_in: 43199
      scope: opsman.admin scim.me opsman.user uaa.admin clients.admin
      jti: JTI VALUE

2 个答案:

答案 0 :(得分:0)

如果你可以使用grep,它就像:

一样简单
uaac context | grep -Po '(?<=access_token: ).*'

打印访问令牌。

答案 1 :(得分:0)

这是使用Fabian解决方案的Ansible Command:

- name: Extracting UAAC access_token
  shell: "uaac context YOUREMAIL | grep -o -P '(?<=access_token:\ ).*(?=)'"
  register: context
相关问题