Importar arquivos de configuração no haproxy.cfg

3

Tenho quase 200 linhas de configurações de ACL em haprox.cfg e também contém 150 backends. Para remover essa complexidade de configuração, quero agrupar essa configuração em arquivos separados e importar esses arquivos em haprox.cfg . Isso é possível no haproxy?

    
por user364875 12.07.2016 / 07:01

2 respostas

8

Até onde eu sei, o HAproxy não tem nada parecido com o Include & IncludeOptional diretivas.

Não há suporte nativo para vários arquivos de configuração além de iniciar o HAproxy com opções de linha de comando -f <config-file> repetidas. veja este tópico .

Você pode criar scripts para mesclar várias subseções em um arquivo maior similar a esta abordagem Eu provavelmente seguiria a rota e modificaria o script de inicialização para anexar arquivos de configuração adicionais automaticamente (não testado) :

# 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
}
    
por 12.07.2016 / 07:28
0

Você pode seguir este passo simples.

  1. Inserir um script de linha ( cat /etc/$BASENAME/conf.d/*.cfg > $CFG ) em /etc/init.d/haproxy
    Aqui está a posição onde você deve inserir a linha
    CFG=/etc/$BASENAME/$BASENAME.cfg cat /etc/$BASENAME/conf.d/*.cfg > $CFG [ -f $CFG ] || exit 1
  2. Recarregar configuração do daemon com systemctl daemon-reload
  3. Criar diretório mkdir /etc/haproxy/conf.d
  4. Mova o arquivo haproxy.cfg padrão para conf.d como global.cfg mv /etc/haproxy/haproxy.cfg /etc/haproxy/conf.d/global.cfg
  5. Crie seu outro arquivo .cfg no diretório conf.d
  6. Basta reiniciar o serviço haproxy systemctl restart haproxy
  7. NOTA: /etc/haproxy/haproxy.cfg será criado automaticamente a partir de todos os arquivos em conf.d /
por 16.07.2018 / 14:16

Tags