# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure(2) do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "hansode/fedora-21-server-x86_64" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # config.vm.network "forwarded_port", guest: 80, host: 8080 # 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" # 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" config.vm.synced_folder "../../", "/srv/forj" lorj = false if ENV.key?('lorj_src') lorj_src = File.expand_path(ENV['lorj_src']) git_data = File.join(lorj_src, '.git', 'config') if File.exist?(git_data) && open(git_data) { |f| f.grep(/forj-oss\/lorj/) } config.vm.synced_folder ENV['lorj_src'], "/srv/lorj" lorj=true end end src_data = {} if ENV.key?('src') # Support ':cmd1[;cmd2[;...]];|[path2:cmd3...]' src_list = ENV['src'].split(';|') src_list.each do |src| src_name, cmd = src.split(':') src_data[src_name] = cmd config.vm.synced_folder src_name, File.join('/srv', File.basename(src_name)) end end # 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| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # # Customize the amount of memory on the VM: # vb.memory = "1024" # end # # View the documentation for the provider you are using for more # information on available options. # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies # such as FTP and Heroku are also available. See the documentation at # https://docs.vagrantup.com/v2/push/atlas.html for more information. # config.push.define "atlas" do |push| # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" # end # Enable provisioning with a shell script. Additional provisioners such as # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline <<-SHELL # sudo apt-get install apache2 # SHELL if Vagrant.has_plugin?("vagrant-proxyconf") config.proxy.http = ENV['http_proxy'] if ENV.key?('http_proxy') config.proxy.https = ENV['https_proxy'] if ENV.key?('https_proxy') config.proxy.no_proxy = ENV['no_proxy'] if ENV.key?('no_proxy') end priv = { privileged: true } config.vm.provision "shell", priv.merge(inline: "yum install ruby-devel libxml2-devel libxslt-devel python-yaml gcc git tar patch gcc-c++ -y") config.vm.provision "shell", inline: "gem install bundler --no-rdoc --no-ri" config.vm.provision "shell", inline: "gem install rake --no-rdoc --no-ri" config.vm.provision "shell", inline: "echo 'PATH=$PATH:/usr/local/bin' >> /etc/profile.d/local.sh" src_data.each do |key, value| path = File.join('/srv', File.basename(key)) value = "echo 'Nothing more to do in #{path}'" if value.nil? config.vm.provision "shell", inline: "cd #{path} ; #{value}" end config.vm.provision "shell", inline: "/srv/forj/vagrant/configure/install.sh" config.vm.provision "shell", inline: "echo \"echo 'Call sudo /srv/forj/vagrant/configure/install.sh to reinstall forj/lorj from source'\" >> ~vagrant/.bash_profile" end