如何使用 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。
当然如果你安装了httpie 和 jq 的话,下面的命令会很好用的
$ http GET http://54.206.127.208:8080/v1/projects|jq ' .data[0].id'
"1a5"
由此可知,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'
你是想说,我的命令没有显示完全,是吗? 这个问题我已经和坛主报告了。 通过手机看的时候,就没有问题。 但是用浏览器在电脑上看,如果命令太长,后面的会不显示。
不是,我意思是用你的那种方法好像不正常,我是用我写的那句来的