В небольших инсталляциях виртуальной инфраструктуры VMware vSphere может оказаться оправданным сделать один из серверов VMware ESXi сервером NTP, чтобы с ним синхронизировали свое время другие хосты.
Интересно, что немногие знают о том, что NTP-клиент сервера VMware ESXi 5.x (NTP-демон /sbin/ntpd) работает по-умолчанию не только как клиент, но и отдает время по запросу другим серверам как NTP-сервер. Поэтому достаточно лишь указать адрес хоста ESXi в качестве целевого хоста для синхронизации времени - и все будет работать.
Загвоздка тут одна - по умолчанию фаервол сервера ESXi блокирует входящие NTP-запросы по протоколу UDP на порт 123. Чтобы это исправить, нужно добавить собственное правило в сетевой экран. К сожалению, в Firewall GUI этой возможности не предусмотрено, поэтому придется лезть в конфиг-файл.
Для начала выведем список всех активных правил фаервола ESXi командой:
esxcli network firewall ruleset list
Создаем файл ntpd.xml с конфигурацией сервиса NTP со следующим содержимым (подробнее о процессе - тут):
Далее кладем этот файл в папку на хосте ESXi /etc/vmware/firewall/ntpd.xml и выполняем команду:
esxcli network firewall refresh
После этого мы увидим новое правило в конфигурации сетевого экрана ESXi (в командной строке его можно проверить командой list, приведенной выше):
Однако, к сожалению, пользовательская конфигурация фаервола ESXi не сохраняется при перезагрузке хоста, о чем написано в KB 2007381. Поэтому можно просто положить ntpd.xml на общее хранилище и добавить в /etc/rc.local команду по копированию ntpd.xml в нужную папку хоста и комнду рефреша правил фаервола. Однако это ненадежно, поскольку зависит от доступности общего хранилища.
Поэтому, все-таки, лучше сделать это правило постоянным с помощью процедуры, описанной у Андреаса, заметка которого и стала основой этой статьи. Для этого нужно будет создать и установить VIB-пакет (как сделать это для любого случая описано в той же KB 2007381).
Ну а используя готовый пакет от Андреаса, можно установить созданный им VIB для добавления правила в фаервол для NTP-сервера: