Make ansible-playbook command configurable

The ansible-playbook command is currently hardcoded for the ansible and
ansible_local provisioners. This patch adds the config option
playbook_command to allow the user to change the command.
This commit is contained in:
Daniel Gonzalez 2016-10-09 20:48:50 +02:00
parent d178631ff9
commit 58f2b0c8c7
5 changed files with 25 additions and 19 deletions

View File

@ -4,6 +4,7 @@ module VagrantPlugins
class Base < Vagrant.plugin("2", :config)
GALAXY_COMMAND_DEFAULT = "ansible-galaxy install --role-file=%{role_file} --roles-path=%{roles_path} --force".freeze
PLAYBOOK_COMMAND_DEFAULT = "ansible-playbook".freeze
attr_accessor :extra_vars
attr_accessor :galaxy_role_file
@ -14,6 +15,7 @@ module VagrantPlugins
attr_accessor :inventory_path
attr_accessor :limit
attr_accessor :playbook
attr_accessor :playbook_command
attr_accessor :raw_arguments
attr_accessor :skip_tags
attr_accessor :start_at_task
@ -33,6 +35,7 @@ module VagrantPlugins
@inventory_path = UNSET_VALUE
@limit = UNSET_VALUE
@playbook = UNSET_VALUE
@playbook_command = UNSET_VALUE
@raw_arguments = UNSET_VALUE
@skip_tags = UNSET_VALUE
@start_at_task = UNSET_VALUE
@ -53,6 +56,7 @@ module VagrantPlugins
@inventory_path = nil if @inventory_path == UNSET_VALUE
@limit = nil if @limit == UNSET_VALUE
@playbook = nil if @playbook == UNSET_VALUE
@playbook_command = PLAYBOOK_COMMAND_DEFAULT if @playbook_command == UNSET_VALUE
@raw_arguments = nil if @raw_arguments == UNSET_VALUE
@skip_tags = nil if @skip_tags == UNSET_VALUE
@start_at_task = nil if @start_at_task == UNSET_VALUE

View File

@ -44,7 +44,7 @@ module VagrantPlugins
end
end
shell_command << "ansible-playbook"
shell_command << config.playbook_command
shell_args = []
@command_arguments.each do |arg|

View File

@ -113,7 +113,7 @@ module VagrantPlugins
prepare_environment_variables
# Assemble the full ansible-playbook command
command = %w(ansible-playbook) << @command_arguments
command = [config.playbook_command] << @command_arguments
# Add the raw arguments at the end, to give them the highest precedence
command << config.raw_arguments if config.raw_arguments

View File

@ -27,6 +27,7 @@ describe VagrantPlugins::Ansible::Config::Guest do
inventory_path
limit
playbook
playbook_command
provisioning_path
raw_arguments
skip_tags

View File

@ -26,6 +26,7 @@ describe VagrantPlugins::Ansible::Config::Host, :skip_windows => true do
inventory_path
limit
playbook
playbook_command
raw_arguments
raw_ssh_args
skip_tags