如何通过http(s)接口方式获取Rancher的Api & Keys

本文详细描述了如何在Rancherv2.4.10环境下,通过HTTP接口和shell脚本获取Api&Keys,包括创建默认用户密码、模拟UI登录获取Cookie并利用Cookie创建Api&Keys的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何通过http(s)接口方式获取Rancher的[Api & Keys]

PS:本文rancher版本为v2.4.10

在某些情况下,我们可能会制作k3(8)s+rancher+app的shell安装脚本来进行全套软件的安装(或其他目的的脚本)。

有时候,我们在安装好rancher以后,希望继续处理一些其他的工作,而且这个时候我们希望通过rancher cli或者直接用api/v3的http接口获取一些东西,就会要求提供Api & Keys

我们知道,可以在rancher ui中,通过
在这里插入图片描述

得到

但是,这就要求shell安装过程(或其他目的过程)中,必须人工去操作界面,这不符合我们的需求。

Q:那么如何获取到API & Keys呢?
A:我们可以先获取到rancher的用户名密码,然后通过模仿ui的接口操作来进行处理,也就是通过POST请求来创建并得到这个数据


下面开始具体步骤:

1、创建默认用户密码

我们知道,如果不进行任何处理,rancher的ui登录密码是一个随机的密码,这就导致了获取密码的难度(有办法,但是太曲折)。
具体办法如下:

在rancher的环境变量中增加:
CATTLE_BOOTSTRAP_PASSWORD=password

至于具体情况是用docker还是helm,就看自己的选择了,docker呢,就-e就好了,如果是用helm通过yaml渲染安装,那就改yaml中的env部分

2、通过ui的登录接口登录,并且获取到Cookie

我们可以通过

curl -i -k -X POST -d '{"username":"admin","password":"{第一步创建的密码}","description":"UI Session","responseType":"cookie","ttl":57600000,"labels":{"ui-session":"true"}}' 'https://{rancher地址}/v3-public/localProviders/local?action=login'

来登录(如果是2.4以上的版本,也可以去浏览器F12看一下登录地址即可)

如果一切正常,会得到一个返回:

HTTP/1.1 200 OK
Set-Cookie: R_SESS=token-q6spl:6rd49xgm9hcvr4854r2mkn5664lsb8zl4svl7nknqmp9cpzz566kd6; Path=/; HttpOnly; S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sb熙哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值