novnc предназначен для возможности подключаться к узлам с графическим интерфейсом через браузер. Идея заключается в том, что на узлах с графическим интерфейсом запускается vnc-сервер (x11vnc), а долнительно к этому отдельно запускаются специальные docker-контейнеры с настроенным novnc-сервером. Для каждого графического узла, запускается свой контейнер с novnc.
Узлы для которых нужен запуск novnc определяются по наличию настройки novnc_port.
mynode3: { ip: 3, vnc_port: 5900, novnc_port: 6900 }
Т.е. для узла mynode3 будет дополнительно сгенерирован контейнер mynode3-novnc, который будет подключаться к vnc на mynode3.
Для того, чтобы можно было снаружи "виртуального стенда" обращаться к novnc, поднимается специальный контейнер с nginx. Для него генерируется конфигурация, обрабатывающая обращения вида:
http://[vstand]/vnc/[nodename]
Где
- [vstand] - это hostname или ip виртуального стенда доступный снаружи
- [nodename] - имя узла с графическим интерфейсом
При генерировании конфигурации hostname берётся из настроек системы. Подразумевается, что генерирование происходит на виртуальном стенде. Если хочется определить вручную hostname, то можно задать переменную окружения VSTAND_HOSTNAME.
см. так же nginx