Skip to content

Instantly share code, notes, and snippets.

@andreyev
Last active March 7, 2016 13:13
Show Gist options
  • Select an option

  • Save andreyev/3f02e182a26c3bcd09f6 to your computer and use it in GitHub Desktop.

Select an option

Save andreyev/3f02e182a26c3bcd09f6 to your computer and use it in GitHub Desktop.
multi-provider-vagrantfile
general.private_key_path: ''
vb.memory: ''
vb.cpus: ''
vb.box: ''
do.token: ''
do.image: ''
do.region: ''
do.size: ''
aws.access_key_id: ''
aws.secret_access_key: ''
aws.session_token: ''
aws.keypair_name: ''
aws.ami: ''
aws.region: ''
aws.instance_type: ''
aws.yourname: ''
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'yaml'
settings = YAML::load_file(File.join(__dir__, 'vagrant-local-settings.yml'))
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.synced_folder ".", "/vagrant"
config.vm.provision "shell", path: "provision.sh"
config.vm.provider "virtualbox" do |provider, override|
override.vm.network "private_network", type: "dhcp"
override.vm.box = settings['vb.box']
override.cache.scope = :box
provider.memory = settings['vb.memory']
provider.cpus = settings['vb.cpus']
end
config.vm.provider :digital_ocean do |provider, override|
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"
provider.token = settings['do.token']
provider.image = settings['do.image']
provider.region = settings['do.region']
provider.size = settings['do.size']
provider.setup = true
override.ssh.private_key_path = settings['general.private_key_path']
end
config.vm.provider :aws do |provider, override|
provider.access_key_id = settings['aws.access_key_id']
provider.secret_access_key = settings['aws.secret_access_key']
provider.keypair_name = settings['aws.keypair_name']
provider.ami = settings['aws.ami']
provider.region = settings['aws.region']
provider.instance_type = settings['aws.instance_type']
provider.keypair_name = settings['aws.keypair_name']
override.ssh.private_key_path = settings['general.private_key_path']
override.ssh.username = settings['aws.ssh_username']
end
config.vm.define "master" do |master|
master.vm.hostname = "master"
master.vm.provider :aws do |provider, override|
provider.tags = { 'Name' => 'master-' + settings['aws.yourname'], }
end
end
config.vm.define "agent" do |agent|
agent.vm.hostname = "agent"
agent.vm.provider :aws do |provider, override|
provider.tags = { 'Name' => 'agent-' + settings['aws.yourname'], }
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment