Python解析tac_plus配置文件
我正在试图找到解析tac_plus配置文件的最佳方法。最好能够将其转换为JSON格式,以便将其存储在NoSQL数据库中 以下是配置示例:Python解析tac_plus配置文件,python,parsing,configuration,Python,Parsing,Configuration,我正在试图找到解析tac_plus配置文件的最佳方法。最好能够将其转换为JSON格式,以便将其存储在NoSQL数据库中 以下是配置示例: id = spawnd { listen = { port = 49 } spawn = { instances min = 1 instances max = 10 } background = yes } id = tac_plus { access log
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 = tacacs@example.com
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 = admin@helpdesklab
}
}
您可以将它作为JSON存储在一个文件中,然后从那里加载它 创建一个名为conf.json的文件:
{
spawnd : { ... },
tac_plus: { ... }
}
然后使用python加载它:
import json
with open('conf.json') as rdr:
config = json.loads(rdr.read())
config['tac_plus']
虽然这是一个很好的建议,但我认为配置文件的格式不在他的控制之下。。。但我可能完全错了…配置不在我的控制之下。我的目标是将所有这些信息存储在MongoDB中,并能够将配置文件转换为JSON,因为目前使用的是一种我无法识别的不同格式。转换应该是双向的。从当前配置到JSON,反之亦然。因此,配置听起来确实在您的控制之下。只需将配置格式化为python字典,然后就可以将其加载/转储到JSON或从JSON中加载/转储。您希望输出的外观如何?比如说mavis模块?