如何从 devops 部署阶段检索 cloud foundry oauth 令牌以设置自动缩放?
How to retrieve the cloud foundry oauth token from a devops deploy stage for setting up auto scaling?
我正在尝试从 devops 管道部署阶段获取 cloud foundry oauth-token:
...
cf push $CF_APP
...
accessToken=$(cf oauth-token | grep bearer | sed -e s/bearer/Bearer/g)
echo accessToken=$accessToken
...
# use token in Auto Scaling API call ...
curl $createPolicyUrl -X 'PUT' -H 'Content-Type:application/json' \
-H 'Accept:application/json' \
-H "Authorization:$accessToken" \
--data-binary @${policyJson} \
-s -o response.txt -w '%{http_code}\n'
echo 命令的输出是:
accessToken=
如何检索 oauth 令牌?
请注意,cf push
在脚本 ecen 中工作正常,但在部署脚本中没有执行 cf login
。因此,我假设 cf oauth-token 也不需要登录。这是一个有效的假设吗?
更新:我将 cf login
添加到我的部署脚本中:
...
cf push $CF_APP
...
cf login
accessToken=$(cf oauth-token | grep bearer | sed -e s/bearer/Bearer/g)
echo accessToken=$accessToken
...
输出:
cf login not allowed.
另请参阅我的 关于在 devops 部署阶段重新配置可用性监控的内容。
确保在 运行 cf oauth-token
命令之前执行 cf login
登录。还要确保双引号 "Authorization:$accessToken"
以便替换变量。
更新:看起来您可以通过 $CF_TOKEN
环境变量从脚本中访问 oauth-token。该令牌与管道的所有者相关联,而不是与当前管道阶段的用户运行关联。
你能试试吗
accessToken=$(cf oauth-token)
CF_TOKEN=$(echo $accessToken | grep “Bearer*” | perl -wpe ‘s/.*(Bearer .+)//‘)
CF_TOKEN should now have the token value
我正在尝试从 devops 管道部署阶段获取 cloud foundry oauth-token:
...
cf push $CF_APP
...
accessToken=$(cf oauth-token | grep bearer | sed -e s/bearer/Bearer/g)
echo accessToken=$accessToken
...
# use token in Auto Scaling API call ...
curl $createPolicyUrl -X 'PUT' -H 'Content-Type:application/json' \
-H 'Accept:application/json' \
-H "Authorization:$accessToken" \
--data-binary @${policyJson} \
-s -o response.txt -w '%{http_code}\n'
echo 命令的输出是:
accessToken=
如何检索 oauth 令牌?
请注意,cf push
在脚本 ecen 中工作正常,但在部署脚本中没有执行 cf login
。因此,我假设 cf oauth-token 也不需要登录。这是一个有效的假设吗?
更新:我将 cf login
添加到我的部署脚本中:
...
cf push $CF_APP
...
cf login
accessToken=$(cf oauth-token | grep bearer | sed -e s/bearer/Bearer/g)
echo accessToken=$accessToken
...
输出:
cf login not allowed.
另请参阅我的
确保在 运行 cf oauth-token
命令之前执行 cf login
登录。还要确保双引号 "Authorization:$accessToken"
以便替换变量。
更新:看起来您可以通过 $CF_TOKEN
环境变量从脚本中访问 oauth-token。该令牌与管道的所有者相关联,而不是与当前管道阶段的用户运行关联。
你能试试吗
accessToken=$(cf oauth-token)
CF_TOKEN=$(echo $accessToken | grep “Bearer*” | perl -wpe ‘s/.*(Bearer .+)//‘)
CF_TOKEN should now have the token value