diff --git a/pyanaconda/modules/network/installation.py b/pyanaconda/modules/network/installation.py index ee488fd14db..d6a4d14ff4e 100644 --- a/pyanaconda/modules/network/installation.py +++ b/pyanaconda/modules/network/installation.py @@ -18,6 +18,8 @@ import os import shutil +from pyanaconda.core import service +from pyanaconda.core.kernel import kernel_arguments from pyanaconda.core.path import make_directories, join_paths from pyanaconda.modules.common.errors.installation import NetworkInstallationError from pyanaconda.modules.common.task import Task @@ -115,6 +117,7 @@ class NetworkInstallationTask(Task): [Link] Name={} """.strip() + DNSCONFD_SERVICE = "dnsconfd" def __init__(self, sysroot, disable_ipv6, overwrite, network_ifaces, ifname_option_values, @@ -158,6 +161,7 @@ def run(self): if self._configure_persistent_device_names: self._copy_prefixdevname_files(self._sysroot) self._copy_global_dns_config(self._sysroot) + self._enable_dnsconfd(self._sysroot) def _write_sysconfig_network(self, root, overwrite): """Write empty /etc/sysconfig/network target system configuration file. @@ -295,6 +299,13 @@ def _copy_global_dns_config(self, root): if os.path.isfile(src): shutil.copy(src, dst) + def _enable_dnsconfd(self, root): + """Enable dnsconfd service if dnsconfd backend is used.""" + if kernel_arguments.get("rd.net.dns-backend") == "dnsconfd": + if not service.is_service_installed(self.DNSCONFD_SERVICE, root=root): + log.debug("The dnsconfd service is not installed.") + return + service.enable_service(self.DNSCONFD_SERVICE, root=root) class ConfigureActivationOnBootTask(Task): """Task for configuration of automatic activation of devices on boot"""