diff --git a/bin/ansible b/bin/ansible index 41149ae80eb..a2867c2c1d2 100755 --- a/bin/ansible +++ b/bin/ansible @@ -73,6 +73,8 @@ class Cli(object): dest='timeout', help="set the SSH timeout in seconds") parser.add_option('-u', '--user', default=C.DEFAULT_REMOTE_USER, dest='remote_user', help='connect as this user') + parser.add_option('-p', '--port', default=C.DEFAULT_REMOTE_PORT, type='int', + dest='remote_port', help='set the remote ssh port') options, args = parser.parse_args() self.callbacks.options = options @@ -101,8 +103,9 @@ class Cli(object): module_name=options.module_name, module_path=options.module_path, module_args=shlex.split(options.module_args), remote_user=options.remote_user, remote_pass=sshpass, - host_list=options.inventory, timeout=options.timeout, - forks=options.forks, background=options.seconds, pattern=pattern, + host_list=options.inventory, timeout=options.timeout, + remote_port=options.remote_port, forks=options.forks, + background=options.seconds, pattern=pattern, callbacks=self.callbacks, verbose=True, ) return (runner, runner.run()) @@ -116,7 +119,8 @@ class Cli(object): module_args=[ "jid=%s" % jid ], remote_user=old_runner.remote_user, remote_pass=old_runner.remote_pass, host_list=hosts, timeout=old_runner.timeout, forks=old_runner.forks, - pattern='*', callbacks=self.silent_callbacks, verbose=True, + remote_port=old_runner.remote_port, pattern='*', + callbacks=self.silent_callbacks, verbose=True, ) # ---------------------------------------------- diff --git a/lib/ansible/connection.py b/lib/ansible/connection.py index a142dea5565..2a9ec098490 100755 --- a/lib/ansible/connection.py +++ b/lib/ansible/connection.py @@ -65,7 +65,8 @@ class ParamikoConnection(object): allow_agent=True, look_for_keys=True, password=self.runner.remote_pass, - timeout=self.runner.timeout + timeout=self.runner.timeout, + port=self.runner.remote_port ) except Exception, e: raise errors.AnsibleConnectionFailed(str(e)) diff --git a/lib/ansible/constants.py b/lib/ansible/constants.py index fa0e1a511ef..7215f23b373 100644 --- a/lib/ansible/constants.py +++ b/lib/ansible/constants.py @@ -32,5 +32,4 @@ DEFAULT_TIMEOUT = 10 DEFAULT_POLL_INTERVAL = 15 DEFAULT_REMOTE_USER = 'root' DEFAULT_REMOTE_PASS = None - - +DEFAULT_REMOTE_PORT = 22 diff --git a/lib/ansible/playbook.py b/lib/ansible/playbook.py index 7262aa57e24..0e6599d74df 100755 --- a/lib/ansible/playbook.py +++ b/lib/ansible/playbook.py @@ -54,6 +54,7 @@ class PlayBook(object): timeout = C.DEFAULT_TIMEOUT, remote_user = C.DEFAULT_REMOTE_USER, remote_pass = C.DEFAULT_REMOTE_PASS, + remote_port = C.DEFAULT_REMOTE_PORT, override_hosts = None, verbose = False, callbacks = None, @@ -69,6 +70,7 @@ class PlayBook(object): self.timeout = timeout self.remote_user = remote_user self.remote_pass = remote_pass + self.remote_port = remote_port self.verbose = verbose self.callbacks = callbacks self.runner_callbacks = runner_callbacks @@ -262,7 +264,7 @@ class PlayBook(object): pattern=pattern, groups=self.groups, module_name=module, module_args=args, host_list=hosts, forks=self.forks, remote_pass=self.remote_pass, module_path=self.module_path, - timeout=self.timeout, remote_user=remote_user, + timeout=self.timeout, remote_user=remote_user, remote_port=self.remote_port, setup_cache=SETUP_CACHE, basedir=self.basedir, conditional=only_if, callbacks=self.runner_callbacks, ) @@ -426,7 +428,7 @@ class PlayBook(object): pattern=pattern, groups=self.groups, module_name='setup', module_args=push_var_str, host_list=host_list, forks=self.forks, module_path=self.module_path, - timeout=self.timeout, remote_user=user, + timeout=self.timeout, remote_user=user, remote_port=self.remote_port, remote_pass=self.remote_pass, setup_cache=SETUP_CACHE, callbacks=self.runner_callbacks, ).run() diff --git a/lib/ansible/runner.py b/lib/ansible/runner.py index d50fe402c4b..b8e57f2e93a 100755 --- a/lib/ansible/runner.py +++ b/lib/ansible/runner.py @@ -60,8 +60,8 @@ class Runner(object): module_name=C.DEFAULT_MODULE_NAME, module_args=C.DEFAULT_MODULE_ARGS, forks=C.DEFAULT_FORKS, timeout=C.DEFAULT_TIMEOUT, pattern=C.DEFAULT_PATTERN, remote_user=C.DEFAULT_REMOTE_USER, remote_pass=C.DEFAULT_REMOTE_PASS, - background=0, basedir=None, setup_cache=None, transport='paramiko', - conditional='True', groups={}, callbacks=None, verbose=False): + remote_port=C.DEFAULT_REMOTE_PORT, background=0, basedir=None, setup_cache=None, + transport='paramiko', conditional='True', groups={}, callbacks=None, verbose=False): if setup_cache is None: setup_cache = {} @@ -92,6 +92,7 @@ class Runner(object): self.verbose = verbose self.remote_user = remote_user self.remote_pass = remote_pass + self.remote_port = remote_port self.background = background self.basedir = basedir