批量注销consul服务脚本

#!/usr/bin/env python
# -*- coding: utf8 -*-

import os
import re
import json
import urllib
import urllib2
#import jsonpath
#import requests

host = '10.***.***.***'
port = '8500'
 
#consul中微服务名称
serviceNames='xxx-xxx-server';

def get_service():
    url = 'http://'+host+':'+port+'/v1/agent/services';
    jsonStr = urllib2.urlopen(url)
    data = json.load(jsonStr)
    print(data)   
    serviceArray=re.findall(r"'Service': '([a-zA-Z0-9-]+)'", str(data).replace("u'","'"))
    idArray=re.findall(r"'ID': '([a-zA-Z0-9-]+)'", str(data).replace("u'","'"))

    print(serviceArray)
    print(idArray)
    
    for i in range(len(serviceArray)):
      if serviceNames == serviceArray[i]:
          del_service(idArray[i])

def del_service(keys):
    url2 = 'http://'+host+':'+str(port)+'/v1/agent/service/deregister/'+keys  
    req=urllib2.Request(url2)
    req.get_method = lambda: 'PUT'
    ret = urllib2.urlopen(req).read()
 
if __name__ == '__main__':
     get_service()

基于python2.7开发,由于容器部署的服务每次部署IP会发生变化,因此每次动态获取已经存注册在consul上的ID,进行注销

创建一个Windows批处理脚本批量下线Consul服务可以按照以下步骤进行: 1. 首先确定Consul服务的安装路径,通常是`C:\Program Files\Consul`,如果你的Consul安装路径不同,请相应修改脚本中的路径。 2. 编写一个批处理脚本(例如:`consul_down.bat`),通过调用Consul的CLI命令行工具来实现下线服务。 以下是一个简单的批处理脚本示例: ```batch @echo off setlocal enabledelayedexpansion :: 设置Consul的安装路径 set CONSUL_PATH=C:\Program Files\Consul :: 设置要下线的服务名称 set SERVICE_NAME=your-service-name :: 进入Consul的bin目录 cd /d %CONSUL_PATH%\bin :: 循环遍历Consul的成员列表,并尝试下线服务 for /f "tokens=1,2,3,4 delims==" %%a in ('consul members ^| findstr "agent"') do ( set "MEMBER_NAME=%%a" set "MEMBER_ADDR=%%b" echo Found member: %MEMBER_NAME% at %MEMBER_ADDR% :: 尝试下线服务 echo !MEMBER_ADDR! | xargs -I {} powershell -Command "consul services deregister -service=%SERVICE_NAME% -address={} 2> nul" ) echo All done. pause ``` 3. 使用文本编辑器(如记事本)打开批处理脚本,并将其中的`your-service-name`替换为你实际想要下线的服务名称。 4. 保存批处理文件,并通过双击运行它。 注意事项: - 确保Consul服务已经在你的系统中运行,并且该批处理脚本有执行权限。 - 如果Consul客户端没有配置环境变量,需要根据实际情况修改`CONSUL_PATH`变量。 - 请在执行任何脚本之前,确保脚本中的命令和参数符合Consul的使用规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值