У нас есть стандартная установка высокой доступности на объекте совместного размещения, на котором мы размещаем клиентские программы. Для некоторых программ мы размещаем DNS, но я считаю, что настройка нескольких зон вручную может быть утомительной и подверженной ошибкам. Есть ли простой способ настроить стандартный шаблон файла зоны и как запустить sed, awk или другую программу для обработки набора переменных из другого файла и объединения их с шаблоном для создания файла зоны?
Я думал об использовании m4, но я не очень разбираюсь в этом, и он кажется идеальным только для объединения одного шаблона за раз.
В идеале я бы хотел взять стандартный шаблон файла зоны и объединить его со списком вроде этого:
domain1 = ip1
domain2 = ip2
domain3 = ip1
domain4 = ip1
и т.д...
Есть ли способ написать это по сценарию?
Я думаю, что m4 будет излишним. Моим первым побуждением было бы bash + sed, но если вы хоть немного знакомы с языком более высокого уровня, это может быть проще. Я могу представить себе что-то вроде этого:
Файл данных:
example.com:192.168.10.1 fake.com:192.168.10.2 foo.com:192.168.10.3 bar.com:192.168.10.4
Сценарий:
#!/bin/bash
DATAFILE=datafile
TEMPLATE=template.txt
for data in $(cat $DATAFILE)
do
dom=${data%:*}
ip=${data#*:}
sed "{ s/DOMAIN/$dom/;
s/IPADDR/$ip/;
}" $TEMPLATE > $dom.zone
done
И ваш файл зоны шаблона будет иметь "ДОМЕН" или "IPADDR", где это необходимо.
Это полностью не проверено и перед использованием следует доработать.