本文作者是睿云智合(Wise2C)的工程师钟亮,本文中他详细介绍了在项目中调用Rancher API时的具体步骤和总结出的一些规则。
项目中使用Rancher API 的场景
使用Rancher来管理CI/CD项目基于Docker产生的服务,调用Rancher提供的restful api无缝衔接到我们的项目。
直接看操作API的步骤吧
首先生成API KEY,用于通过Rancher的验证
将生产的API key 和password 保存下来,用于Http Basic Auth:
打开Rancher API管理界面的正确方式
在服务操作列表,点击view api 进入操作该服务的API 模拟界面:
进入Rancher API管理界面,右边可以模拟一个请求,这里以在Rancher中创建stack举例,点击create,填写必填参数,点击show requeset可以得到如下API Requeset详情:
从API Request 得出一个完整的api 请求需要的参数和规则
- basicAuth格式:key:password [表示每个http请求头必须带上这种格式的auth,请求才能通过Rancher服务器的验证]
- 请求类型:post
- 请求参数格式:json
- 创建stack的请求URL: http://182.140.210.214:8080/v1/projects/1a5/environments
- 必须填写的字段:name
根据分析,我们可以用一段简单java代码试一下调用API创建stack:
调用Rancher API创建stack (java)
构造符合Rancher API 的Http basic Auth 头信息:
带上刚才生成的 API key password 和请求地址,经测试,已经成功在 Rancher 中创建了stack,更多 API 可以通过 view api 进入管理界面进行研究:
Tips:成功调用Rancher API 关键一步就是每个请求头必须带上Basic Auth[key:password]
通过访问具体的service的API可以总结出一些规则:
- URL=http://182.140.210.214:8080/v1/projects/1a5[基础地址]+service/id[访问资源]
- Links:列出了操作该serviece的rest URL地址
- Action:列出了如:升级、重启、删除service的Action URL地址
- 返回参数:可以根据API返回参数的名和类型定义对象,反序列化成对象,方便调用
- 另外,通过API schemas获取每个参数的具体类型,schemas地址:http:///v1/projects/1a5/schemas
总结
如果你的项目也是基于Docker环境的,使用Rancher可以很好的管理的服务的生命周期(重启、停止、升级、回滚、确认升级、添加服务) 、集成服务等。
关于操作Rancher API的文档较少,本文以一个简单例子覆盖了调用Rancher API的基本流程以及API的一些规则,意在抛砖引玉,希望也在研究Rancher的大家能一起分享更多的实践。
请教一下 ,首次调用创建apikey的API时:key:password 应该传什么呢?