Rancher API 调用 - huangzhif/python-summery GitHub Wiki
url = url
r = requests.get(url, auth=(account.get('key'),account.get('secret_key')))
r.json()
网上关于Rancher API的信息相对较少,甚至还比不上官网上的文档,虽然是英文版,但好在调用还算容易
https://rancher.com/docs/rancher/v1.6/en/api/v2-beta/
所有的API调用可登录Rancher后在API页面点击所属端点进行查看
查看所有环境:http://127.0.0.1:80/v1/projects
查看某环境下的所有应用:http://127.0.0.1:80/v1/projects/{PROJECT_ID}/stacks
查看某应用下的某一服务:http://127.0.0.1:80/v1/projects/{PROJECT_ID}/services/{stack_id}
查看容器:http://127.0.0.1:80/v1/projects/{PROJECT_ID}/containers
服务升级:
第一步、首先进行升级操作:
import requests,json
url = 'http://127.0.0.1:80/v1/projects/{PROJECT_ID}/services/{service_id}/?action=update'
r = requests.get(url,auth=('key','secret key'))
dt = r.json().get('launchConfig')
dt['imageUuid'] = 'docker:ubuntu:14.04.3' -- 修改镜像
abc['launchConfig']=dt -- 包装回去作为upgrade 的参数
第二步、进行更新操作
url_grade = 'http://127.0.0.1:80/v1/projects/{PROJECT_ID}/services/{service_id}/?action=upgrade'
aa = requests.request(method='POST',url=url_grade,auth=('key','secret key'),json={'inServiceStrategy':abc,'toServiceStrategy':'null'})
aa.json()
第三步、如何确认服务已升级完成
state_url = state_url
rr = True
while rr:
service_state = requests.get(state_url,auth=('key','secret_key'))
if service_state.json().get('state') == 'upgraded':
rr = False
logger.info('升级完成')
查看升级时是否报错,查看日志:
-- 可根据创建日期降序排列
url = 'http://127.0.0.1:80/v1/projects/{}/servicelogs/?sort=created&order=desc'