Срипт для добавления PTR-записей по списку из файла в обратную DNS-зону FreeIPA
Разбирая строки из файла формата hosts, скрипт добавляет PTR-записи в соответствующие обратные зоны.
2021-01-25
Образец файла со списком узлов в формате hosts:
# cat ip.hosts
10.1.195.1 is01-airf01p.example.org
10.1.195.3 is01-app01p.example.org
10.1.195.4 is01-app02p.example.org
10.1.112.52 is02-app208p.example.org
10.1.112.53 is02-app209p.example.org
Скрипт для добавления PTR-записей в соответствующие обратные зоны:
add_dns_record.sh
#!/bin/bash
LIST="ip.hosts"
while read line; do
echo ""
echo $line # "10.1.195.1 is01-airf01p.example.org"
arr1=($line) # конвертируем переменную в массив из двух элементов
ip1=${arr1[0]} # "10.1.195.1"
IFS="." # разделитель пробел меняем на точку для bash substring
arr2=($ip1) # конвертируем ip-адрес в массив "10 15 195 1"
IFS=" " # возвращаем разделить
ZONE="${arr2[2]}.${arr2[1]}.${arr2[0]}.in-addr.arpa"
IPN=${arr2[3]}
NAME=${arr1[1]}"."
echo "$IPN $NAME"
echo "ipa dnsrecord-add $ZONE $IPN --ptr-rec $NAME"
ipa dnsrecord-add $ZONE $IP --ptr-rec $NAME
done < $LIST