Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playbook dir option #32275

Merged
merged 3 commits into from
Oct 31, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 9 additions & 1 deletion lib/ansible/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ def unfrack_path(option, opt, value, parser):
@staticmethod
def base_parser(usage="", output_opts=False, runas_opts=False, meta_opts=False, runtask_opts=False, vault_opts=False, module_opts=False,
async_opts=False, connect_opts=False, subset_opts=False, check_opts=False, inventory_opts=False, epilog=None, fork_opts=False,
runas_prompt_opts=False, desc=None):
runas_prompt_opts=False, desc=None, basedir_opts=False):
''' create an options parser for most ansible scripts '''

# base opts
Expand Down Expand Up @@ -546,6 +546,10 @@ def base_parser(usage="", output_opts=False, runas_opts=False, meta_opts=False,
parser.add_option('--flush-cache', dest='flush_cache', action='store_true',
help="clear the fact cache")

if basedir_opts:
parser.add_option('--playbook-dir', default=None, dest='basedir', action='store',
help="Since this tool does not use playbooks, use this as a subsitute playbook directory."
"This sets the relative path for many features including roles/ group_vars/ etc.")
return parser

@abstractmethod
Expand Down Expand Up @@ -775,6 +779,10 @@ def _play_prereqs(options):
# all needs loader
loader = DataLoader()

basedir = getattr(options, 'basedir', False)
if basedir:
loader.set_basedir(basedir)

vault_ids = options.vault_ids
default_vault_ids = C.DEFAULT_VAULT_IDENTITY_LIST
vault_ids = default_vault_ids + vault_ids
Expand Down
1 change: 1 addition & 0 deletions lib/ansible/cli/adhoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ def parse(self):
vault_opts=True,
fork_opts=True,
module_opts=True,
basedir_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)",
)
Expand Down
1 change: 1 addition & 0 deletions lib/ansible/cli/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def parse(self):
vault_opts=True,
fork_opts=True,
module_opts=True,
basedir_opts=True,
desc="REPL console for executing Ansible tasks.",
epilog="This is not a live session/connection, each task executes in the background and returns it's results."
)
Expand Down
3 changes: 2 additions & 1 deletion lib/ansible/cli/inventory.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ def parse(self):
usage='usage: %prog [options] [host|group]',
epilog='Show Ansible inventory information, by default it uses the inventory script JSON format',
inventory_opts=True,
vault_opts=True
vault_opts=True,
basedir_opts=True,
)

# Actions
Expand Down