1 #coding:utf-8 2 #Author:Mr Zhi 3 """ 4 HAproxy配置文件操作: 5 6 1. 根据用户输入输出对应的backend下的server信息 7 8 2. 可添加backend 和sever信息 9 10 3. 可修改backend 和sever信息 11 12 4. 可删除backend 和sever信息 13 14 5. 操作配置文件前进行备份 15 16 6 添加server信息时,如果ip已经存在则修改;如果backend不存在则创建;若信息与已有信息重复则不操作 17 18 配置文件 参考 http://www.cnblogs.com/alex3714/articles/5717620.html 19 """ 20 import shutil 21 def Menu(): #定于关于菜单函数 22 menu = ( 23 """\033[35;1m 24 1.增加 25 2.删除 26 3.修改 27 4.查询 28 \033[0m""") 29 print(menu.strip('\n')) 30 31 def Backup_proxy(): #定于关于备份文件的函数 32 shutil.copyfile("HAproxy.conf","HAproxy.conf.bak") 33 34 def Add_haproxy(): #定义关于增加加数据的函数 35 domain = input('输入你要添加的域名:') 36 domain_ip = input("输入你要添加的ip:") 37 domain_weight = input("输入weight值:") 38 domain_maxconn = input("输入maxconn值:") 39 Backup_proxy() # 写入数据前执行备份文件的函数 40 with open("HAproxy.conf","a+",encoding="utf-8") as f: #打开文件追加模式 41 f_w = "backend %s\n\t\t server %s %s weight %s maxconn %s" % (domain,domain_ip,domain_ip,domain_weight,domain_maxconn) 42 f.write('\n' + f_w), f.flush() ##把数据写入文件 43 print("\033[36;1m添加成功!\033[0m") 44 45 def Alter_haproxy(): #定义关于修改数据的函数 46 domain_old1 = input("输入你要修改的域名:") 47 print(type(domain_old1)) 48 domain_new1 = input("输入新域名:") 49 ip_new1 = input("输入修改后的ip:") 50 weight_new1 = input("输入修改后的weight值:") 51 maxconn_new1 = input("输入修改后的maxconn值:") 52 with open("HAproxy.conf", "r", encoding="utf-8") as f: 53 lines = f.readlines() 54 num = lines.index("backend %s\n" %domain_old1) #赋值域名对应的列表索引号 55 lines[num] = "backend %s\n" %domain_new1 #根据索引号修改对应的backend 56 lines[num + 1] = "\t\tserver %s %s weight %s maxconn %s\n" % (ip_new1,ip_new1,weight_new1,maxconn_new1) #根据索引号修改对应的server 57 Backup_proxy() # 写入数据前执行备份文件的函数 58 with open("HAproxy.conf", "w", encoding="utf-8") as f_w: 59 for line in lines: 60 f_w.write(line) #把修改后的列表写入文件中 61 print("\033[32;1m修改成功!\033[0m") 62 63 def Search_haproxy(): #定义关于查看数据的函数 64 domain= input("输入你要查看的域名:") 65 with open("HAproxy.conf", "r", encoding="utf-8") as f: 66 lines = f.readlines() 67 num = lines.index("backend %s\n" %domain) #赋值域名对应的列表索引号 68 lines[num] = "backend %s\n" %domain #根据索引号修改对应的backend 69 print(lines[num],lines[num + 1]) 70 71 def Delete_haproxy(): #定义关于删除数据的函数 72 domain = input("输入你要删除的域名节点:") 73 with open("HAproxy.conf", "r", encoding="utf-8") as f: 74 lines = f.readlines() 75 num = lines.index("backend %s\n" %domain) #赋值域名对应的列表索引号 76 lines.pop(num) 77 lines.pop(num) #这里不用num + 1,因为上面已经删除了一个索引号 78 Backup_proxy() # 写入数据前执行备份文件的函数 79 with open("HAproxy.conf", "w", encoding="utf-8") as f_w: #打开文件 80 for line in lines: 81 f_w.write(line) 82 print("\033[37;1m删除成功!\033[0m") 83 84 while True: 85 Menu() 86 number = int(input("input number:")) 87 if number == 1: 88 Add_haproxy() 89 elif number == 2: 90 Delete_haproxy() 91 elif number == 3: 92 Alter_haproxy() 93 elif number == 4: 94 Search_haproxy() 95 else: 96 print("\033[31;1mInput is woring\033[0m") 97 continue
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句