summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Harring <brian@shapeways.com>2013-09-18 15:03:40 -0400
committerJames Cammarata <jimi@sngx.net>2013-09-19 10:43:27 -0500
commit7ddc3db81647b5f76bd30d5109d8557e7456b35f (patch)
tree1ebd262fcfe1a414278b93b205dfe9ff3420cd52
parent962a3165842dba0ae4593d2e12dd9c9d1c778e30 (diff)
downloadansible-7ddc3db81647b5f76bd30d5109d8557e7456b35f.tar.gz
Make ssh's ControlPath configurable via ansible.cfg
This shouldn't generally be needed unless you're working in an environment that uses rediculously long FQDNs; if the name is too long, you wind up hitting unix domain socket filepath limits enforced by ssh.
-rw-r--r--lib/ansible/constants.py3
-rw-r--r--lib/ansible/runner/connection_plugins/ssh.py4
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/ansible/constants.py b/lib/ansible/constants.py
index b9941c2e93..c25df27abf 100644
--- a/lib/ansible/constants.py
+++ b/lib/ansible/constants.py
@@ -47,7 +47,7 @@ def _get_config(p, section, key, env_var, default, boolean=True):
return value
if p is not None:
try:
- return p.get(section, key)
+ return p.get(section, key, raw=True)
except:
return default
return default
@@ -130,6 +130,7 @@ DEFAULT_LOG_PATH = shell_expand_path(get_config(p, DEFAULTS, 'log_
ANSIBLE_NOCOLOR = get_config(p, DEFAULTS, 'nocolor', 'ANSIBLE_NOCOLOR', None, boolean=True)
ANSIBLE_NOCOWS = get_config(p, DEFAULTS, 'nocows', 'ANSIBLE_NOCOWS', None, boolean=True)
ANSIBLE_SSH_ARGS = get_config(p, 'ssh_connection', 'ssh_args', 'ANSIBLE_SSH_ARGS', None)
+ANSIBLE_SSH_CONTROL_PATH = get_config(p, 'ssh_connection', 'control_path', 'ANSIBLE_SSH_CONTROL_PATH', "%(directory)s/ansible-ssh-%%h-%%p-%%r")
PARAMIKO_RECORD_HOST_KEYS = get_config(p, 'paramiko_connection', 'record_host_keys', 'ANSIBLE_PARAMIKO_RECORD_HOST_KEYS', True, boolean=True)
ZEROMQ_PORT = int(get_config(p, 'fireball_connection', 'zeromq_port', 'ANSIBLE_ZEROMQ_PORT', 5099))
ACCELERATE_PORT = int(get_config(p, 'accelerate', 'accelerate_port', 'ACCELERATE_PORT', 5099))
diff --git a/lib/ansible/runner/connection_plugins/ssh.py b/lib/ansible/runner/connection_plugins/ssh.py
index 02d47e0b1e..649429c3c9 100644
--- a/lib/ansible/runner/connection_plugins/ssh.py
+++ b/lib/ansible/runner/connection_plugins/ssh.py
@@ -61,7 +61,7 @@ class Connection(object):
else:
self.common_args += ["-o", "ControlMaster=auto",
"-o", "ControlPersist=60s",
- "-o", "ControlPath=%s/ansible-ssh-%%h-%%p-%%r" % self.cp_dir]
+ "-o", "ControlPath=%s" % (C.ANSIBLE_SSH_CONTROL_PATH % dict(directory=self.cp_dir))]
cp_in_use = False
cp_path_set = False
@@ -72,7 +72,7 @@ class Connection(object):
cp_path_set = True
if cp_in_use and not cp_path_set:
- self.common_args += ["-o", "ControlPath=%s/ansible-ssh-%%h-%%p-%%r" % self.cp_dir]
+ self.common_args += ["-o", "ControlPath=%s" % (C.ANSIBLE_SSH_CONTROL_PATH % dict(directory=self.cp_dir))]
if not C.HOST_KEY_CHECKING:
self.common_args += ["-o", "StrictHostKeyChecking=no"]