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

提取Ansible/Shell中的CloudFoundry UAAC访问令牌,ansible,cloud-foundry,Ansible,Cloud Foundry,以下文件如下: 运行后: $ uaac target https://OPS-MAN-FQDN/uaa $ uaac token owner get [options] $ uaac contexts 我使用access\u token字段集(也存储在~/.uaac.yml中)获取上下文 如何使用子字符串工具(如awk、gawk等)以编程方式从uaac上下文(如果不是从~/.uaac.yml)提取access\u令牌 我试图在ansible中实现这一点,但shell可以很好地工作 如果您想知

以下文件如下:

运行后:

$ uaac target https://OPS-MAN-FQDN/uaa
$ uaac token owner get [options]
$ uaac contexts
我使用
access\u token
字段集(也存储在
~/.uaac.yml
中)获取上下文

如何使用子字符串工具(如awk、gawk等)以编程方式从
uaac上下文
(如果不是从
~/.uaac.yml
)提取
access\u令牌

我试图在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

如果您可以使用
grep
,它非常简单:

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

uaac上下文| grep-Po'(?如果您可以使用
grep
它非常简单:

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

uaac上下文| grep-Po'(?以下是利用Fabian解决方案的Ansible命令:

- name: Extracting UAAC access_token
  shell: "uaac context YOUREMAIL | grep -o -P '(?<=access_token:\ ).*(?=)'"
  register: context
-名称:提取UAAC访问\u令牌

shell:“uaac上下文YOUREMAIL | grep-o-P'(?

以下是利用Fabian解决方案的Ansible命令:

- name: Extracting UAAC access_token
  shell: "uaac context YOUREMAIL | grep -o -P '(?<=access_token:\ ).*(?=)'"
  register: context
-名称:提取UAAC访问\u令牌

shell:“uaac context YOUREMAIL | grep-o-P'(?如果你能安装一个工具,
rq
是阅读
.uaac.yml
非常容易的一个选项:。如果不能,你能使用内联python(
python-c'cmd'
ruby-e'cmd'
)?如果你能安装一个工具,
rq
是一个非常容易阅读
.uaac.yml
的选项:。如果不能,你能使用内联python(
python-c'cmd'
ruby-e'cmd'
)?谢谢Fabian。正如你在评论中提到的,我更喜欢rq这样的工具,以便从结构上提取变量。但由于时间限制,我放弃了,并使用了类似的命令。确切地说:-名称:提取UAAC访问权_令牌外壳:“UAAC上下文YOUREMAIL | grep-o-P”(?谢谢Fabian。正如你在评论中提到的,我更喜欢rq这样的工具,以便从结构上提取变量。但由于时间限制,我放弃了,并使用了类似的命令。确切地说:-名称:提取UAAC访问权\u令牌外壳:“UAAC上下文YOUREMAIL | grep-o-P'(?)?