88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable File
		
	
	
	
	
# -*- mode: ruby -*-
 | 
						|
# vi: set ft=ruby :
 | 
						|
 | 
						|
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
 | 
						|
VAGRANTFILE_API_VERSION = "2"
 | 
						|
 | 
						|
# Convenience function for running Postgres commands. Accesses via temporarily-linked container.
 | 
						|
def postgres(cmd)
 | 
						|
  "docker run --rm --link postgres:postgres -u postgres postgres:9.3 #{cmd}"
 | 
						|
end
 | 
						|
 | 
						|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 | 
						|
 | 
						|
  # All Vagrant configuration is done here. The most common configuration
 | 
						|
  # options are documented and commented below. For a complete reference,
 | 
						|
  # please see the online documentation at vagrantup.com.
 | 
						|
 | 
						|
  # Create a private network, which allows host-only access to the machine
 | 
						|
  # using a specific IP.
 | 
						|
  # config.vm.network "private_network", ip: "192.168.33.10"
 | 
						|
 | 
						|
  # Create a public network, which generally matched to bridged network.
 | 
						|
  # Bridged networks make the machine appear as another physical device on
 | 
						|
  # your network.
 | 
						|
  # config.vm.network "public_network"
 | 
						|
 | 
						|
  # If true, then any SSH connections made will enable agent forwarding.
 | 
						|
  # Default value: false
 | 
						|
  # config.ssh.forward_agent = true
 | 
						|
 | 
						|
  # Share an additional folder to the guest VM. The first argument is
 | 
						|
  # the path on the host to the actual folder. The second argument is
 | 
						|
  # the path on the guest to mount the folder. And the optional third
 | 
						|
  # argument is a set of non-required options.
 | 
						|
  # config.vm.synced_folder "../data", "/vagrant_data"
 | 
						|
 | 
						|
  # Provider-specific configuration so you can fine-tune various
 | 
						|
  # backing providers for Vagrant. These expose provider-specific options.
 | 
						|
  # Example for VirtualBox:
 | 
						|
  #
 | 
						|
  config.vm.provider "virtualbox" do |vb|
 | 
						|
  #   # Don't boot with headless mode
 | 
						|
  #   vb.gui = true
 | 
						|
  #
 | 
						|
  #   # Use VBoxManage to customize the VM. For example to change memory:
 | 
						|
  #   vb.customize ["modifyvm", :id, "--memory", "1024"]
 | 
						|
    vb.memory = 1024
 | 
						|
  end
 | 
						|
  #
 | 
						|
  # View the documentation for the provider you're using for more
 | 
						|
  # information on available options.  # Enable provisioning with CFEngine. CFEngine Community packages are
 | 
						|
 | 
						|
  config.vm.define :hearth do |hearth|
 | 
						|
 | 
						|
    hearth.vm.box = "ubuntu/trusty64"
 | 
						|
 | 
						|
    hearth.vm.hostname = "hearth"
 | 
						|
 | 
						|
    hearth.vm.network :forwarded_port, guest: 80, host: 8080
 | 
						|
 | 
						|
    hearth.vm.provision :docker do |d|
 | 
						|
      d.pull_images "postgres:9.3"
 | 
						|
      d.build_image "/vagrant/docker/thefnf/freeradius", args: "-t thefnf/freeradius"
 | 
						|
      d.build_image "/vagrant/docker/thefnf/odoo", args: "-t thefnf/odoo"
 | 
						|
      d.run "thefnf/freeradius", args: "--name radius -p :1813:1813 -p :1863:1863"
 | 
						|
      d.run "postgres:9.3", args: "--name postgres"
 | 
						|
    end
 | 
						|
 | 
						|
    hearth.vm.provision :shell, inline: """
 | 
						|
      sleep 5 # Give Postgres a chance to start
 | 
						|
      #{postgres("psql -h postgres -c \"CREATE USER odoo WITH UNENCRYPTED PASSWORD 'password' CREATEDB;\"")}
 | 
						|
    """
 | 
						|
 | 
						|
    hearth.vm.provision :docker do |d|
 | 
						|
      d.run "thefnf/odoo", args: "--name odoo --link postgres:postgres -p :80:8069"
 | 
						|
    end
 | 
						|
 | 
						|
  end
 | 
						|
 | 
						|
  config.vm.define :freedomlink do |fl|
 | 
						|
 | 
						|
    fl.vm.box = "box-cutter/debian76"
 | 
						|
 | 
						|
    fl.vm.hostname = "freedomlink"
 | 
						|
 | 
						|
  end
 | 
						|
 | 
						|
end |