GlobalХаб задаёт сам
Строка подключает ещё один файл, и его содержимое читается так, будто написано прямо здесь. Задумано это для парка: общее держат в одном файле, различия между узлами — в отдельных, и каждый узел подключает своё.
Маски допустимы — одной строкой можно подтянуть каталог файлов.
Вместо пути можно указать адрес HTTP. Требования к нему жёсткие: абсолютный, со схемой http или https, без имени пользователя, строки запроса и якоря. Если нужны заголовки запроса — например, Authorization, — берут блок <include-config>.
Строка работает не только на уровне узла. Её же можно написать внутри <source>, <domain>, <virtual-mta> и <smtp-pattern-list> — там подключаемое становится частью соответствующего блока.
Файлов у узла два, и делит их не удобство, а совместимость. В /etc/pmta/config живут управление, приём жалоб и политики получателей; в /etc/pmta/virtualhost.txt — логины подачи, пул и адреса отправки. Раскладка общая с Protosender: те же имена блоков, то же деление, — поэтому узел, настроенный Хабом, подключается к модулю работы с PMTA в Protosender, и наоборот.
Оба файла Хаб собирает целиком и перезаписывает при каждом применении. Подключение, добавленное на узле руками, следующее применение сотрёт — это стоит помнить при разборе «куда делась моя строка».
Три формы значения — и третья требует решения, а не настройки:
| Значение | Когда | Что учесть |
|---|---|---|
| путь к файлу | обычный случай: общее и частное в разных файлах | права как на саму конфигурацию |
| маска | каталог файлов одной строкой | порядок чтения не оговорён |
| адрес HTTP | конфигурация раздаётся централизованно | источнику надо доверять, и он должен отвечать в момент перезагрузки |
Про HTTP отдельно. Файл тянется при чтении конфигурации, то есть при запуске и при каждой перезагрузке. Недоступный источник — это неудачная перезагрузка в тот момент, когда она нужнее всего.
# общее в одном файле, различия узлов — в отдельных include /etc/pmta/vmtas.txtinclude https://10.1.2.3:4000/my/config/file
что делают не так и чем это кончается3 ошибки▶
§ 3.3.1.53
наш опыт
§ 3.3.1.53
3 связи
include<source>Та же директива в корне файла; там она добавляет строки уровня узла. § 3.3.1.53include<domain>Та же директива в корне файла; там она добавляет строки уровня узла. § 3.3.10.104include<virtual-mta>Та же директива в корне файла; там она добавляет строки уровня узла. § 3.3.12.14include<smtp-pattern-list>Та же директива в корне файла; там она добавляет строки уровня узла. § 3.3.1.53http-extra-headers<include-config>Обычная форма подключения заголовков не поддерживает — ради них и существует блок. § 3.3.24
pmta test config grep -rn '^ *include ' /etc/pmta/
3 статьи
◇Как узел выбирает источник и складывает его настройкиСоединение попадает под все блоки источника, чьи адреса его накрывают, и действуют они слитно — узкий перекрывает широкий; именованные блоки подключаются только по прямой ссылке.◇Принять, направить, доставитьПуть письма внутри узла: принять, решить куда, доставить — и между этими тремя шагами живут все настройки.◇Кому разрешено сдавать почту и для кого её приниматьИз коробки узел принимает подачу только с самой машины; два разных вопроса — «кто может слать через нас» и «на чьи адреса мы принимаем» — решаются разными директивами.