Make private key customizable per host using ansible_ssh_private_key_file configurable as variable

This fixes issue #1026 for @toshywoshy together with ansible_ssh_user and ansible_ssh_port.
This commit is contained in:
Dag Wieers 2013-03-19 17:28:43 +01:00 committed by Michael DeHaan
commit d5d26bab9b
4 changed files with 15 additions and 7 deletions

View file

@ -32,12 +32,13 @@ from ansible import utils
class Connection(object):
''' ssh based connections '''
def __init__(self, runner, host, port, user, password):
def __init__(self, runner, host, port, user, password, private_key_file):
self.runner = runner
self.host = host
self.port = port
self.user = user
self.password = password
self.private_key_file = private_key_file
def connect(self):
''' connect to the remote host '''
@ -55,7 +56,9 @@ class Connection(object):
self.common_args += ["-o", "StrictHostKeyChecking=no"]
if self.port is not None:
self.common_args += ["-o", "Port=%d" % (self.port)]
if self.runner.private_key_file is not None:
if self.private_key_file is not None:
self.common_args += ["-o", "IdentityFile="+os.path.expanduser(self.private_key_file)]
elif self.runner.private_key_file is not None:
self.common_args += ["-o", "IdentityFile="+os.path.expanduser(self.runner.private_key_file)]
if self.password:
self.common_args += ["-o", "GSSAPIAuthentication=no",