Last active
August 29, 2015 13:57
-
-
Save p0deje/9409798 to your computer and use it in GitHub Desktop.
Vagrantfile to develop and test Vagrant for Linux using DigitalOcean
This file contains 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
# I'm running OS X and I need to develop and test Vagrant features | |
# which are specific to Linux-only, i.e. I need "physical" Linux machine. | |
# I've finally stuck with creating DigitalOcean VM and installing | |
# everything necessary for development there. It's magical | |
# Vagrant-powered Vagrant-development Vagrantfile. | |
# | |
# First, start the VM which will be the host: | |
# $ vagrant up host --provider=digital_ocean | |
# | |
# Now, you can start VM in VM which will be used for Vagrant testing: | |
# $ vagrant ssh host | |
# $ cd /vagrant | |
# $ bundle install | |
# $ bundle exec box add --name virtualbox http://files.vagrantup.com/precise32.box | |
# $ bundle exec vagrant up guest | |
# | |
# That's it! | |
# | |
# P.S. @vshvedov, you should love this! | |
Vagrant.configure('2') do |config| | |
config.vm.define 'host' do |host| | |
host.vm.box = 'digital_ocean' | |
host.vm.box_url = 'https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box' | |
host.ssh.username = 'vagrant' | |
host.ssh.private_key_path = '~/.ssh/id_rsa' | |
host.vm.provider :digital_ocean do |digital_ocean| | |
digital_ocean.image = 'Ubuntu 12.04.3 x64' | |
digital_ocean.client_id = 'CLIENT_ID' | |
digital_ocean.api_key = 'API_KEY' | |
digital_ocean.region = 'Amsterdam 2' | |
digital_ocean.size = '2GB' | |
end | |
host.vm.provision :shell, inline: <<-SH | |
set -x | |
apt-get -y update | |
apt-get install -y git-core | |
apt-get install -y curl | |
apt-get install -y zlib1g-dev | |
apt-get install -y build-essential | |
apt-get install -y libssl-dev | |
apt-get install -y libreadline-dev | |
apt-get install -y libyaml-dev | |
apt-get install -y libxml2-dev | |
apt-get install -y libxslt1-dev | |
apt-get install -y bsdtar | |
apt-get install -y nfs-kernel-server | |
apt-get install -y linux-headers-generic | |
apt-get install -y linux-headers-`uname -r` | |
apt-get install -y virtualbox | |
wget http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.0.tar.gz | |
tar -xzvf ruby-2.1.0.tar.gz | |
cd ruby-2.1.0/ | |
./configure | |
make | |
make install | |
gem install bundler --no-ri --no-rdoc | |
SH | |
end | |
config.vm.define 'guest' do |guest| | |
guest.vm.box = 'virtualbox' | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Provider-agnostic, zero dependencies, never breaks style :)