当前位置: 首页>>代码示例>>Python>>正文


Python Augeas.find_entries方法代码示例

本文整理汇总了Python中augeas.Augeas.find_entries方法的典型用法代码示例。如果您正苦于以下问题:Python Augeas.find_entries方法的具体用法?Python Augeas.find_entries怎么用?Python Augeas.find_entries使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在augeas.Augeas的用法示例。


在下文中一共展示了Augeas.find_entries方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: install_mail_server

# 需要导入模块: from augeas import Augeas [as 别名]
# 或者: from augeas.Augeas import find_entries [as 别名]
def install_mail_server(args):
    """
    Installs a postfix-based mail relay MTA that listens on the DMZ, and relays
    towards the internet. Also possible to send from localhost. Also installs mailx.

    """
    version_obj = version.Version("Install-postfix-server", SCRIPT_VERSION)
    version_obj.check_executed()
    app.print_verbose("Installing postfix-server version: {0}".format(SCRIPT_VERSION))

    init_properties = PostFixProperties()

    # Install required packages
    x("yum install -y postfix augeas")

    #Initialize augeas
    augeas = Augeas(x)

    # Set config file parameters
    #
    general.use_original_file("/etc/postfix/main.cf")
    postfix_main_cf = scopen.scOpen("/etc/postfix/main.cf")

    # Hostname is full canonical name of machine.
    postfix_main_cf.replace("#myhostname = host.domain.tld", "myhostname = {0}".format(config.general.get_mail_relay_domain_name())) # mailrelay.syco.com
    postfix_main_cf.replace("#mydomain = domain.tld", "mydomain = {0}".format(config.general.get_resolv_domain())) # syco.com
    postfix_main_cf.replace("#myorigin = $mydomain", "myorigin = $myhostname")

    # Accept email from all IP addresses for this server
    augeas.set_enhanced("/files/etc/postfix/main.cf/inet_interfaces", ",".join(init_properties.server_ips))

    #Allow networks
    augeas.set_enhanced("/files/etc/postfix/main.cf/mynetworks", ",".join(init_properties.server_networks))

    # Do not relay anywhere special, i.e straight to internet.
    postfix_main_cf.replace("#relay_domains = $mydestination", "relay_domains =")
    postfix_main_cf.replace("#home_mailbox = Maildir/", "home_mailbox = Maildir/")

    # Stop warning about IPv6.
    postfix_main_cf.replace("inet_protocols = all", "inet_protocols = ipv4")

    #Set virtual_alias_maps and virtual_alias_domains in main.cf
    augeas.set("/files/etc/postfix/main.cf/virtual_alias_maps", "hash:/etc/postfix/virtual")

    if init_properties.virtual_alias_domains:
        augeas.set("/files/etc/postfix/main.cf/virtual_alias_domains", init_properties.virtual_alias_domains)

    #Add virtual aliases if they do not already exist
    for virt_alias_from, virt_alias_to in init_properties.virtual_aliases.iteritems():
        existing = augeas.find_entries("/files/etc/postfix/virtual/pattern[. = '%s']" % virt_alias_from)
        if len(existing) == 0:
            x("echo \"%s %s\" >> /etc/postfix/virtual" % (virt_alias_from, virt_alias_to))
        else:
            augeas.set_enhanced("/files/etc/postfix/virtual/pattern[. = '%s']/destination" % virt_alias_from,
                                virt_alias_to)

    if len(init_properties.virtual_aliases) > 0:
        x("postmap /etc/postfix/virtual")
    # Install a simple mail CLI-tool
    install_mailx()

    # Tell iptables and nrpe that this server is configured as a mail-relay server.
    iptables.add_mail_relay_chain()
    iptables.save()

    x("service postfix restart")

    # Send test mail to the syco admin
    # and to any virtual alias emails
    send_test_mail((None, config.general.get_admin_email()),
                   init_properties.virtual_aliases.keys())
开发者ID:Nemie,项目名称:syco,代码行数:73,代码来源:installPostfix.py


注:本文中的augeas.Augeas.find_entries方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。