Exemplo n.º 1
0
    def init_parser(self):
        super(ConsoleCLI, self).init_parser(
            desc="REPL console for executing Assible tasks.",
            epilog=
            "This is not a live session/connection, each task executes in the background and returns it's results."
        )
        opt_help.add_runas_options(self.parser)
        opt_help.add_inventory_options(self.parser)
        opt_help.add_connect_options(self.parser)
        opt_help.add_check_options(self.parser)
        opt_help.add_vault_options(self.parser)
        opt_help.add_fork_options(self.parser)
        opt_help.add_module_options(self.parser)
        opt_help.add_basedir_options(self.parser)

        # options unique to shell
        self.parser.add_argument('pattern',
                                 help='host pattern',
                                 metavar='pattern',
                                 default='all',
                                 nargs='?')
        self.parser.add_argument(
            '--step',
            dest='step',
            action='store_true',
            help="one-step-at-a-time: confirm each task before running")
Exemplo n.º 2
0
    def init_parser(self):

        # create parser for CLI options
        super(PlaybookCLI, self).init_parser(
            usage="%prog [options] playbook.yml [playbook2 ...]",
            desc=
            "Runs Assible playbooks, executing the defined tasks on the targeted hosts."
        )

        opt_help.add_connect_options(self.parser)
        opt_help.add_meta_options(self.parser)
        opt_help.add_runas_options(self.parser)
        opt_help.add_subset_options(self.parser)
        opt_help.add_check_options(self.parser)
        opt_help.add_inventory_options(self.parser)
        opt_help.add_runtask_options(self.parser)
        opt_help.add_vault_options(self.parser)
        opt_help.add_fork_options(self.parser)
        opt_help.add_module_options(self.parser)

        # assible playbook specific opts
        self.parser.add_argument('--list-tasks',
                                 dest='listtasks',
                                 action='store_true',
                                 help="list all tasks that would be executed")
        self.parser.add_argument('--list-tags',
                                 dest='listtags',
                                 action='store_true',
                                 help="list all available tags")
        self.parser.add_argument(
            '--step',
            dest='step',
            action='store_true',
            help="one-step-at-a-time: confirm each task before running")
        self.parser.add_argument(
            '--start-at-task',
            dest='start_at_task',
            help="start the playbook at the task matching this name")
        self.parser.add_argument('args',
                                 help='Playbook(s)',
                                 metavar='playbook',
                                 nargs='+')
Exemplo n.º 3
0
    def init_parser(self):
        ''' create an options parser for bin/assible '''
        super(AdHocCLI, self).init_parser(
            usage='%prog <host-pattern> [options]',
            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)")

        opt_help.add_runas_options(self.parser)
        opt_help.add_inventory_options(self.parser)
        opt_help.add_async_options(self.parser)
        opt_help.add_output_options(self.parser)
        opt_help.add_connect_options(self.parser)
        opt_help.add_check_options(self.parser)
        opt_help.add_runtask_options(self.parser)
        opt_help.add_vault_options(self.parser)
        opt_help.add_fork_options(self.parser)
        opt_help.add_module_options(self.parser)
        opt_help.add_basedir_options(self.parser)

        # options unique to assible ad-hoc
        self.parser.add_argument('-a',
                                 '--args',
                                 dest='module_args',
                                 help="module arguments",
                                 default=C.DEFAULT_MODULE_ARGS)
        self.parser.add_argument('-m',
                                 '--module-name',
                                 dest='module_name',
                                 help="module name to execute (default=%s)" %
                                 C.DEFAULT_MODULE_NAME,
                                 default=C.DEFAULT_MODULE_NAME)
        self.parser.add_argument('args',
                                 metavar='pattern',
                                 help='host pattern')
Exemplo n.º 4
0
    def init_parser(self):
        ''' create an options parser for bin/assible '''

        super(PullCLI, self).init_parser(
            usage='%prog -U <repository> [options] [<playbook.yml>]',
            desc=
            "pulls playbooks from a VCS repo and executes them for the local host"
        )

        # Do not add check_options as there's a conflict with --checkout/-C
        opt_help.add_connect_options(self.parser)
        opt_help.add_vault_options(self.parser)
        opt_help.add_runtask_options(self.parser)
        opt_help.add_subset_options(self.parser)
        opt_help.add_inventory_options(self.parser)
        opt_help.add_module_options(self.parser)
        opt_help.add_runas_prompt_options(self.parser)

        self.parser.add_argument('args',
                                 help='Playbook(s)',
                                 metavar='playbook.yml',
                                 nargs='*')

        # options unique to pull
        self.parser.add_argument('--purge',
                                 default=False,
                                 action='store_true',
                                 help='purge checkout after playbook run')
        self.parser.add_argument(
            '-o',
            '--only-if-changed',
            dest='ifchanged',
            default=False,
            action='store_true',
            help='only run the playbook if the repository has been updated')
        self.parser.add_argument(
            '-s',
            '--sleep',
            dest='sleep',
            default=None,
            help=
            'sleep for random interval (between 0 and n number of seconds) before starting. '
            'This is a useful way to disperse git requests')
        self.parser.add_argument(
            '-f',
            '--force',
            dest='force',
            default=False,
            action='store_true',
            help='run the playbook even if the repository could not be updated'
        )
        self.parser.add_argument('-d',
                                 '--directory',
                                 dest='dest',
                                 default=None,
                                 help='directory to checkout repository to')
        self.parser.add_argument('-U',
                                 '--url',
                                 dest='url',
                                 default=None,
                                 help='URL of the playbook repository')
        self.parser.add_argument(
            '--full',
            dest='fullclone',
            action='store_true',
            help='Do a full clone, instead of a shallow one.')
        self.parser.add_argument(
            '-C',
            '--checkout',
            dest='checkout',
            help=
            'branch/tag/commit to checkout. Defaults to behavior of repository module.'
        )
        self.parser.add_argument(
            '--accept-host-key',
            default=False,
            dest='accept_host_key',
            action='store_true',
            help='adds the hostkey for the repo url if not already added')
        self.parser.add_argument(
            '-m',
            '--module-name',
            dest='module_name',
            default=self.DEFAULT_REPO_TYPE,
            help=
            'Repository module name, which assible will use to check out the repo. Choices are %s. Default is %s.'
            % (self.REPO_CHOICES, self.DEFAULT_REPO_TYPE))
        self.parser.add_argument(
            '--verify-commit',
            dest='verify',
            default=False,
            action='store_true',
            help=
            'verify GPG signature of checked out commit, if it fails abort running the playbook. '
            'This needs the corresponding VCS module to support such an operation'
        )
        self.parser.add_argument(
            '--clean',
            dest='clean',
            default=False,
            action='store_true',
            help='modified files in the working repository will be discarded')
        self.parser.add_argument(
            '--track-subs',
            dest='tracksubs',
            default=False,
            action='store_true',
            help=
            'submodules will track the latest changes. This is equivalent to specifying the --remote flag to git submodule update'
        )
        # add a subset of the check_opts flag group manually, as the full set's
        # shortcodes conflict with above --checkout/-C
        self.parser.add_argument(
            "--check",
            default=False,
            dest='check',
            action='store_true',
            help=
            "don't make any changes; instead, try to predict some of the changes that may occur"
        )
        self.parser.add_argument(
            "--diff",
            default=C.DIFF_ALWAYS,
            dest='diff',
            action='store_true',
            help=
            "when changing (small) files and templates, show the differences in those files; works great with --check"
        )
Exemplo n.º 5
0
    def init_parser(self):

        coll_filter = 'A supplied argument will be used for filtering, can be a namespace or full collection name.'

        super(DocCLI, self).init_parser(
            desc="plugin documentation tool",
            epilog=
            "See man pages for Assible CLI options or website for tutorials https://docs.assible.com"
        )
        opt_help.add_module_options(self.parser)
        opt_help.add_basedir_options(self.parser)

        self.parser.add_argument('args',
                                 nargs='*',
                                 help='Plugin',
                                 metavar='plugin')
        self.parser.add_argument(
            "-t",
            "--type",
            action="store",
            default='module',
            dest='type',
            help='Choose which plugin type (defaults to "module"). '
            'Available plugin types are : {0}'.format(C.DOCUMENTABLE_PLUGINS),
            choices=C.DOCUMENTABLE_PLUGINS)
        self.parser.add_argument("-j",
                                 "--json",
                                 action="store_true",
                                 default=False,
                                 dest='json_format',
                                 help='Change output into json format.')

        exclusive = self.parser.add_mutually_exclusive_group()
        exclusive.add_argument(
            "-F",
            "--list_files",
            action="store_true",
            default=False,
            dest="list_files",
            help=
            'Show plugin names and their source files without summaries (implies --list). %s'
            % coll_filter)
        exclusive.add_argument("-l",
                               "--list",
                               action="store_true",
                               default=False,
                               dest='list_dir',
                               help='List available plugins. %s' % coll_filter)
        exclusive.add_argument(
            "-s",
            "--snippet",
            action="store_true",
            default=False,
            dest='show_snippet',
            help='Show playbook snippet for specified plugin(s)')
        exclusive.add_argument(
            "--metadata-dump",
            action="store_true",
            default=False,
            dest='dump',
            help=
            '**For internal testing only** Dump json metadata for all plugins.'
        )