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'