summaryrefslogtreecommitdiffstats
path: root/ipaplatform
diff options
context:
space:
mode:
authorTomas Krizek <tkrizek@redhat.com>2017-03-07 13:54:41 +0100
committerTomas Krizek <tkrizek@redhat.com>2017-03-09 16:50:21 +0100
commitecb450308d0a49afffb31dda1e405ad40552e70e (patch)
treec33c142792c146a07e00ab6fcd0d0bea85ced876 /ipaplatform
parent381c1c7a8fe63526d21cb65decb75fb5ffda676a (diff)
downloadfreeipa-ecb450308d0a49afffb31dda1e405ad40552e70e.tar.gz
freeipa-ecb450308d0a49afffb31dda1e405ad40552e70e.tar.xz
freeipa-ecb450308d0a49afffb31dda1e405ad40552e70e.zip
server install: require IPv6 stack to be enabled
Add checks to install and replica install to verify IPv6 stack is enabled. IPv6 is required by some IPA parts (AD, conncheck, ...). https://pagure.io/freeipa/issue/6608 Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Diffstat (limited to 'ipaplatform')
-rw-r--r--ipaplatform/base/paths.py1
-rw-r--r--ipaplatform/base/tasks.py5
-rw-r--r--ipaplatform/redhat/tasks.py14
3 files changed, 20 insertions, 0 deletions
diff --git a/ipaplatform/base/paths.py b/ipaplatform/base/paths.py
index de4ea23d3..f74dfa1ad 100644
--- a/ipaplatform/base/paths.py
+++ b/ipaplatform/base/paths.py
@@ -353,5 +353,6 @@ class BasePathNamespace(object):
EXTERNAL_SCHEMA_DIR = '/usr/share/ipa/schema.d'
GSSPROXY_CONF = '/etc/gssproxy/10-ipa.conf'
KRB5CC_HTTPD = '/tmp/krb5cc-httpd'
+ IF_INET6 = '/proc/net/if_inet6'
path_namespace = BasePathNamespace
diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py
index 5806e7504..9f91fef2b 100644
--- a/ipaplatform/base/tasks.py
+++ b/ipaplatform/base/tasks.py
@@ -103,6 +103,11 @@ class BaseTaskNamespace(object):
raise NotImplementedError()
+ def check_ipv6_stack_enabled(self):
+ """Check whether IPv6 kernel module is loaded"""
+
+ raise NotImplementedError()
+
def restore_hostname(self, fstore, statestore):
"""
Restores the original hostname as backed up in the
diff --git a/ipaplatform/redhat/tasks.py b/ipaplatform/redhat/tasks.py
index 8f9b39bf8..67cb02196 100644
--- a/ipaplatform/redhat/tasks.py
+++ b/ipaplatform/redhat/tasks.py
@@ -141,6 +141,20 @@ class RedHatTaskNamespace(BaseTaskNamespace):
'Install the policycoreutils package and start '
'the installation again.' % restorecon)
+ def check_ipv6_stack_enabled(self):
+ """Checks whether IPv6 kernel module is loaded.
+
+ Function checks if /proc/net/if_inet6 is present. If IPv6 stack is
+ enabled, it exists and contains the interfaces configuration.
+
+ :raises: RuntimeError when IPv6 stack is disabled
+ """
+ if not os.path.exists(paths.IF_INET6):
+ raise RuntimeError(
+ "IPv6 kernel module has to be enabled. If you do not wish to "
+ "use IPv6, please disable it on the interfaces in "
+ "sysctl.conf and enable the IPv6 kernel module.")
+
def restore_pre_ipa_client_configuration(self, fstore, statestore,
was_sssd_installed,
was_sssd_configured):