2015-09-29 61 views
0

我試圖找到解析tac_plus的配置文件的最佳方法。如果能夠將其轉換爲JSON格式,以便可以將其存儲在NoSQL數據庫中,將會很好。Python解析tac_plus配置文件

以下是配置的一個示例:

id = spawnd { 
    listen = { 
     port = 49 
    } 
    spawn = { 
     instances min = 1 
     instances max = 10 
    } 
    background = yes 
} 

id = tac_plus { 
    access log = /var/log/tacacs/%Y/%m/%d/access.log 
    accounting log = /var/log/tacacs/%Y/%m/%d/acct.log 

    mavis module = external {  
     setenv LDAP_SERVER_TYPE = "microsoft" 
     setenv LDAP_HOSTS = "ads01:3268 ads02:3268" 
     setenv LDAP_SCOPE = sub 
     setenv LDAP_BASE = "dc=example,dc=com" 
     setenv LDAP_FILTER = "(&(objectclass=user)(sAMAccountName=%s))"; 
     setenv LDAP_USER = [email protected] 
     setenv LDAP_PASSWD = Secret123 
     setenv AD_GROUP_PREFIX = tacacs 
     setenv USE_TLS = 0 
     exec = /usr/local/lib/mavis/mavis_tacplus_ldap.pl 
    } 

    login backend = mavis 
    pap backend = mavis 

    host = world { 
     address = ::/0 
     welcome banner = "Welcome\n" 
     key = cisco 
    } 

    host = helpdesklab { 
     address = 192.168.34.16/28 
    } 
    group = admin { 
     default service = permit 
     service = shell { 
      default command = permit 
      default attribute = permit 
      set priv-lvl = 15 
     } 
    } 
    group = helpdesk { 
     default service = permit 
     service = shell { 
      default command = permit 
      default attribute = permit 
      set priv-lvl = 1 
     } 
     enable = deny "enter code here" 
     member = [email protected] 
    } 
} 
+0

你怎麼能指望的輸出看?說馬維斯模塊? –

回答

0

你可以把它保存爲一個文件中的JSON和剛剛從那裏加載它。

建立一個叫做conf.json文件:

{ 
    spawnd : { ... }, 
    tac_plus: { ... } 
} 

然後使用Python加載:

import json 

with open('conf.json') as rdr: 
    config = json.loads(rdr.read()) 

config['tac_plus'] 
+0

雖然好的建議我不認爲配置文件的格式是在他的控制之下......但我可能在這裏是完全錯誤的...... –

+0

該配置不在我的控制之下。我的目標是將所有這些信息存儲在MongoDB中,並且能夠將配置文件轉換爲JSON原因,目前使用的是我無法識別的另一種格式。 – ValentinS

+0

轉換應該雙向運行。從當前配置到JSON以及其他方式。 – ValentinS