3 KiB
Out of the box Drupal VM supports having VirtualBox, Parallels as well as VMware as a provider. Besides these there are multitude of others available (for example vagrant-aws
, vagrant-digitalocean
). If you want to use an unsupported provider, or otherwise modify the vagrant configuration in a way that is not exposed by Drupal VM, you can create a Vagrantfile.local
next to your config.yml
.
The file will be sourced at the end of the Vagrant.configure
block so you will have access to Vagrant's config.vm
object as well as the contents of the config.yml
file within the vconfig
hash.
To add a configuration just create a Vagrantfile.local
in the root like so:
config.vm.provider :virtualbox do |v|
# Enable GUI mode instead of running a headless machine.
v.gui = true
# Cap the host CPU execution at 50% usage.
v.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
end
Automatically install Vagrant plugins
Drupal VM can be configured to ensure Vagrant plugins are installed by adding them to the vagrant_plugins
list in your config.yml
file.
vagrant_plugins:
- name: vagrant-vbguest
- name: vagrant-hostsupdater
- name: vagrant-aws
Example: Using the vagrant-aws
provider
Add the following variables to your config.yml
.
aws_keypair_name: 'keypair'
aws_ami: 'ami-7747d01e'
aws_tags_name: 'Drupal VM'
aws_ssh_username: 'ubuntu'
aws_ssh_private_key: '~/.ssh/aws.pem'
Create a Vagrantfile.local
in the root directory of your project.
config.vm.provider :aws do |aws, override|
override.nfs.functional = false
aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
aws.keypair_name = vconfig['aws_keypair_name']
aws.tags['Name'] = vconfig['aws_tags_name']
aws.ami = vconfig['aws_ami']
override.ssh.username = vconfig['aws_ssh_username']
override.ssh.private_key_path = vconfig['aws_ssh_private_key']
end
Add the AWS_ACCESS_KEY_ID
and the AWS_SECRET_ACCESS_KEY
environment variables to your shell.
Then run vagrant up --provider=aws
to provision the instance.
For additional configuration options read the Vagrant AWS Provider's README.
Example: Using Drupal VM behind a corporate proxy with vagrant-proxyconf
Add the following variables to your config.yml
.
proxy_http: 'http://192.168.0.2:3128/'
proxy_https: 'http://192.168.0.2:3128/'
proxy_ftp: 'http://192.168.0.2:3128/'
proxy_none: 'localhost,127.0.0.1,{{ drupal_domain }}'
Create a Vagrantfile.local
in the root directory of your project.
if Vagrant.has_plugin?('vagrant-proxyconf')
config.proxy.http = vconfig['proxy_http']
config.proxy.https = vconfig['proxy_https']
config.git_proxy.http = vconfig['proxy_http']
config.proxy.no_proxy = vconfig['proxy_none']
config.proxy.ftp = vconfig['proxy_ftp']
end
For additional configuration options read Vagrant Proxyconf's README.