Commit 35fdf663 by Michael DeHaan

Allow --user for playbooks, no need for port setting as can specify in inventory file now.

parent 8a027415
...@@ -47,7 +47,7 @@ class Cli(object): ...@@ -47,7 +47,7 @@ class Cli(object):
def parse(self): def parse(self):
''' create an options parser for bin/ansible ''' ''' create an options parser for bin/ansible '''
parser = utils.base_parser(constants=C, port_opts=True, runas_opts=True, async_opts=True, parser = utils.base_parser(constants=C, runas_opts=True, async_opts=True,
output_opts=True, connect_opts=True, usage='%prog <host-pattern> [options]') output_opts=True, connect_opts=True, usage='%prog <host-pattern> [options]')
parser.add_option('-a', '--args', dest='module_args', parser.add_option('-a', '--args', dest='module_args',
help="module arguments", default=C.DEFAULT_MODULE_ARGS) help="module arguments", default=C.DEFAULT_MODULE_ARGS)
...@@ -87,7 +87,7 @@ class Cli(object): ...@@ -87,7 +87,7 @@ class Cli(object):
module_args=options.module_args, module_args=options.module_args,
remote_user=options.remote_user, remote_pass=sshpass, remote_user=options.remote_user, remote_pass=sshpass,
host_list=options.inventory, timeout=options.timeout, host_list=options.inventory, timeout=options.timeout,
remote_port=options.remote_port, forks=options.forks, forks=options.forks,
background=options.seconds, pattern=pattern, background=options.seconds, pattern=pattern,
callbacks=self.callbacks, sudo=options.sudo, callbacks=self.callbacks, sudo=options.sudo,
sudo_pass=sudopass, verbose=True, sudo_pass=sudopass, verbose=True,
...@@ -104,8 +104,7 @@ class Cli(object): ...@@ -104,8 +104,7 @@ class Cli(object):
module_args="jid=%s" % jid, remote_user=old_runner.remote_user, module_args="jid=%s" % jid, remote_user=old_runner.remote_user,
remote_pass=old_runner.remote_pass, inventory=old_runner.inventory, remote_pass=old_runner.remote_pass, inventory=old_runner.inventory,
timeout=old_runner.timeout, forks=old_runner.forks, timeout=old_runner.timeout, forks=old_runner.forks,
remote_port=old_runner.remote_port, pattern='*', pattern='*', callbacks=self.silent_callbacks, verbose=True,
callbacks=self.silent_callbacks, verbose=True,
) )
# ---------------------------------------------- # ----------------------------------------------
......
...@@ -33,7 +33,7 @@ def main(args): ...@@ -33,7 +33,7 @@ def main(args):
# create parser for CLI options # create parser for CLI options
usage = "%prog playbook.yml" usage = "%prog playbook.yml"
parser = utils.base_parser(constants=C, usage=usage, connect_opts=True) parser = utils.base_parser(constants=C, usage=usage, connect_opts=True, runas_opts=True)
parser.add_option('-e', '--extra-vars', dest='extra_vars', parser.add_option('-e', '--extra-vars', dest='extra_vars',
help='arguments to pass to the inventory script') help='arguments to pass to the inventory script')
parser.add_option('-O', '--override-hosts', dest="override_hosts", default=None, parser.add_option('-O', '--override-hosts', dest="override_hosts", default=None,
...@@ -63,13 +63,22 @@ def main(args): ...@@ -63,13 +63,22 @@ def main(args):
runner_cb = callbacks.PlaybookRunnerCallbacks(stats) runner_cb = callbacks.PlaybookRunnerCallbacks(stats)
pb = ansible.playbook.PlayBook( pb = ansible.playbook.PlayBook(
playbook=playbook,module_path=options.module_path, playbook=playbook,
host_list=options.inventory, override_hosts=override_hosts, module_path=options.module_path,
host_list=options.inventory,
override_hosts=override_hosts,
extra_vars=options.extra_vars, extra_vars=options.extra_vars,
forks=options.forks, debug=options.debug, verbose=True, forks=options.forks,
debug=options.debug,
verbose=True,
remote_user=options.remote_user,
remote_pass=sshpass, remote_pass=sshpass,
callbacks=playbook_cb, runner_callbacks=runner_cb, stats=stats, callbacks=playbook_cb,
timeout=options.timeout, transport=options.connection, runner_callbacks=runner_cb,
stats=stats,
timeout=options.timeout,
transport=options.connection,
sudo=options.sudo,
sudo_pass=sudopass sudo_pass=sudopass
) )
try: try:
......
...@@ -64,7 +64,8 @@ class PlayBook(object): ...@@ -64,7 +64,8 @@ class PlayBook(object):
verbose = False, verbose = False,
callbacks = None, callbacks = None,
runner_callbacks = None, runner_callbacks = None,
stats = None): stats = None,
sudo = False):
if playbook is None or callbacks is None or runner_callbacks is None or stats is None: if playbook is None or callbacks is None or runner_callbacks is None or stats is None:
raise Exception('missing required arguments') raise Exception('missing required arguments')
...@@ -83,6 +84,7 @@ class PlayBook(object): ...@@ -83,6 +84,7 @@ class PlayBook(object):
self.override_hosts = override_hosts self.override_hosts = override_hosts
self.extra_vars = extra_vars self.extra_vars = extra_vars
self.stats = stats self.stats = stats
self.sudo = sudo
self.sudo_pass = sudo_pass self.sudo_pass = sudo_pass
self.basedir = os.path.dirname(playbook) self.basedir = os.path.dirname(playbook)
...@@ -529,7 +531,7 @@ class PlayBook(object): ...@@ -529,7 +531,7 @@ class PlayBook(object):
handlers = pg.get('handlers', []) handlers = pg.get('handlers', [])
user = pg.get('user', self.remote_user) user = pg.get('user', self.remote_user)
port = pg.get('port', self.remote_port) port = pg.get('port', self.remote_port)
sudo = pg.get('sudo', False) sudo = pg.get('sudo', self.sudo)
transport = pg.get('connection', self.transport) transport = pg.get('connection', self.transport)
self.callbacks.on_play_start(pattern) self.callbacks.on_play_start(pattern)
......
...@@ -279,7 +279,7 @@ class SortedOptParser(optparse.OptionParser): ...@@ -279,7 +279,7 @@ class SortedOptParser(optparse.OptionParser):
self.option_list.sort(key=methodcaller('get_opt_string')) self.option_list.sort(key=methodcaller('get_opt_string'))
return optparse.OptionParser.format_help(self, formatter=None) return optparse.OptionParser.format_help(self, formatter=None)
def base_parser(constants=C, usage="", output_opts=False, port_opts=False, runas_opts=False, async_opts=False, connect_opts=False): def base_parser(constants=C, usage="", output_opts=False, runas_opts=False, async_opts=False, connect_opts=False):
''' create an options parser for any ansible script ''' ''' create an options parser for any ansible script '''
parser = SortedOptParser(usage) parser = SortedOptParser(usage)
...@@ -301,11 +301,6 @@ def base_parser(constants=C, usage="", output_opts=False, port_opts=False, runas ...@@ -301,11 +301,6 @@ def base_parser(constants=C, usage="", output_opts=False, port_opts=False, runas
dest='timeout', dest='timeout',
help="override the SSH timeout in seconds (default=%s)" % constants.DEFAULT_TIMEOUT) help="override the SSH timeout in seconds (default=%s)" % constants.DEFAULT_TIMEOUT)
if port_opts:
parser.add_option('-p', '--port', default=constants.DEFAULT_REMOTE_PORT, type='int',
dest='remote_port',
help="override the remote ssh port (default=%s)" % constants.DEFAULT_REMOTE_PORT)
if output_opts: if output_opts:
parser.add_option('-o', '--one-line', dest='one_line', action='store_true', parser.add_option('-o', '--one-line', dest='one_line', action='store_true',
help='condense output') help='condense output')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment