Как поместить зоны DNS в Windows Server 2012R2 под контроль версий git

В настоящее время мы используем Windows Server 2012 R2 в качестве нашего DNS-сервера. Я хочу поставить все файлы зоны под контроль версий. Я нашел этот вопрос, который показывает, как экспортировать зоны через PowerShell. Но, похоже, он не экспортирует его таким образом, чтобы я мог повторно импортировать его позже.

Я также читал о команде DnsCmd, но она устарела.

Итак: Как мне экспортировать зоны, хранящиеся в Active Directory, в текстовые файлы, чтобы я мог поместить их в git / контроль версий, и ( important ), что я могу позже повторно импортировать старую версию, если это необходимо?

4
задан 13 April 2017 в 15:14
2 ответа

Один Одна из проблем, с которыми вы здесь столкнетесь, заключается в том, что зона Active Directory - это гораздо больше, чем просто обычный файл зоны, как вы могли бы ожидать с bind . Я имею в виду, что да, это нормальная зона, но в ней также есть встроенные разрешения, которые невозможно скопировать в текстовом формате.

(Я полагаю, вы ищете что-то в простой текст из-за упоминания git, и я предполагаю, что вы хотите различать зону AD в разное время)

Но если вы твердо настроены сделать это, способ экспорта файла зоны использует Export-DnsServerZone

Export-DnsServerZone -Name ad.example.com -FileName ad.example.com.zone

Теперь в документации указано , что вы можно указать путь к файлу для -FileName , но в моем тестировании я действительно не смог этого сделать. Это означает, что этот файл окажется в % WinDir% \ System32 \ dns . Вы захотите взять его оттуда, переместить в репозиторий git и зафиксировать.

Однако вернуть файл зоны, когда вы хотите его восстановить, не совсем то же самое. Похоже, для этого нет хорошей оболочки PowerShell (вероятно, потому, что Microsoft не хочет, чтобы вы делали это со встроенной зоной AD):

dnscmd / ZoneAdd ad.example.com / Primary / File ad.example.com. zone / load

Обратите внимание, что при выполнении этого восстановления вы потеряете все разрешения в зоне, но у вас будут необработанные данные, и вы сможете сравнить их в git.

4
ответ дан 3 December 2019 в 03:28

Вы используете интегрированную зону Active Directory? Это не элегантно, но вы можете добавить вторичный DNS-сервер для вашей зоны, и тогда у вас будет доступ к текстовому файлу ZONE

.
0
ответ дан 3 December 2019 в 03:28

Теги

Похожие вопросы