diff --git a/plugins/module_utils/ansible_freeipa_module.py b/plugins/module_utils/ansible_freeipa_module.py
index 272d6874111b19a01d8033c3cb456cbb1cb9f747..de09be1c98884f6a912a30d523f45b4a18adcc3c 100644
--- a/plugins/module_utils/ansible_freeipa_module.py
+++ b/plugins/module_utils/ansible_freeipa_module.py
@@ -103,7 +103,7 @@ else:
 
     import socket
     import base64
-    import six
+    from ansible.module_utils import six
 
     try:
         from collections.abc import Mapping  # noqa
diff --git a/plugins/modules/ipadnsrecord.py b/plugins/modules/ipadnsrecord.py
index 524590709e71f215fe768f272547ff81cc83b00e..dc72803120148ff58c3b18d6ab1a35b136de1ed7 100644
--- a/plugins/modules/ipadnsrecord.py
+++ b/plugins/modules/ipadnsrecord.py
@@ -869,8 +869,7 @@ from ansible.module_utils.ansible_freeipa_module import \
 import dns.reversename
 import dns.resolver
 
-import six
-
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str
diff --git a/plugins/modules/ipadnszone.py b/plugins/modules/ipadnszone.py
index 1c18c0eada3ca7c2167c6877f8b2a142714574f0..f4dbc8eeca5d2683518fff4ce03cb2cc98923232 100644
--- a/plugins/modules/ipadnszone.py
+++ b/plugins/modules/ipadnszone.py
@@ -210,7 +210,7 @@ from ansible.module_utils.ansible_freeipa_module import (
     ipalib_errors
 )  # noqa: E402
 import netaddr
-import six
+from ansible.module_utils import six
 
 
 if six.PY3:
diff --git a/plugins/modules/ipahost.py b/plugins/modules/ipahost.py
index 7800b8c3c988aacf14f766bd3e760f8b60090a7e..e48325833d1418975c95dc55b094a387af8487d4 100644
--- a/plugins/modules/ipahost.py
+++ b/plugins/modules/ipahost.py
@@ -406,7 +406,7 @@ host:
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, compare_args_ipa, gen_add_del_lists, \
     encode_certificate, is_ipv4_addr, is_ipv6_addr, ipalib_errors
-import six
+from ansible.module_utils import six
 if six.PY3:
     unicode = str
 
diff --git a/plugins/modules/ipaprivilege.py b/plugins/modules/ipaprivilege.py
index b08ae1b20e97f8df62075bc69b7981e8c1f21e36..45abe6469028b71d9896991958bb0b7074dfbb69 100644
--- a/plugins/modules/ipaprivilege.py
+++ b/plugins/modules/ipaprivilege.py
@@ -113,7 +113,7 @@ RETURN = """
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, compare_args_ipa, gen_add_del_lists, gen_add_list, \
     gen_intersection_list
-import six
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str
diff --git a/plugins/modules/iparole.py b/plugins/modules/iparole.py
index 2c712894f4f71663de501e097badbe1c2ec54cc4..912cfc1e8dcb52610f703a81cf7a1f1332f57d36 100644
--- a/plugins/modules/iparole.py
+++ b/plugins/modules/iparole.py
@@ -104,7 +104,7 @@ EXAMPLES = """
 from ansible.module_utils._text import to_text
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, gen_add_del_lists, compare_args_ipa
-import six
+from ansible.module_utils import six
 
 
 if six.PY3:
diff --git a/plugins/modules/ipauser.py b/plugins/modules/ipauser.py
index 887b5c57747b13066f1d125df79378e01d3cbd57..b737f74971aed62a2cd4fb4b0405a4e4061cb86c 100644
--- a/plugins/modules/ipauser.py
+++ b/plugins/modules/ipauser.py
@@ -475,7 +475,7 @@ user:
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, compare_args_ipa, gen_add_del_lists, date_format, \
     encode_certificate, load_cert_from_str, DN_x500_text, to_text
-import six
+from ansible.module_utils import six
 if six.PY3:
     unicode = str
 
diff --git a/roles/ipaclient/library/ipaclient_get_facts.py b/roles/ipaclient/library/ipaclient_get_facts.py
index e6f9341f1bdf4053d344df541864a3dafa0a69a3..1a2b331c854c072371d75eee85249be079278cf0 100644
--- a/roles/ipaclient/library/ipaclient_get_facts.py
+++ b/roles/ipaclient/library/ipaclient_get_facts.py
@@ -15,9 +15,9 @@ author:
 
 import os
 import re
-import six
+from ansible.module_utils import six
 try:
-    from six.moves.configparser import RawConfigParser
+    from ansible.module_utils.six.moves.configparser import RawConfigParser
 except ImportError:
     from ConfigParser import RawConfigParser
 
diff --git a/roles/ipaclient/library/ipaclient_get_otp.py b/roles/ipaclient/library/ipaclient_get_otp.py
index 121aeae9afff6d2b064df3d20a95b031162e9b8c..1ae05ea8861b68351db36097b08ea5624da764b1 100644
--- a/roles/ipaclient/library/ipaclient_get_otp.py
+++ b/roles/ipaclient/library/ipaclient_get_otp.py
@@ -124,9 +124,9 @@ host:
 '''
 
 import os
-import six
 
 from ansible.module_utils.basic import AnsibleModule
+from ansible.module_utils import six
 
 from ipalib import api, errors
 from ipaplatform.paths import paths
diff --git a/roles/ipaclient/library/ipaclient_test.py b/roles/ipaclient/library/ipaclient_test.py
index 6677d837cd6cc5cc8d65b335deca17eebbcded5a..540daba423de4721755a82d629187df7d39c0b65 100644
--- a/roles/ipaclient/library/ipaclient_test.py
+++ b/roles/ipaclient/library/ipaclient_test.py
@@ -200,7 +200,7 @@ import socket
 import inspect
 
 try:
-    from six.moves.configparser import RawConfigParser
+    from ansible.module_utils.six.moves.configparser import RawConfigParser
 except ImportError:
     from ConfigParser import RawConfigParser
 
diff --git a/roles/ipareplica/library/ipareplica_add_to_ipaservers.py b/roles/ipareplica/library/ipareplica_add_to_ipaservers.py
index e39ebc2fa548610201dfb6f317654a2c8669eddf..2ec634cccf18fbf8bd504debf03d273f98dba094 100644
--- a/roles/ipareplica/library/ipareplica_add_to_ipaservers.py
+++ b/roles/ipareplica/library/ipareplica_add_to_ipaservers.py
@@ -64,7 +64,6 @@ RETURN = '''
 '''
 
 import os
-import six
 
 from ansible.module_utils.basic import AnsibleModule
 from ansible.module_utils.ansible_ipa_replica import (
@@ -73,6 +72,8 @@ from ansible.module_utils.ansible_ipa_replica import (
     gen_remote_api, api
 )
 
+from ansible.module_utils import six
+
 if six.PY3:
     unicode = str
 
diff --git a/roles/ipareplica/library/ipareplica_prepare.py b/roles/ipareplica/library/ipareplica_prepare.py
index ae7f5cdfb3c3ebda80ac01bbfc6bcadad752e2e3..a78629d2ccff173da6581e6ac98354c44a25d885 100644
--- a/roles/ipareplica/library/ipareplica_prepare.py
+++ b/roles/ipareplica/library/ipareplica_prepare.py
@@ -195,7 +195,6 @@ RETURN = '''
 import os
 import tempfile
 import traceback
-import six
 from shutil import copyfile
 
 from ansible.module_utils.basic import AnsibleModule
@@ -210,6 +209,7 @@ from ansible.module_utils.ansible_ipa_replica import (
     dns, no_matching_interface_for_ip_address_warning, adtrust,
     constants, api, redirect_stdout, replica_conn_check, tasks
 )
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str
diff --git a/roles/ipaserver/library/ipaserver_test.py b/roles/ipaserver/library/ipaserver_test.py
index 4e2df5caa48720ba824ed1e2a87fb088848b7b0f..4c7df49b3f448a53404a38c1257340bfa7616fc7 100644
--- a/roles/ipaserver/library/ipaserver_test.py
+++ b/roles/ipaserver/library/ipaserver_test.py
@@ -212,7 +212,6 @@ RETURN = '''
 
 import os
 import sys
-import six
 import inspect
 import random
 from shutil import copyfile
@@ -229,6 +228,7 @@ from ansible.module_utils.ansible_ipa_server import (
     validate_domain_name, load_pkcs12, IPA_PYTHON_VERSION,
     encode_certificate, check_available_memory
 )
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str
diff --git a/roles/ipaserver/module_utils/ansible_ipa_server.py b/roles/ipaserver/module_utils/ansible_ipa_server.py
index 2cd677fc34097a3ad9fc412dac68f365f3a9e836..dfb424a8bfaf6afe107c3a4b00ee036dfd70dd09 100644
--- a/roles/ipaserver/module_utils/ansible_ipa_server.py
+++ b/roles/ipaserver/module_utils/ansible_ipa_server.py
@@ -55,7 +55,7 @@ else:
 
     import logging
     from contextlib import contextmanager as contextlib_contextmanager
-    import six
+    from ansible.module_utils import six
     import base64
 
     from ipapython.version import NUM_VERSION, VERSION
diff --git a/utils/templates/ipamodule+member.py.in b/utils/templates/ipamodule+member.py.in
index 57b192c51e855f4a213b8f0f1e2364f4af262f95..1515ccc194ae5e10d66adcc9e408b571f3e8dd60 100644
--- a/utils/templates/ipamodule+member.py.in
+++ b/utils/templates/ipamodule+member.py.in
@@ -103,8 +103,7 @@ RETURN = """
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, compare_args_ipa, gen_add_del_lists, gen_add_list, \
     gen_intersection_list
-
-import six
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str
diff --git a/utils/templates/ipamodule.py.in b/utils/templates/ipamodule.py.in
index ee942cd6470c8a4c8af9bd21c9481511e7019ace..00750f83b199e2f8bab163daf57c7ee9f80b5d75 100644
--- a/utils/templates/ipamodule.py.in
+++ b/utils/templates/ipamodule.py.in
@@ -82,7 +82,7 @@ RETURN = """
 
 from ansible.module_utils.ansible_freeipa_module import \
     IPAAnsibleModule, compare_args_ipa
-import six
+from ansible.module_utils import six
 
 if six.PY3:
     unicode = str