From 22d6572270133267185f6752748bbc7ac6236a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gross?= Date: Fri, 18 Apr 2014 01:48:02 +0200 Subject: [PATCH] Honor ansible_private_key_file for delegated hosts If a delegated host is not found in the inventory specified private_key_file for primary host was not used. This allows running playbooks without having to define any inventory at all and to use the same ssh private key for both primary host and delegated one. --- lib/ansible/runner/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 432ee854793..8682ad87f41 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -346,6 +346,12 @@ class Runner(object): delegate['transport'] = this_info.get('ansible_connection', self.transport) delegate['sudo_pass'] = this_info.get('ansible_sudo_pass', self.sudo_pass) + # Last chance to get private_key_file from global variables. + # this is usefull if delegated host is not defined in the inventory + if delegate['private_key_file'] is None: + delegate['private_key_file'] = remote_inject.get( + 'ansible_ssh_private_key_file', None) + if delegate['private_key_file'] is not None: delegate['private_key_file'] = os.path.expanduser(delegate['private_key_file'])