如何使用 API 初始化Rancher server - 用于今后的自动化


我们已经花了不少的时间在Rancher UI上了,你可能也已经知道了如何用Rancher Server 来管理大量的docker 容器了。 那么,如何自动化配置和管理Rancher server和hosts呢? 比如自动化安装Rancher server,初始化,以及自动添加 hosts(nodes)。这里最关键的是,

1. 如何得到Rancher server 的registration token

2. 如何得到Rancher API key

这篇文章就是针对这些问题的。

如何得到Rancher server 的registration token。

先来谈谈如何得到Registration token (注册令牌)。 因为你需要用这个token来添加新的hosts。

第一步,得到缺省项目的id

安装好rancher server后,你可以通过下面的命令来实现:
$ curl -s http://<rancher_server_ip>:8080/v1/projects 


后面我用实际的IP来替代,你需要替换成真实的Rancher server IP。

当然如果你安装了httpiejq 的话,下面的命令会很好用的
$ http GET http://54.206.127.208:8080/v1/projects|jq ' .data[0].id'
"1a5"


Screen_Shot_2016-04-09_at_12.08_.35_PM_.png


由此可知,rancher server 在没有初始化前,缺省(default)的项目id 总是 1a5(这个我得到了Rancher Labs 的一位叫 @vincent 的确认 。 如果你想偷懒的话,可以直接用它。

第二步,你需要激活一下Rancher server, 让其在后台产生 registration token

$ http POST http://54.206.127.208:8080/v1/registrationtokens?projectId=1a5
HTTP/1.1 201 Created
...


其实其在后台运行了一个action: action=activate

第三步,得到registratration token

$ http GET http://54.206.127.208:8080/v1/registrationtokens?projectId=1a5|jq '.data[0].links.registrationUrl'

"http://54.206.127.208:8080/v1/scripts/DE0204A7E28E8285992E:1460167200000:0wy0ug4b01xSZoP71tL5r10kV8o" 


有了这个token 后,你就可以添加Rancher 的hosts了

参考:
rancher ansible playbook: https://github.com/galal-husse ... n.yml

4 个评论

http -a ak:sk http://{server_ip}:{port}/v1/registrationtokens?projectId=1a5 | jq '.data[0].links.registrationUrl'
http -a ak:sk GET http://{server_ip}:{port}/v1/registrationtokens?projectId=1a5 | jq '.data[0].links.registrationUrl'
你是想说,我的命令没有显示完全,是吗? 这个问题我已经和坛主报告了。 通过手机看的时候,就没有问题。 但是用浏览器在电脑上看,如果命令太长,后面的会不显示。
不是,我意思是用你的那种方法好像不正常,我是用我写的那句来的

要回复文章请先登录注册