Skip to content

Instantly share code, notes, and snippets.

@goldeneggg
Last active August 29, 2015 14:11
Show Gist options
  • Save goldeneggg/93672ad81f6ceca5ed9b to your computer and use it in GitHub Desktop.
Save goldeneggg/93672ad81f6ceca5ed9b to your computer and use it in GitHub Desktop.
template of Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
# config
$docker_port = 4243
$go_version = "1.4"
# machines
$vmconfs = [
{
"name" => "vmubu14app",
"ip" => "192.168.56.122",
"memory" => 1024,
"cpus" => 1,
"forwarded_ports" => {
12280 => 80, # nginx
$docker_port + 20000 => $docker_port # docker api
}
}
]
# provisoners
$pf = "ubuntu14"
$provisioners = [
{"name" => "cui.sh", "root" => true, "args" => []},
{"name" => "nginx.sh", "root" => true, "args" => []},
{"name" => "fastcgi.sh", "root" => true, "args" => []},
{"name" => "golang-src.sh", "root" => true, "args" => [$go_version]}, # args = go_version
{"name" => "docker-src.sh", "root" => true, "args" => [$docker_port]} # args = docker_port
]
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# box
config.vm.box = "ubuntu14_x86"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
# vm define
$vmconfs.each do |vmconf|
config.vm.define vmconf["name"] do |d|
d.vm.hostname = vmconf["name"]
d.vm.network :private_network, ip: vmconf["ip"]
d.vm.provider :virtualbox do |vb|
vb.memory = vmconf["memory"]
vb.cpus = vmconf["cpus"]
end
vmconf["forwarded_ports"].each do |host_port, guest_port|
d.vm.network :forwarded_port, host: host_port, guest: guest_port
end
# provisioning shells
$provisioners.each do |prv|
d.vm.provision :shell do |s|
s.path = "https://raw.githubusercontent.com/goldeneggg/provisioning-bash/master/facade.sh"
s.args = [$pf, prv["name"]] + prv["args"]
s.privileged = prv["root"]
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment