Amavis On CentOSl Help

Home » CentOS » Amavis On CentOSl Help
CentOS 2 Comments

I’m moving from Ubuntu to CentOS 7

Previously, on Ubuntu, installing amavisd would lead to etc/amavis/conf.d that contained:
01-debian
05-domain_id
05-node_id
15-av_scanners
15-content_filter_mode
20-debian_defaults
21-ubuntu_defaults
25-amavis_helpers
30-template_localization
40-policy_banks
50-user

However installing amavisd on CentOS leads to a spaghetti config file
(i.e. /etc/amavisd/amavisd.conf and nothing else)

For obvious reasons I want to avoid spaghetti config, not only is it poor practice, but also nigh on impossible to maintain properly without breaking stuff.

Assuming it is possible, how would I go about changing the CentOS
“dump” based config into a more sensible one where local site customisations are clearly deliniated ?

2 thoughts on - Amavis On CentOSl Help

  • I’m forwarding the answer from my colleague:

    release notes:

    – provide two new subroutines available for calling from config files:
    include_config_files() and include_optional_config_files(), each take
    a list of filenames as arguments, and reads & evaluates them just like
    normal configuration files specified on a command line (option -c
    or a default amavisd.conf). This provides a simplified and uniform
    mechanism for ‘including’ additional configuration files, which formerly
    could be invoked through a perl do() function. The only difference
    between include_config_files and include_optional_config_files is that
    the former aborts if some specified file does not exist, while the later
    silently ignores specified but missing files. Both/each subroutine
    may be called multiple times, recursion is allowed (but some sanity
    limit to recursion is provided); based on a suggestion by Gary V.

    Example line in amavisd.conf:
    include_config_files(‘/etc/amavisd-custom.conf’);

    … or, uncomment the Debian/Ubuntu specific call to find_config_files in amavisd:

    # default location of the config file if none specified if (!@config_files) {
    @config_files = ( ‘/etc/amavisd.conf’ );
    # # Debian/Ubuntu specific:
    # @config_files Amavis::Util::find_config_files(‘/usr/share/amavis/conf.d’,
    # ‘/etc/amavis/conf.d’);
    }

    Cheers, Barbara

  • Hi Barbara,

    Thank you for that, very useful.

    So, if I’m not mistaken, it sounds like the underlying suggestion is that I could just delete /etc/amavisd/amavisd.conf and replace it with a the contents of /etc/amavis/conf.d/ from elsewhere.

    Tim