Skip to content

Instantly share code, notes, and snippets.

@dbalabka
Created December 12, 2014 17:12
Show Gist options
  • Save dbalabka/f09c953d04f488f45b1d to your computer and use it in GitHub Desktop.
Save dbalabka/f09c953d04f488f45b1d to your computer and use it in GitHub Desktop.
Vagrant VM with PHP, HHVM and ElasticSearch
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
$build_script = <<SCRIPT
apt-get update
echo Installing HHVM...
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install -y hhvm
echo Installing PHP...
sudo apt-get install -y php5 php5-cli php5-curl php5-fpm php5-intl php5-ldap php5-apcu php5-mysql
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
echo Installing ElasticSearch...
sudo wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
echo deb http://packages.elasticsearch.org/elasticsearch/1.2/debian stable main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install -y openjdk-7-jre-headless elasticsearch
sudo update-rc.d elasticsearch defaults 95 10
sudo /etc/init.d/elasticsearch start
echo Check Elastic server...
curl http://127.0.0.1:9200
echo Installing Other deps. ...
sudo apt-get install -y git
SCRIPT
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.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu/trusty64"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
# config.vm.box_url = "http://domain.com/path/to/above.box"
# 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"
# If true, then any SSH connections made will enable agent forwarding.
# Default value: false
# config.ssh.forward_agent = true
config.vm.synced_folder "./", "/home/vagrant/share/"
config.vm.provider :virtualbox do |vb|
vb.name = "OpCart VM"
vb.customize ["modifyvm", :id, "--memory", "5642"]
vb.customize ["modifyvm", :id, "--cpus", "4"]
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
vb.customize ["modifyvm", :id, "--nestedpaging", "on"]
end
config.vm.provision :shell, inline: $build_script
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment