Last active
March 7, 2016 21:37
-
-
Save alanrsoares/21633dd9c7574bb7195b to your computer and use it in GitHub Desktop.
UXE Vagrantfile
This file contains hidden or 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 : | |
| # Config Github Settings | |
| github_username = "fideloper" | |
| github_repo = "Vaprobash" | |
| github_branch = "1.4.2" | |
| github_url = "https://raw.githubusercontent.com/#{github_username}/#{github_repo}/#{github_branch}" | |
| # Because this:https://developer.github.com/changes/2014-12-08-removing-authorizations-token/ | |
| # https://github.com/settings/tokens | |
| github_pat = "" | |
| # Server Configuration | |
| hostname = "uxe.dev" | |
| # Set a local private network IP address. | |
| # See http://en.wikipedia.org/wiki/Private_network for explanation | |
| # You can use the following IP ranges: | |
| # 10.0.0.1 - 10.255.255.254 | |
| # 172.16.0.1 - 172.31.255.254 | |
| # 192.168.0.1 - 192.168.255.254 | |
| server_ip = "192.168.22.10" | |
| server_cpus = "2" # Cores | |
| server_memory = "384" # MB | |
| server_swap = "768" # Options: false | int (MB) - Guideline: Between one or two times the server_memory | |
| # UTC for Universal Coordinated Time | |
| # EST for Eastern Standard Time | |
| # CET for Central European Time | |
| # US/Central for American Central | |
| # US/Eastern for American Eastern | |
| server_timezone = "UTC" | |
| # Languages and Packages | |
| ruby_version = "latest" # Choose what ruby version should be installed (will also be the default version) | |
| ruby_gems = [ # List any Ruby Gems that you want to install | |
| #"jekyll", | |
| #"sass", | |
| #"compass", | |
| ] | |
| # Default web server document root | |
| public_folder = "/vagrant" | |
| nodejs_version = "latest" # By default "latest" will equal the latest stable version | |
| nodejs_packages = [ # List any global NodeJS packages that you want to install | |
| #"grunt-cli", | |
| #"gulp", | |
| #"bower", | |
| #"yo", | |
| ] | |
| Vagrant.configure("2") do |config| | |
| # Set server to Ubuntu 14.04 | |
| config.vm.box = "ubuntu/trusty64" | |
| config.vm.define "Vaprobash" do |vapro| | |
| end | |
| if Vagrant.has_plugin?("vagrant-hostmanager") | |
| config.hostmanager.enabled = true | |
| config.hostmanager.manage_host = true | |
| config.hostmanager.ignore_private_ip = false | |
| config.hostmanager.include_offline = false | |
| end | |
| # Create a hostname, don't forget to put it to the `hosts` file | |
| # This will point to the server's default virtual host | |
| # TO DO: Make this work with virtualhost along-side xip.io URL | |
| config.vm.hostname = hostname | |
| # Create a static IP | |
| if Vagrant.has_plugin?("vagrant-auto_network") | |
| config.vm.network :private_network, :ip => "0.0.0.0", :auto_network => true | |
| else | |
| config.vm.network :private_network, ip: server_ip | |
| config.vm.network :forwarded_port, guest: 80, host: 8000 | |
| end | |
| # Enable agent forwarding over SSH connections | |
| config.ssh.forward_agent = true | |
| # Use NFS for the shared folder | |
| config.vm.synced_folder ".", "/vagrant", | |
| id: "core", | |
| :nfs => true, | |
| :mount_options => ['nolock,vers=3,udp,noatime,actimeo=2,fsc'] | |
| # Replicate local .gitconfig file if it exists | |
| if File.file?(File.expand_path("~/.gitconfig")) | |
| config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig" | |
| end | |
| # If using VirtualBox | |
| config.vm.provider :virtualbox do |vb| | |
| vb.name = hostname | |
| # Set server cpus | |
| vb.customize ["modifyvm", :id, "--cpus", server_cpus] | |
| # Set server memory | |
| vb.customize ["modifyvm", :id, "--memory", server_memory] | |
| # Set the timesync threshold to 10 seconds, instead of the default 20 minutes. | |
| # If the clock gets more than 15 minutes out of sync (due to your laptop going | |
| # to sleep for instance, then some 3rd party services will reject requests. | |
| vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000] | |
| # Prevent VMs running on Ubuntu to lose internet connection | |
| # vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] | |
| # vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] | |
| end | |
| #### | |
| # Base Items | |
| ########## | |
| # Provision Base Packages | |
| config.vm.provision "shell", path: "#{github_url}/scripts/base.sh", args: [github_url, server_swap, server_timezone] | |
| # optimize base box | |
| config.vm.provision "shell", path: "#{github_url}/scripts/base_box_optimizations.sh", privileged: true | |
| # Provision Vim | |
| # config.vm.provision "shell", path: "#{github_url}/scripts/vim.sh", args: github_url | |
| #### | |
| # Additional Languages | |
| ########## | |
| # Install Nodejs | |
| config.vm.provision "shell", path: "#{github_url}/scripts/nodejs.sh", privileged: false, args: nodejs_packages.unshift(nodejs_version, github_url) | |
| # Install Ruby Version Manager (RVM) | |
| config.vm.provision "shell", path: "#{github_url}/scripts/rvm.sh", privileged: false, args: ruby_gems.unshift(ruby_version) | |
| #### | |
| # Local Scripts | |
| # Any local scripts you may want to run post-provisioning. | |
| # Add these to the same directory as the Vagrantfile. | |
| ########## | |
| # config.vm.provision "shell", path: "./local-script.sh" | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment