Create single method to provide all overridden values

This commit is contained in:
Chris Thompson 2018-08-23 22:56:43 -04:00
parent e0d288a095
commit ac26550734
3 changed files with 23 additions and 7 deletions

11
box/Vagrantfile vendored
View file

@ -27,6 +27,10 @@ vconfig = load_config([
"#{host_config_dir}/local.config.yml" "#{host_config_dir}/local.config.yml"
]) ])
# Override all drupalvm.test values according to project root:
require (File.expand_path('drutopiavm', host_config_dir))
set_overrides_per_project(vconfig)
provisioner = vconfig['force_ansible_local'] ? :ansible_local : vagrant_provisioner provisioner = vconfig['force_ansible_local'] ? :ansible_local : vagrant_provisioner
if provisioner == :ansible if provisioner == :ansible
playbook = "#{host_drupalvm_dir}/provisioning/playbook.yml" playbook = "#{host_drupalvm_dir}/provisioning/playbook.yml"
@ -42,15 +46,12 @@ Vagrant.require_version ">= #{vconfig['drupalvm_vagrant_version_min']}"
ensure_plugins(vconfig['vagrant_plugins']) ensure_plugins(vconfig['vagrant_plugins'])
# Acquire a hostname from the project root
vm_hostname = File.basename(ENV['DRUPALVM_PROJECT_ROOT']).gsub("_", "-")
Vagrant.configure('2') do |config| Vagrant.configure('2') do |config|
# Set the name of the VM. See: http://stackoverflow.com/a/17864388/100134 # Set the name of the VM. See: http://stackoverflow.com/a/17864388/100134
config.vm.define "#{vm_hostname}.local" #vconfig['vagrant_machine_name'] config.vm.define vconfig['vagrant_machine_name']
# Networking configuration # Networking configuration
config.vm.hostname = "#{vm_hostname}-coop-vm" #vconfig['vagrant_hostname'] config.vm.hostname = vconfig['vagrant_hostname']
config.vm.network :private_network, config.vm.network :private_network,
ip: vconfig['vagrant_ip'], ip: vconfig['vagrant_ip'],
auto_network: vconfig['vagrant_ip'] == '0.0.0.0' && Vagrant.has_plugin?('vagrant-auto_network') auto_network: vconfig['vagrant_ip'] == '0.0.0.0' && Vagrant.has_plugin?('vagrant-auto_network')

View file

@ -0,0 +1,15 @@
def set_overrides_per_project(config)
# Acquire a hostname from the project root
project_dir_name = File.basename(ENV['DRUPALVM_PROJECT_ROOT']).gsub("_", "-")
host_name = "#{project_dir_name}.test"
# Override all vconfig values with the new names
config['vagrant_hostname'] = host_name
config['vagrant_machine_name'] = "#{project_dir_name}-vm"
config['drupal_domain'] = host_name
config['hostname_fqdn'] =
config['apache_vhosts'].each do |host|
host['servername'].sub!('drupalvm.test', host_name)
host['serveralias'].gsub!('drupalvm.test', host_name) if host['serveralias']
end
end

View file

@ -15,5 +15,5 @@
# See also provisioning/box/config # See also provisioning/box/config
- name: set vagrant hostname according to the project folder - name: set vagrant hostname according to the project folder
set_fact: set_fact:
vagrant_hostname: "{{ proj_root_safe }}.local" vagrant_hostname: "{{ proj_root_safe }}.test"
vagrant_machine_name: "{{ proj_root_safe }}-coop-vm" vagrant_machine_name: "{{ proj_root_safe }}-vm"