diff --git a/roles/ipareplica/library/ipareplica_master_password.py b/roles/ipareplica/library/ipareplica_master_password.py
new file mode 100644
index 0000000000000000000000000000000000000000..77f6f8ec02a32353c9f53204842256a8ba41b011
--- /dev/null
+++ b/roles/ipareplica/library/ipareplica_master_password.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Authors:
+#   Thomas Woerner <twoerner@redhat.com>
+#
+# Based on ipa-server-install code
+#
+# Copyright (C) 2017  Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+ANSIBLE_METADATA = {
+    'metadata_version': '1.0',
+    'supported_by': 'community',
+    'status': ['preview'],
+}
+
+DOCUMENTATION = '''
+---
+module: ipareplica_master_password
+short description: Generate kerberos master password if not given
+description:
+  Generate kerberos master password if not given
+options:
+  master_password:
+    description: kerberos master password (normally autogenerated)
+    required: false
+author:
+    - Thomas Woerner
+'''
+
+EXAMPLES = '''
+'''
+
+RETURN = '''
+password:
+  description: The master password
+  returned: always
+'''
+
+import os
+
+from ansible.module_utils.basic import AnsibleModule
+from ansible.module_utils.ansible_ipa_replica import *
+
+def main():
+    module = AnsibleModule(
+        argument_spec = dict(
+            #basic
+            dm_password=dict(required=True, no_log=True),
+            master_password=dict(required=False, no_log=True),
+        ),
+        supports_check_mode = True,
+    )
+
+    module._ansible_debug = True
+
+    options.dm_password = module.params.get('dm_password')
+    options.master_password = module.params.get('master_password')
+
+    fstore = sysrestore.FileStore(paths.SYSRESTORE)
+    sstore = sysrestore.StateFile(paths.SYSRESTORE)
+
+    # This will override any settings passed in on the cmdline
+    if os.path.isfile(paths.ROOT_IPA_CACHE):
+        # dm_password check removed, checked already
+        try:
+            cache_vars = read_cache(options.dm_password)
+            options.__dict__.update(cache_vars)
+        except Exception as e:
+            module.fail_json(msg="Cannot process the cache file: %s" % str(e))
+
+    if not options.master_password:
+        options.master_password = ipa_generate_password()
+
+    module.exit_json(changed=True,
+                     password=options.master_password)
+
+if __name__ == '__main__':
+    main()
diff --git a/roles/ipareplica/library/ipaserver_master_password.py b/roles/ipareplica/library/ipaserver_master_password.py
deleted file mode 120000
index 619119728863e82018fd34500849ab7e992ca04a..0000000000000000000000000000000000000000
--- a/roles/ipareplica/library/ipaserver_master_password.py
+++ /dev/null
@@ -1 +0,0 @@
-../../ipaserver/library/ipaserver_master_password.py
\ No newline at end of file
diff --git a/roles/ipareplica/library/ipaserver_setup_ntp.py b/roles/ipareplica/library/ipaserver_setup_ntp.py
deleted file mode 120000
index 2281797168af2be231ac6400e99a1737c6f93200..0000000000000000000000000000000000000000
--- a/roles/ipareplica/library/ipaserver_setup_ntp.py
+++ /dev/null
@@ -1 +0,0 @@
-../../ipaserver/library/ipaserver_setup_ntp.py
\ No newline at end of file
diff --git a/roles/ipareplica/module_utils/ansible_ipa_replica.py b/roles/ipareplica/module_utils/ansible_ipa_replica.py
index 312c6aa5a9b0291c45b50e101666bcbdc6a0ce61..3c64b044e9e384f30e689f21664648c88c7e1efb 100644
--- a/roles/ipareplica/module_utils/ansible_ipa_replica.py
+++ b/roles/ipareplica/module_utils/ansible_ipa_replica.py
@@ -59,6 +59,7 @@ if NUM_VERSION >= 40600:
 
     from ipaclient.install.ipachangeconf import IPAChangeConf
     from ipalib.install import certstore, sysrestore
+    from ipapython.ipautil import ipa_generate_password
     from ipalib.install.kinit import kinit_keytab
     from ipapython import ipaldap, ipautil, kernel_keyring
     from ipapython.certdb import IPA_CA_TRUST_FLAGS, EXTERNAL_CA_TRUST_FLAGS
@@ -101,18 +102,6 @@ if NUM_VERSION >= 40600:
     if six.PY3:
         unicode = str
 
-    try:
-        from ipaclient.install import timeconf
-        time_service = "chronyd"
-        ntpinstance = None
-    except ImportError:
-        try:
-            from ipaclient.install import ntpconf as timeconf
-        except ImportError:
-            from ipaclient import ntpconf as timeconf
-        from ipaserver.install import ntpinstance
-        time_service = "ntpd"
-
 else:
     # IPA version < 4.6
 
diff --git a/roles/ipareplica/tasks/install.yml b/roles/ipareplica/tasks/install.yml
index 4c5b86b0f13eb4144d4cdfee2d9e13bbe8ecbc1a..dc2496753ba0c4721ae793b31db16bb9f257ef7a 100644
--- a/roles/ipareplica/tasks/install.yml
+++ b/roles/ipareplica/tasks/install.yml
@@ -158,10 +158,6 @@
       skip_conncheck: "{{ ipareplica_skip_conncheck }}"
     register: result_ipareplica_prepare
 
-  - name: Install - Setup NTP
-    ipaserver_setup_ntp:
-    when: not ipaclient_no_ntp | bool
-
   - name: Install - Add to ipaservers
     ipareplica_add_to_ipaservers:
       ### server ###
@@ -175,15 +171,15 @@
 
   - name: Install - Create dirman password
     no_log: yes
-    ipaserver_master_password:
+    ipareplica_master_password:
       dm_password: "{{ ipadm_password }}"
-      master_password: "{{ ipaserver_master_password | default(omit) }}"
-    register: result_ipaserver_master_password
+      master_password: "{{ ipareplica_master_password | default(omit) }}"
+    register: result_ipareplica_master_password
 
   - name: Install - Set dirman password
     no_log: yes
     set_fact:
-      ipareplica_dirman_password: "{{ result_ipaserver_master_password.password }}"
+      ipareplica_dirman_password: "{{ result_ipareplica_master_password.password }}"
 
   - name: Install - Setup certmonger
     ipareplica_setup_certmonger: