github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/libnetwork/Vagrantfile (about) 1 # -*- mode: ruby -*- 2 # vi: set ft=ruby : 3 4 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 5 VAGRANTFILE_API_VERSION = "2" 6 7 $consul=<<SCRIPT 8 apt-get update 9 apt-get -y install wget 10 wget -qO- https://experimental.docker.com/ | sh 11 gpasswd -a vagrant docker 12 service docker restart 13 docker run -d -p 8500:8500 -p 8300-8302:8300-8302/tcp -p 8300-8302:8300-8302/udp -h consul progrium/consul -server -bootstrap 14 SCRIPT 15 16 $bootstrap=<<SCRIPT 17 apt-get update 18 apt-get -y install wget curl 19 apt-get -y install bridge-utils 20 wget -qO- https://experimental.docker.com/ | sh 21 gpasswd -a vagrant docker 22 echo DOCKER_OPTS=\\"--cluster-store=consul://192.168.33.10:8500 --cluster-advertise=${1}:0\\" >> /etc/default/docker 23 cp /vagrant/docs/vagrant-systemd/docker.service /etc/systemd/system/ 24 systemctl daemon-reload 25 systemctl restart docker.service 26 SCRIPT 27 28 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 29 config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" 30 num_nodes = 2 31 base_ip = "192.168.33." 32 net_ips = num_nodes.times.collect { |n| base_ip + "#{n+11}" } 33 34 config.vm.define "consul-server" do |consul| 35 consul.vm.box = "ubuntu/trusty64" 36 consul.vm.hostname = "consul-server" 37 consul.vm.network :private_network, ip: "192.168.33.10" 38 consul.vm.provider "virtualbox" do |vb| 39 vb.customize ["modifyvm", :id, "--memory", "512"] 40 end 41 consul.vm.provision :shell, inline: $consul 42 end 43 44 num_nodes.times do |n| 45 config.vm.define "net-#{n+1}" do |net| 46 net.vm.box = "ubuntu/xenial64" 47 net_ip = net_ips[n] 48 net_index = n+1 49 net.vm.hostname = "net-#{net_index}" 50 net.vm.provider "virtualbox" do |vb| 51 vb.customize ["modifyvm", :id, "--memory", "1024"] 52 end 53 net.vm.network :private_network, ip: "#{net_ip}" 54 net.vm.provision :shell, inline: $bootstrap, :args => "#{net_ip}" 55 end 56 end 57 58 end