Нужна помощь с bind-chroot
Мы используем нижеуказанные версии bind и bind-chroot
привязать-9.11.2-lp151.10.1.x86_64
привязать-chrootenv-9.11.2-lp151.10.1.x86_64
Наш код автоматизации работает для добавления файлов зоны только в /var/lib/named/etc/named.conf, а не в /etc/named.conf.
Поэтому, чтобы отразить файлы зоны, созданные в /var/lib/named/etc/named.conf, в /etc/named.conf, я создал символическую ссылку в /etc как "ln -s /var/lib/named/etc/named.conf named.conf", чтобы отразить, как показано ниже lrwxrwxrwx 1 root root 29 дек 9 11:03 named.conf -> /var/lib/named/etc/named.conf
Теперь, когда я вношу изменения в файл в /var/lib/named/etc/named.conf и выполняю «service named restart», файл в /etc/named.conf не загружается
Сообщения об ошибках в /var/log/messages, как показано ниже
2021-12-09T11:04:46.684677+05:30 lavasadns1 systemd[1]: Stopped Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.685049+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:04:46.735359+05:30 lavasadns1 named.init[2509]: Starting name server BIND cp: cannot stat '/etc/named.conf': No such file or directory 2021-12-09T11:04:46.844546+05:30 lavasadns1 named.init[2509]: open: /etc/named.conf: file not found 2021-12-09T11:04:46.847806+05:30 lavasadns1 systemd[1]: named.service: Control process exited, code=exited status=6 2021-12-09T11:04:46.848137+05:30 lavasadns1 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.848475+05:30 lavasadns1 systemd[1]: named.service: Unit entered failed state. 2021-12-09T11:04:46.848772+05:30 lavasadns1 systemd[1]: named.service: Failed with result 'exit-code'. 2021-12-09T11:05:31.657460+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:05:31.666976+05:30 lavasadns1 named.init[2573]: Name server configuration file /etc/named.conf does not exist.
и символическая ссылка меняет цвет на красный. Почему это происходит? И как избежать этой ошибки
решение1
Запуск bind
/ named
запуск /usr/sbin/named.init
.
Там есть функция, которая называется checkAndCopyConfigFiles
.
Там есть линияrm -f ${CHROOT_PREFIX}/${configfile}
Вы создали символическую ссылку с /etc/named.conf
на /var/lib/named/etc/named.conf
, теперь при запуске этого скрипта он удаляется /var/lib/named/etc/named.conf
.
Итак, скрипт удалил /var/lib/named/etc/named.conf
и попытался скопировать конечную точку символической ссылки, /etc/named.conf
которая больше не существует, поскольку он ее уже удалил.
Это приводит к появлению висячей символической ссылки и, следовательно, к превращению red
.
Ваше творение named.conf
больше не существует.
Если вы можете вернуть его, у вас есть 3 варианта.
- Пусть ваш код изменит
/etc/named.conf
и любые другие файлы внутри,/etc/
а не внутри/var/lib/named/etc
. - Отредактируйте
/usr/sbin/named.init
и создайте свой собственный сценарий, который справится с такой ситуацией. - Удалите
bind-chrootenv
и создайте свой собственный скрипт запуска.