修改haproxy配置文件


HAproxy配置文件操作:

1. 根據用戶輸入輸出對應的backend下的server信息

2. 可添加backend 和sever信息

3. 可修改backend 和sever信息

4. 可刪除backend 和sever信息

5. 操作配置文件前進行備份

6 添加server信息時,如果ip已經存在則修改;如果backend不存在則創建;若信息與已有信息重復則不操作

配置文件 參考 http://www.cnblogs.com/alex3714/articles/5717620.html

配置文件如下:

global
log 127.0.0.1 local2
daemon
maxconn 256
log 127.0.0.1 local2 info
defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option dontlognull

listen stats :8888
stats enable
stats uri /admin
stats auth admin:1234

frontend oldboy.org
bind 0.0.0.0:80
option httplog
option httpclose
option forwardfor
log global
acl www hdr_reg(host) -i www.oldboy.org
use_backend www.oldboy.org if www

backend www.oldboy.org
server 100.1.7.9 weight 20 maxconn 3000


代碼如下:
f = open("haproxy","r",encoding="gbk")
f_new = open("haproxy_new","w",encoding="gbk")
#將文件內容轉換為一個列表,並定義一個變量。
b = f.readlines()
#定義三個選項:
option = ("1、請輸入搜索的地址:","2、請輸入增加的內容:","3、請輸入刪除的內容:")
#打印三個選項:
for i in option:
    print(i)
choice = input("請選擇操作方式:序列號>>>")
#如果選擇1,則進入查找選項。
if choice == "1" :
    data = input("請輸入搜索地址:")
    #利用字符串拼接,定義一個變量,-----backend所在的行。
    address = "backend %s\n"%data
    if address in b:
        #利用列表的下標來定位位置,然后通過下標打印內容。
        index_add = b.index(address)
        print(b[index_add],b[index_add+1])
    if address not in b:
        print("您查找的內容不存在")
#如果選擇2,則進入增加內容選項:
if choice =="2":
    data = input("輸入增加內容:")
    data_eval = eval(data)
    #通過列表計數器來判斷輸入的內容是否在列表中存在,如果計數器為0則不存在,如果計數器不為0則存在。
    #不存在則添加,存在則不添加。
    f_find = b.count("backend %s\n"%data_eval["backend"])
    #如果backend后的內容在文件中不能找到則新增。
    if f_find == 0:
        for line in b:
            f_new.write(line)
       #  for f_line2 in f:
       # #將輸入的內容通過字符串拼接的形式寫入文件中
        f_new.write("\nbackend  ")
        f_new.write(data_eval["backend"])
        f_new.write("\n        server %s weight %s maxconn %s"\
                    %(data_eval["record"]["server"],data_eval["record"]["weight"]\
                    ,data_eval["record"]["maxconn"]))
    #如果backend后的內容在文件中能找到則不執行任何操作。
    if f_find != 0:
        print("您添加的內容已經存在")
#如果選擇3,則進入刪除內容選項:
if choice == "3":
    data = input("輸入刪除內容:")
    data_eval = eval(data)
    #通過列表計數器來判斷輸入的內容是否在列表中存在,如果計數器為0則不存在,如果計數器不為0則存在。
    #不存在則添加,存在則不添加。
    f_find = b.count("backend %s\n"%data_eval["backend"])
    #如果backend后的內容在文件中不能找到則新增。
    if f_find != 0:
            b_index=b.index("backend www.oldboy.org\n")
            b.pop(b_index)
            b.pop(b_index)
            for line in b:
                f_new.write(line)
    #如果backend后的內容在文件中不能找到則不執行任何操作。
    if f_find == 0:
        print("您輸入的內容文件中不存在")
f.close()
f_new.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM