![]() |
Парсинг конфигов BIND
Имеется DNS на BIND, возникла нужность перетянуть то что в нем осталось в виндовый DNS, и, разумеется, делать этого руками сильно не хочется.
Конфиги имеют примерно такой вид
Код:
$TTL 300 зона = имя файла (в данном конкретном случае dmn12.loc) Хотелось бы это как-то распарсить для скармливания в Add-DnsServerResourceRecord, ну или может какие-то другие варианты есть. з.ы. TTL можно игнорировать, оставил только для того чтобы было видно как оно на самом деле есть в файле. |
|
alpap, это то что в одном из конфигов, в файле зоны. Вывод dig тоже могу показать, но это мало что даст, кмк. Подобных файлов порядочное количество для ручного перекапывания. Ну и есть несколько файлов побольше но выглядят +- так же.
Насчет установки BIND на десятку вообще не понял. Зачем? От BIND есть желание избавиться, для этого те записи которые на нем остались нужно перетащить в виндовый DNS. |
Всё перепарсить в json. Видел разные скриптовые парсеры под node.js, python, есть какой-то zone2json. В ps уже можно энумерировать json-объект в зависимости от формата.
|
zone2json - вариант, получается весьма себе стройный json, с этим уже можно работать. Спасибо. Пока буду пробовать в эту сторону.
На всякий случай для интересующихся zone2json есть в пакете pdns-server (pdns для rhel). |
Можно виндовый сервер просто сделать вторичным, и он сам всё перетянет (только его IP надо в BIND указать как доверенный), а потом поднять его до первичного.
|
DJ Mogarych, можно было бы, но есть несколько "но", которые не очень позволяют так сделать. Да и скрипт в целом в общем уже готов...
Остались вопросы по поводу SOA и NS записей, вижу где они редактируются в GUI, но не нашел либо правильных командлетов, либо нужных для этого ключей. Однако если даже это останется нерешенным - подправлю руками, тем более что там все равно были бы замены относительно того что прописано в файлах зон BIND. Как я говорил ранее посредством zone2json были получены вполне вменяемые json, исходя из них получилось что-то вот такое: Код:
$jsonzones = Get-ChildItem ./zones/*.json |
через WMI можно
|
Для SOA написал свой лисапед. Т.к. штука не так часто нужная особо не изощрялся, но если кому понадобится, то для повторного использования сойдет.
|
Время: 13:37. |
Время: 13:37.
© OSzone.net 2001-