首页 > 代码库 > 如何调用docker swarm service的API来创建及更新服务
如何调用docker swarm service的API来创建及更新服务
平衡的推进,先作一个原型吧。
#!/usr/bin/env python# -*- coding: utf-8 -*-import requestsimport json#定义docker swarm的管理节点ip,端口号,API版本,服务名, 服务URL#在后期集成到自动化部署时,需要精简数据结构,完善data, 增加精准判断及空间回收#API更多用途参考: https://docs.docker.com/engine/api/v1.29/docker_swarm_ip_port = "ip:port"docker_swarm_api_version = "v1.29"docker_swarm_service_name = "tomcatbv"get_service_url = "http://%s/%s/services/%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name)data = { "Name": "tomcatbv", "TaskTemplate": { "ContainerSpec": { "Image": "harbor_op/project_name/tomcat:20170620demo", }, "Placement": {}, "RestartPolicy": { "Condition": "on-failure", "Delay": 10000000000, "MaxAttempts": 10 } }, "Mode": { "Replicated": { "Replicas": 1 } }, "UpdateConfig": { "Parallelism": 2, "FailureAction": "pause", }, "RollbackConfig": { "Parallelism": 1, }, "Labels": { "foo": "bar" }}#创建docker swarm service服务def create_service(): url = "http://%s/%s/services/create" %(docker_swarm_ip_port, docker_swarm_api_version) data_json = json.dumps(data) r = requests.post(url, data=http://www.mamicode.com/data_json) print r.text if r.status_code == 201: print "created ok" else: print "create error" sys.exit()#更新docker swarm service服务def update_service(version_index): url = "http://%s/%s/services/%s/update?version=%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name, version_index) data_json = json.dumps(data) r = requests.post(url, data=http://www.mamicode.com/data_json) print version_index, r.text, r.status_code if r.status_code == 200: print "updated ok" else: print "update error" sys.exit()def main(): get_service_url = "http://%s/%s/services/%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name) r = requests.get(get_service_url) print get_service_url, r.status_code, r.text if r.status_code != 200: create_service() else: version_index = eval(r.text)["Version"]["Index"] update_service(version_index) if __name__ == "__main__": main()
如何调用docker swarm service的API来创建及更新服务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。