Работа с samba_dnsupdate
Скрипт samba_dnsupdate (полный путь к скрипту после установки пакета inno-samba: /app/inno-samba/sbin/samba_dnsupdate) отвечает за проверку и изменение записей DNS. Он автоматически запускается на контроллере домена при старте процесса samba и далее выполняется каждые 10 минут.
В процессе работы скрипт использует текстовый файл dns_update_list, располагающийся в подкаталоге /app/inno-samba/private. В файле перечисляются записи, которые могут быть в DNS для данного контроллера домена.
Скрипт приводит состав записей в DNS в соответствие с содержимым файла, добавляя новые записи, удаляя неактуальные и внося необходимые изменения в существующие записи.
Скрипт имеет ряд параметров, позволяющих управлять его работой.
Для изменения набора параметров, используемых при автоматическом запуске скрипта, может использоваться конфигурационный параметр dns update command в разделе [global] файла smb.conf:
[global] dns update command = /app/inno-samba/sbin/samba_dnsupdate [options]
Формат вызова
Общий формат вызова скрипта:
samba_dnsupdate [options]
По умолчанию скрипт вызывает утилиту nsupdate и работает под машинной учетной записью контроллера домена, на котором он выполняется.
Для работы со скриптом в терминале требуются права суперпользователя.
Параметры
Параметры вызова:
-
--all-interfaces— выполнять проверку для всех сетевых интерфейсов, указанных в конфигурации контроллера домена (значение параметраinterfacesв smb.conf); -
--all-names— принудительное обновление записей в DNS (во избежание дублирования записей перед вставкой выполняется проверка существования записи); -
--check-only— выполнять только проверку наличия в службе DNS записей, отражающих текущее состояние контроллера домена, без внесения каких-либо изменений;Параметр полностью отключает всю функциональность скрипта samba_dnsupdateпо изменению записей в DNS. Таким образом, при его использовании любые другие параметры, предусматривающие внесение изменений, игнорируются. -
--current-ip— использовать указанный IP-адрес в качестве адреса проверяемого контроллера домена;Допускается указывать несколько IP-адресов через запятую в значении одного параметра --current-ipлибо передавать несколько параметров--current-ipс разными значениями. -
--fail-immediately— прекратить выполнение скрипта при первой ошибке; -
--no-credentials— пропустить шаг запроса данных для аутентификации Kerberos с использованием машинной учетной записи контроллера домена; -
--no-substitutions— не выполнять подстановки в файле, указанном в параметре--update-list; -
--rpc-server-ip— IP-адрес сервера для использования при работе сsamba-tool(при отсутствии значения по умолчанию используется первый IP-адрес, указанный в параметре--current-ip); -
--update-cache— при проверке и обновлении записей использовать указанный кэш вместо /app/inno-samba/private/dns_update_cache; -
--update-list— при проверке и обновлении записей использовать указанный файл вместо /app/inno-samba/private/dns_update_list; -
--use-file— считывать DNS-записи из указанного файла и проверять текущее состояние контроллера домена по ним, а не по фактически существующим записям, полученным из DNS (может использоваться для тестирования и отладки различных конфигураций); -
--use-nsupdate— использовать утилитуnsupdateдля внесения изменений в DNS (по умолчанию при условии успешного прохождения аутентификации Kerberos с использованием машинной учетной записи контроллера домена); -
--use-samba-tool— использовать утилитуsamba-toolдля внесения изменений посредством RPC-вызовов (по умолчанию в случае невозможности использоватьnsupdateиз-за непрохождения аутентификации Kerberos); -
--verbose— выводить подробное описание выполняемых скриптом операций в stdout.
Примеры
Пример запуска скрипта в терминале для обновления записей DNS для текущего контроллера домена с выводом подробной информации:
sudo /app/inno-samba/sbin/samba_dnsupdate \
--verbose \
--all-names
Пример запуска скрипта только для проверки наличия записей DNS для нескольких контроллеров домена без внесения каких-либо изменений:
sudo /app/inno-samba/sbin/samba_dnsupdate \
--verbose \
--check-only \
--ip-current=<dc1-ip>,<dc2-ip>
Пример запуска скрипта с указанием на необходимость использования утилиты samba-tool и файла со списком записей, требующих проверки и обновления:
sudo /app/inno-samba/sbin/samba_dnsupdate \
--use-samba-tool \
--update-list /tmp/custom_dns_update_list
Пример добавления команды автоматического запуска скрипта с параметром в файл smb.conf:
[global]
[...]
dns update command = /app/inno-samba/sbin/samba_dnsupdate --use-samba-tool