-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVagrantfile
More file actions
74 lines (54 loc) · 2.39 KB
/
Vagrantfile
File metadata and controls
74 lines (54 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# -*- mode: ruby -*-
# vim: set ft=ruby ts=2 sw=2 et sts=2 :
VAGRANTFILE_API_VERSION = "2"
CURRENT_USER = `whoami`.chomp
SHORT_NAME = "myapp"
# our script to install the stackstrap states on the vagrant box
$stackstrap_salt_script = <<SCRIPT
# install git
salt-call pkg.install git
# setup our /srv directory
# TODO: make the GIT URL & ref configurable
cd /tmp
git clone https://github.com/mikeislearning/stackstrap-salt.git stackstrap-salt
cd stackstrap-salt
git archive master --prefix=/srv/ | (cd /; tar xf -)
SCRIPT
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.hostname = "#{SHORT_NAME}-#{CURRENT_USER}"
config.vm.box = "trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.network :public_network
config.ssh.forward_agent = true
config.vm.synced_folder ".", "/home/vagrant/domains/#{SHORT_NAME}",
owner: "vagrant",
group: "vagrant",
mount_options: ["dmode=755,fmode=744"]
# provision our box with salt but do not run the highstate yet
# we still need to setup our stackstrap repository after salt is installed
config.vm.provision :salt do |salt|
salt.minion_config = "salt/minion"
# Salt bug in master branch, take from v2014.1.1
salt.install_type = "git"
salt.install_args = "v2014.1.1"
salt.run_highstate = false
end
# get our stackstrap salt repository setup
config.vm.provision :shell, inline: $stackstrap_salt_script
config.vm.provision :shell, inline: "echo NODE_ENV=production >> /home/vagrant/.bashrc && source /home/vagrant/.bashrc"
# SALT BUG fix
config.vm.provision :shell,
inline: "wget -O install_salt.sh http://bootstrap.saltstack.org"
config.vm.provision :shell,
inline: "sudo sh install_salt.sh -P git v0.17.5"
# # Install coffeescript
config.vm.provision :shell,
inline: "apt-get install -y coffeescript"
# now run the highstate
config.vm.provision :shell, inline: "salt-call state.highstate"
# Start forever server that nginx points to
config.vm.provision :shell,
inline: ".nvm/v0.10.29/bin/node .nvm/v0.10.29/bin/forever start -c coffee domains/myapp/app/server.coffee"
config.vm.provision :shell,
inline: "echo; echo; echo \"Your development environment is now configured\"; echo \"You can access it at http://#{SHORT_NAME}-#{CURRENT_USER}.local/\"; echo"
end