diff --git a/tcp_tests/managers/underlay_ssh_manager.py b/tcp_tests/managers/underlay_ssh_manager.py
index 12ea22d..4a934ef 100644
--- a/tcp_tests/managers/underlay_ssh_manager.py
+++ b/tcp_tests/managers/underlay_ssh_manager.py
@@ -145,7 +145,8 @@
                 keys.append(rsakey.RSAKey.from_private_key(f))
         return keys
 
-    def __ssh_data(self, node_name=None, host=None, address_pool=None):
+    def __ssh_data(self, node_name=None, host=None, address_pool=None,
+                   node_role=None):
 
         ssh_data = None
 
@@ -164,6 +165,15 @@
                             break
                     else:
                         ssh_data = ssh
+        elif node_role is not None:
+            for ssh in self.config_ssh:
+                if node_role in ssh['roles']:
+                    if address_pool is not None:
+                        if address_pool == ssh['address_pool']:
+                            ssh_data = ssh
+                            break
+                    else:
+                        ssh_data = ssh
         if ssh_data is None:
             raise Exception('Auth data for node was not found using '
                             'node_name="{}" , host="{}" , address_pool="{}"'
@@ -220,6 +230,11 @@
                                    address_pool=address_pool)
         return ssh_data['host']
 
+    def host_by_node_role(self, node_role, address_pool=None):
+        ssh_data = self.__ssh_data(node_role=node_role,
+                                   address_pool=address_pool)
+        return ssh_data['host']
+
     def remote(self, node_name=None, host=None, address_pool=None):
         """Get SSHClient by a node name or hostname.
 
