-
-
Save stevepereira/41fb2818491ea35dad79 to your computer and use it in GitHub Desktop.
So far both rsync and nfs both suck - tail -f in docker container doesn't hear the modify but the file does update (used with vagrant rsync-auto in combination with rsync)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- mode: ruby -*- | |
# # vi: set ft=ruby : | |
require 'fileutils' | |
CLOUD_CONFIG_PATH = File.join(File.dirname(__FILE__), "user-data") | |
CONFIG = File.join(File.dirname(__FILE__), "config.rb") | |
# Defaults for config options defined in CONFIG | |
$num_instances = 1 | |
$update_channel = "beta" | |
$enable_serial_logging = false | |
$vb_gui = false | |
$vb_memory = 2000 | |
$vb_cpus = 2 | |
# Attempt to apply the deprecated environment variable NUM_INSTANCES to | |
# $num_instances while allowing config.rb to override it | |
if ENV["NUM_INSTANCES"].to_i > 0 && ENV["NUM_INSTANCES"] | |
$num_instances = ENV["NUM_INSTANCES"].to_i | |
end | |
if File.exist?(CONFIG) | |
require CONFIG | |
end | |
Vagrant.configure("2") do |config| | |
config.vm.box = "coreos-%s" % $update_channel | |
config.vm.box_version = ">= 440.0.0" | |
config.vm.box_url = "http://%s.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json" % $update_channel | |
config.vm.provider :vmware_fusion do |vb, override| | |
override.vm.box_url = "http://%s.release.core-os.net/amd64-usr/current/coreos_production_vagrant_vmware_fusion.json" % $update_channel | |
end | |
config.vm.provider :virtualbox do |v| | |
# On VirtualBox, we don't have guest additions or a functional vboxsf | |
# in CoreOS, so tell Vagrant that so it can be smarter. | |
v.check_guest_additions = false | |
v.functional_vboxsf = false | |
end | |
# plugin conflict | |
if Vagrant.has_plugin?("vagrant-vbguest") then | |
config.vbguest.auto_update = false | |
end | |
(1..$num_instances).each do |i| | |
config.vm.define vm_name = "core-%02d" % i do |config| | |
config.vm.hostname = vm_name | |
if $enable_serial_logging | |
logdir = File.join(File.dirname(__FILE__), "log") | |
FileUtils.mkdir_p(logdir) | |
serialFile = File.join(logdir, "%s-serial.txt" % vm_name) | |
FileUtils.touch(serialFile) | |
config.vm.provider :vmware_fusion do |v, override| | |
v.vmx["serial0.present"] = "TRUE" | |
v.vmx["serial0.fileType"] = "file" | |
v.vmx["serial0.fileName"] = serialFile | |
v.vmx["serial0.tryNoRxLoss"] = "FALSE" | |
end | |
config.vm.provider :virtualbox do |vb, override| | |
vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"] | |
vb.customize ["modifyvm", :id, "--uartmode1", serialFile] | |
vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] | |
end | |
end | |
if $expose_docker_tcp | |
config.vm.network "forwarded_port", guest: 2375, host: ($expose_docker_tcp + i - 1), auto_correct: true | |
end | |
config.vm.provider :vmware_fusion do |vb| | |
vb.gui = $vb_gui | |
end | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = $vb_gui | |
vb.memory = $vb_memory | |
vb.cpus = $vb_cpus | |
end | |
#ip = "172.17.8.#{i+100}" | |
config.vm.network :private_network, ip: "10.2.0.10", netmask: "255.255.0.0" | |
config.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: true | |
config.vm.network "forwarded_port", guest: 8989, host: 8989, auto_correct: true | |
config.vm.network "forwarded_port", guest: 9200, host: 9200, auto_correct: true | |
config.vm.network "forwarded_port", guest: 9300, host: 9300, auto_correct: true | |
config.vm.network "forwarded_port", guest: 4243, host: 4243, auto_correct: true | |
config.vm.network "forwarded_port", guest: 2375, host: 2375, auto_correct: true | |
config.vm.network "forwarded_port", guest: 5432, host: 5432, auto_correct: true | |
(49000..49900).each do |port| | |
config.vm.network :forwarded_port, :host => port, :guest => port | |
end | |
config.vm.network "private_network", ip: "10.1.2.3" | |
#config.vm.synced_folder ENV["PWD"], ENV["PWD"], id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp'] | |
config.vm.synced_folder ENV["PWD"], ENV["PWD"], type: "rsync" | |
# Uncomment below to enable NFS for sharing the host machine into the coreos-vagrant VM. | |
#config.vm.synced_folder ".", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp'] | |
if File.exist?(CLOUD_CONFIG_PATH) | |
config.vm.provision :file, :source => "#{CLOUD_CONFIG_PATH}", :destination => "/tmp/vagrantfile-user-data" | |
config.vm.provision :shell, :inline => "mv /tmp/vagrantfile-user-data /var/lib/coreos-vagrant/", :privileged => true | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment