diff --git a/tcp_tests/managers/saltmanager.py b/tcp_tests/managers/saltmanager.py
index 9b321cb..68fb5e6 100644
--- a/tcp_tests/managers/saltmanager.py
+++ b/tcp_tests/managers/saltmanager.py
@@ -276,16 +276,35 @@
         return result['return']
 
     @utils.retry(3, exception=libpepper.PepperException)
-    def sync_time(self, tgt='* and not cfg01*'):
+    def sync_time(self, tgt='*'):
         LOG.info("NTP time sync on the salt minions '{0}'".format(tgt))
         # Force authentication update on the next API access
         # because previous authentication most probably is not valid
         # before or after time sync.
         self.__api = None
         if not settings.SKIP_SYNC_TIME:
+            cmd = ('service ntp stop;'
+                   'if systemctl is-active --quiet maas-rackd; then'
+                   '  systemctl stop maas-rackd; RACKD=true;'
+                   'else'
+                   '  RACKD=false;'
+                   'fi;'
+                   'if systemctl is-active --quiet maas-regiond; then'
+                   '  systemctl stop maas-regiond; REGIOND=true;'
+                   'else'
+                   '  REGIOND=false;'
+                   'fi;'
+                   'if [ -x /usr/sbin/ntpdate ]; then'
+                   '  ntpdate -s ntp.ubuntu.com;'
+                   'else'
+                   '  ntpd -gq;'
+                   'fi;'
+                   'service ntp start;'
+                   'if $RACKD; then systemctl start maas-rackd; fi;'
+                   'if $REGIOND; then systemctl start maas-regiond; fi;')
             self.run_state(
                 tgt,
-                'cmd.run', 'service ntp stop; if [ -x /usr/sbin/ntpdate ]; then ntpdate -s ntp.ubuntu.com; else ntpd -gq ; fi; service ntp start')  # noqa
+                'cmd.run', cmd)  # noqa
         new_time_res = self.run_state(tgt, 'cmd.run', 'date')
         for node_name, time in sorted(new_time_res[0]['return'][0].items()):
             LOG.info("{0}: {1}".format(node_name, time))
diff --git a/tcp_tests/templates/cookied-cicd-pike-dvr-ceph/environment_context.yaml b/tcp_tests/templates/cookied-cicd-pike-dvr-ceph/environment_context.yaml
index dd08100..8974e6e 100644
--- a/tcp_tests/templates/cookied-cicd-pike-dvr-ceph/environment_context.yaml
+++ b/tcp_tests/templates/cookied-cicd-pike-dvr-ceph/environment_context.yaml
@@ -5,8 +5,8 @@
       - infra_config
       - linux_system_codename_xenial
       - features_runtest_cfg
-      classes:
-      - environment.cookied-cicd-pike-dvr-ceph.override_ntp_virtual
+      #classes:
+      #- environment.cookied-cicd-pike-dvr-ceph.override_ntp_virtual
       interfaces:
         ens3:
           role: single_dhcp
diff --git a/tcp_tests/templates/cookied-cicd-pike-dvr-sl/environment_context.yaml b/tcp_tests/templates/cookied-cicd-pike-dvr-sl/environment_context.yaml
index 065d10f..f735daa 100644
--- a/tcp_tests/templates/cookied-cicd-pike-dvr-sl/environment_context.yaml
+++ b/tcp_tests/templates/cookied-cicd-pike-dvr-sl/environment_context.yaml
@@ -5,8 +5,8 @@
       - infra_config
       - linux_system_codename_xenial
       - features_runtest
-      classes:
-      - environment.cookied-cicd-pike-dvr-sl.override_ntp_virtual
+      #classes:
+      #- environment.cookied-cicd-pike-dvr-sl.override_ntp_virtual
       interfaces:
         ens3:
           role: single_dhcp
diff --git a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
index 2efd47d..9d5f841 100644
--- a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
+++ b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
@@ -5,8 +5,8 @@
       - infra_config
       - linux_system_codename_xenial
       - features_runtest_cfg
-      classes:
-      - environment.cookied-cicd-queens-dvr-sl.override_ntp_virtual
+      #classes:
+      #- environment.cookied-cicd-queens-dvr-sl.override_ntp_virtual
       interfaces:
         ens3:
           role: single_dhcp
diff --git a/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml b/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
index 057ef10..ccc417d 100644
--- a/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
+++ b/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
@@ -5,8 +5,8 @@
       - infra_config
       - linux_system_codename_xenial
       - features_runtest
-      classes:
-      - environment.cookied-small-mcp-ironic.override_ntp_virtual
+      #classes:
+      #- environment.cookied-small-mcp-ironic.override_ntp_virtual
       interfaces:
         ens3:
           role: single_dhcp
diff --git a/tcp_tests/tests/system/test_3rdparty_suites.py b/tcp_tests/tests/system/test_3rdparty_suites.py
index 00b915d..188d21b 100644
--- a/tcp_tests/tests/system/test_3rdparty_suites.py
+++ b/tcp_tests/tests/system/test_3rdparty_suites.py
@@ -32,13 +32,16 @@
     @pytest.mark.grab_versions
     @pytest.mark.parametrize("_", [settings.ENV_NAME])
     @pytest.mark.run_tempest
-    def test_run_tempest(self, tempest_actions, show_step, _):
+    def test_run_tempest(self, tempest_actions, show_step, salt_actions, _):
         """Runner for Openstack tempest tests
 
         Scenario:
-            1. Run tempest
+            1. Sync time on the environment nodes
+            2. Run tempest
         """
         show_step(1)
+        salt_actions.sync_time()
+        show_step(2)
         tempest_actions.prepare_and_run_tempest()
 
     @pytest.mark.grab_versions
