consul删除无效实例py脚本

553次阅读
没有评论

使用 python 脚本删除 consul 中注册的无效实例, 脚本可以结合 crontab 定时任务执行。
python 版本: python3.x

安装依赖库

git clone https://github.com/gmr/consulate.git

cd consulate

python3 setup.py  install

注意依赖库不要使用 pip install consulate 来安装,因为这样安装的是 2015 年的代码,代码有问题,使用的时候会出现删除不了的情况。
如果你想使用老版本的代码,需要修改 site-packages/consulate/api/agent.py 第 246 行代码

# 更改前
return self._get_no_response_body(['deregister', service_id])
# 更改后
return self._put_no_response_body(['deregister', service_id])

完整代码实例

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
# author : ddn

import consulate
consul = consulate.Consul(host='127.0.0.1')

error_list = []
services = consul.agent.checks()
for server in services:
    if services[server]['Status'] == "critical":
        error_list.append(services[server]['ServiceID'])
        consul.agent.service.deregister(services[server]['ServiceID'])
print('删除的节点:',','.join(error_list))
正文完
 
ddn
版权声明:本站原创文章,由 ddn 2020-10-10发表,共计775字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。