【问题标题】:Python parsing tac_plus configuration filePython解析tac_plus配置文件
【发布时间】:2015-09-29 16:05:56
【问题描述】:

我正在尝试找到解析 tac_plus 配置文件的最佳方法。如果能够将其转换为 JSON 格式以便我可以将其存储在 NoSQL DB 中,那就太好了。

这是一个配置示例:

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
    }
}

【问题讨论】:

  • 您希望输出看起来如何?说mavis模块?

标签: python parsing configuration


【解决方案1】:

您可以将它作为 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。
猜你喜欢
  • 2012-08-31
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 2021-08-14
  • 2016-03-12
  • 2011-10-29
相关资源
最近更新 更多