VTC для Varnish включает - переопределить бэкэнд {} -

В настоящее время я пытаюсь добавить несколько unitests в мой растущий файл конфигурации лака.

мне удалось инициализировать его, и я думаю, что я получил основы varnishtest а также vtc формат.

мне нужно загрузить мой varnish.vcl - внутри есть несколько бэкэндов. который имеет .host для некоторых внутренних хостов они не могут быть разрешены с компьютера CI.

как я могу переопределить бэкэнд?

моя идея в основном похожа на: (api01 определен в varnish.vcl с внутренним днс.)

varnish v1 -vcl {
  # …some vcl to define backends… #
  include "${pwd}/varnish.vcl";
  backend api01 { .host = "127.0.0.1"; } 
} 
varnish v1 -start

это терпит неудачу - это Backend host '"api_loadbalancer"' could not be resolved to an IP address

но он не продолжает определять бэкэнд выше (с 127.0.0.1) - выполнение бэкенда перед включением приводит к ошибке переопределения.

Как правильно издеваться над бэкэндом?

1 ответ

Решение

Мы разделили наш код VCL на несколько файлов, а затем "включили" их все в "main.vcl", который затем используем для запуска Varnish. Вот упрощенная примерная структура:

main.vcl
-- backends.vcl
-- directors.vcl
-- mainLogic.vcl

Это позволяет вам включать только некоторые vcl-файлы в ваш тестовый сценарий и позволяет указывать бэкэнды. Например, если вы хотите использовать настоящий бэкэнд:

varnish v1 -vcl {
  backend api01 { .host = "127.0.0.1"; } 
  include "${pwd}/mainLogic.vcl";
} 

или если вы хотите издеваться над бэкэндами (что мы делаем):

varnish v1 -vcl {
  backend api01 { 
    .host = "${s1_addr}";
    .port = "${s1_port}"; 
  } 
  include "${pwd}/mainLogic.vcl";
}
Другие вопросы по тегам