From 6fcce9a97e104f55a84adb45a26a6ad8142c28ae Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 28 Feb 2012 01:25:00 -0500 Subject: [PATCH 1/3] rebuild manpage due to license change --- docs/man/man1/ansible.1 | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/docs/man/man1/ansible.1 b/docs/man/man1/ansible.1 index 23fd3d48dfd..2b22c0aa775 100644 --- a/docs/man/man1/ansible.1 +++ b/docs/man/man1/ansible.1 @@ -1,22 +1,13 @@ '\" t .\" Title: ansible .\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 02/26/2012 +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 02/28/2012 .\" Manual: System administration commands .\" Source: Ansible 0.0.1 .\" Language: English .\" -.TH "ANSIBLE" "1" "02/26/2012" "Ansible 0\&.0\&.1" "System administration commands" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' +.TH "ANSIBLE" "1" "02/28/2012" "Ansible 0\&.0\&.1" "System administration commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -34,7 +25,7 @@ ansible \- run a command somewhere else ansible [\-H hosts_path] [\-L library_path] [\-f forks] [\-n module_name] [\-a [args1 [args2 \&...]]] [\-p host_pattern] [\-u remote_user] .SH "DESCRIPTION" .sp -\fBAnsible\fR is an extra\-simple Python API for doing \*(Aqremote things\*(Aq over SSH\&. +\fBAnsible\fR is an extra\-simple Python API for doing \'remote things\' over SSH\&. .SH "OPTIONS" .PP \fB\-P\fR, \fB\-\-askpass\fR @@ -102,7 +93,7 @@ Ansible was originally written by Michael DeHaan\&. See the AUTHORS file for a c .sp Copyright \(co 2012, Michael DeHaan .sp -Ansible is released under the terms of the MIT license\&. +Ansible is released under the terms of the GPLv3 License\&. .SH "SEE ALSO" .sp \fBansible\-modules\fR(5), \fBansible\-playbook\fR(5) From 01e5da6d0be9b818f0ae5582b139d886ead09544 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 28 Feb 2012 01:33:22 -0500 Subject: [PATCH 2/3] Make /bin/ansible use the common options from lib/ansible/scripts DRY! --- bin/ansible | 51 +++++++++++------------------------------- lib/ansible/scripts.py | 2 ++ 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/bin/ansible b/bin/ansible index 16d94896874..64592539728 100755 --- a/bin/ansible +++ b/bin/ansible @@ -25,6 +25,7 @@ import shlex import ansible.runner import ansible.playbook import ansible.constants as C +from ansible.scripts import base_ans_parser class Cli(object): @@ -32,26 +33,11 @@ class Cli(object): pass def runner(self): - parser = OptionParser() - parser.add_option("-P", "--askpass", default=False, action="store_true", - help="ask the user to input the ssh password for connecting") - parser.add_option("-H", "--host-list", dest="host_list", - help="path to hosts list", default=C.DEFAULT_HOST_LIST) - parser.add_option("-L", "--library", dest="module_path", - help="path to module library", default=C.DEFAULT_MODULE_PATH) - parser.add_option("-f", "--forks", dest="forks", type="int", - help="level of parallelism", default=C.DEFAULT_FORKS) + parser = base_ans_parser() parser.add_option("-n", "--name", dest="module_name", help="module name to execute", default=C.DEFAULT_MODULE_NAME) parser.add_option("-a", "--args", dest="module_args", help="module arguments", default=C.DEFAULT_MODULE_ARGS) - parser.add_option("-p", "--pattern", dest="pattern", - help="hostname pattern", default=C.DEFAULT_PATTERN) - parser.add_option("-u", "--remote-user", dest="remote_user", - help="remote username", default=C.DEFAULT_REMOTE_USER) - parser.add_option("-r", "--run-playbook", dest="playbook", - help="playbook file, instead of -n and -a", default=None) - options, args = parser.parse_args() # TODO: more shell like splitting on module_args would @@ -61,28 +47,17 @@ class Cli(object): if options.askpass: sshpass = getpass.getpass(prompt="SSH password: ") - if options.playbook is None: - return ansible.runner.Runner( - 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.host_list, - forks=options.forks, - pattern=options.pattern, - verbose=True, - ) - else: - return ansible.playbook.PlayBook( - playbook=options.playbook, - module_path=options.module_path, - remote_user=options.remote_user, - remote_pass=sshpass, - host_list=options.host_list, - forks=options.forks, - verbose=True - ) + return ansible.runner.Runner( + 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.host_list, + forks=options.forks, + pattern=options.pattern, + verbose=True, + ) if __name__ == '__main__': diff --git a/lib/ansible/scripts.py b/lib/ansible/scripts.py index beadda13e35..28d8cec4f2e 100644 --- a/lib/ansible/scripts.py +++ b/lib/ansible/scripts.py @@ -26,6 +26,8 @@ def base_ans_parser(): help="path to module library", default=C.DEFAULT_MODULE_PATH) parser.add_option('-u', '--user', default=C.DEFAULT_REMOTE_USER, dest='remote_user', help='set the default username') + parser.add_option("-p", "--pattern", dest="pattern", + help="hostname pattern", default=C.DEFAULT_PATTERN) parser.add_option("-P", "--askpass", default=False, action="store_true", help="ask the user to input the ssh password for connecting") parser.add_option('-f','--forks', dest='forks', default=C.DEFAULT_FORKS, type='int', From 4ba366c2d15557aa2ffd8581d0da84abeea9975d Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 28 Feb 2012 01:34:28 -0500 Subject: [PATCH 3/3] Require that ansible managed hosts be in the list of hosts to manage to avoid option overload. --- bin/ans-command | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/bin/ans-command b/bin/ans-command index 5f0e118596e..923e4c60d66 100755 --- a/bin/ans-command +++ b/bin/ans-command @@ -49,9 +49,6 @@ def main(args): sshpass = None if options.askpass: sshpass = getpass.getpass(prompt="SSH password: ") - pattern = '*' - if options.host: - pattern += ';'.join(options.host) if options.output_dest: if options.output_dest[0] != '/': @@ -81,7 +78,7 @@ def main(args): remote_pass=sshpass, host_list=options.host_list, forks=options.forks, - pattern=pattern, + pattern=options.pattern, verbose=True, )