86 lines
3 KiB
Markdown
86 lines
3 KiB
Markdown
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:
|
|
|
|
```ruby
|
|
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.
|
|
|
|
```yaml
|
|
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`.
|
|
|
|
```yaml
|
|
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.
|
|
|
|
```ruby
|
|
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](https://github.com/mitchellh/vagrant-aws#readme)._
|
|
|
|
### Example: Using Drupal VM behind a corporate proxy with `vagrant-proxyconf`
|
|
|
|
Add the following variables to your `config.yml`.
|
|
|
|
```yaml
|
|
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.
|
|
|
|
```ruby
|
|
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](https://github.com/tmatilai/vagrant-proxyconf#readme)._
|