2017-04-17 149 views
0

這裏是python的新手。我需要將後端和前端服務器添加到haproxy.cfg文件,並通過python腳本進行優雅重新加載。你們中的一些人能否指出我正確的方向?如果您在代碼中包含註釋,它將極大地幫助我更快地理解。解析配置文件的Python腳本

下面是我想在發送到CFG的樣品塊,可能基於的raw_input([參數])

frontend fe:some_fe:bind:yyyy 
     mode tcp 
     bind x.x.x.x:yyyy name some_name 
     use_backend be:some_be:x.x.x.x:yyyy 

backend be:some_be:x.x.x.x:yyyy 
mode http 
     balance roundrobin 
     server x.x.x.x:yyyy check port yyyy 
     server x.x.x.x:yyyy check port yyyy 

一些註釋 - X.X.X.X表示一個ip和YYYY的端口。

請幫忙!提前謝謝了。

+0

您可以參考[pyhaproxy](https://github.com/imjoey/pyhaproxy)庫,它可以解析haproxy配置文件並在一些更改後回寫。 – iterjpnic

回答

0

閱讀的Python»3.6.1文檔6.1.4. Template strings

編輯你的問題。因此,如與FE some_fe_:更換_fe $ {} some_fe

閱讀的Python»3.6.1文檔argparse.html#module-argparse

編輯你的問題,追加要使用命令行和你的​​代碼工作用。

+0

非常感謝@stovfl。這應該工作,但我想知道如果我可以varibalise這一點多一點。對於一個實例「fe」作爲變量和,因爲它的值正在傳遞?進一步的字符串格式(空格,製表符等)應該看起來像這樣。如果您有任何解決方案嘗試後都因爲我是一個學習者:) 'code'frontend FE::綁定: 模式TCP 綁定 use_backend是: '代碼' – bindo

+0

謝謝。我正在尋找一種更快的方式來理解,但我猜我必須閱讀文檔並自己弄清楚。我會做,謝謝。 – bindo

+0

@ bindo:你錯了,我爲你解決問題。您必須閱讀文檔以確認這是您想要的。 – stovfl