'create an options parser for bin/ansible'

def parse(self):

    self.parser = CLI.base_parser(usage='%prog    <host-pattern>    [options]', runas_opts=True, inventory_opts=True, async_opts=True, output_opts=True, connect_opts=True, check_opts=True, runtask_opts=True, vault_opts=True, fork_opts=True, module_opts=True, desc="Define    and    run    a    single    task    'playbook'    against    a    set    of    hosts", epilog='Some    modules    do    not    make    sense    in    Ad-Hoc    (include,    meta,    etc)')
    self.parser.add_option('-a', '--args', dest='module_args', help='module    arguments', default=C.DEFAULT_MODULE_ARGS)
    self.parser.add_option('-m', '--module-name', dest='module_name', help=('module    name    to    execute    (default=%s)' % C.DEFAULT_MODULE_NAME), default=C.DEFAULT_MODULE_NAME)
    super(AdHocCLI, self).parse()
    if (len(self.args) < 1):
        raise AnsibleOptionsError('Missing    target    hosts')
    elif (len(self.args) > 1):
        raise AnsibleOptionsError('Extraneous    options    or    arguments')
    display.verbosity = self.options.verbosity
    self.validate_conflicts(runas_opts=True, vault_opts=True, fork_opts=True)
