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
in the root directory of this project.
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
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 configuring options read the Vagrant AWS Provider's README