问题描述
我们公司有多个 Kubernetes 集群。为了获取 kubectl 配置内容,我们使用 Dex 登录并将内容复制/粘贴到 kubectl 的本地配置。
我想让这个自动化,所以运行一堆命令来使用 curl
获取内容。
我无法通过检查请求响应来找出方法。如果有人知道如何,请帮助我。
解决方法
我找到了方法。所以我们需要打两个电话。第一个检索登录页面,我们可以在其中获取请求 ID:
the_id=$(curl -s -v -L "https://login.${cluster}" | grep -Po 'action="(.*)"')
上面在响应中搜索属性 action=
,它告诉您在哪里提交请求
然后在下一次调用中使用 the_id
:
konfig=$(curl --insecure POST -H 'Content-Type: application/x-www-form-urlencoded' -d "login=$username&password=$password" -v -L "${cluster}${the_id}" | grep -Pzo '(?s)id=".*?</')
此命令将返回一个 HTML 页面,您可以在其中找到配置。显然,对您来说,这可能是不同的响应,但从第一次调用中获取 request id
是我一开始就错过的关键。