Import configuration files in haproxy.cfg

haproxy

I have almost 200 lines of ACL configurations in haprox.cfg and also contains 150 backends.
To remove this configuration complexity, I want to bundle this configuration in separate files and will import those files in haprox.cfg.
Is this possible in haproxy?

Best Answer

As far as I know HAproxy does not have anything similar to apache's Include & IncludeOptional directives.

There is no native support for multiple configuration files other than starting HAproxy with repeated -f <config-file> command line switches. see this thread.

You can script something though to merge multiple subsections into a larger file similar to this approach although I would probably go the route and modify the init script to append additional configuration files automatically (untested):

# Load additional configuration snippets from /etc/haproxy.d/*.cfg
OPTIONS=""
for file in /etc/haproxy.d/*.cfg ; do test -f $file && OPTIONS="$OPTIONS -f $file" ; done

start() {
  /usr/sbin/$BASENAME -c -q -f /etc/$BASENAME/$BASENAME.cfg $OPTIONS
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with '$BASENAME check'."
    return 1
  fi

  echo -n "Starting $BASENAME: "
  daemon /usr/sbin/$BASENAME -D -f /etc/$BASENAME/$BASENAME.cfg $OPTIONS -p /var/run/$BASENAME.pid
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$BASENAME
  return $RETVAL
}