From c844a2d0724fecf676a21b0db7375e457358ea8f Mon Sep 17 00:00:00 2001 From: cocoy Date: Mon, 23 Apr 2012 14:32:57 +0800 Subject: [PATCH] Fix to skip /.ssh/config if don't exist rather than raise an error. --- lib/ansible/connection.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/ansible/connection.py b/lib/ansible/connection.py index 786463996b9..a7c79379601 100644 --- a/lib/ansible/connection.py +++ b/lib/ansible/connection.py @@ -75,7 +75,7 @@ class ParamikoConnection(object): self.port = self.runner.remote_port def _get_conn(self): - credentials = None + credentials = {} user = self.runner.remote_user keypair = None @@ -84,15 +84,17 @@ class ParamikoConnection(object): try: ssh_config = paramiko.SSHConfig() config_file = ('~/.ssh/config') - ssh_config.parse(open(os.path.expanduser(config_file))) - credentials = ssh_config.lookup(self.host) - if 'hostname' in credentials: - self.host = credentials['hostname'] - if 'port' in credentials: - self.port = credentials['port'] + if os.path.exists(os.path.expanduser(config_file)): + ssh_config.parse(open(os.path.expanduser(config_file))) + credentials = ssh_config.lookup(self.host) + except IOError,e: raise errors.AnsibleConnectionFailed(str(e)) + if 'hostname' in credentials: + self.host = credentials['hostname'] + if 'port' in credentials: + self.port = credentials['port'] if 'user' in credentials: user = credentials['user'] if 'identityfile' in credentials: