66 lines
2.4 KiB
Ruby
66 lines
2.4 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
|
|
# This is the Vagrant config file for setting up an environment for Isso development.
|
|
# It requires:
|
|
#
|
|
# * Vagrant (https://vagrantup.com)
|
|
# * A VM engine, like VirtualBox (https://virtualbox.org)
|
|
# * The Vagrant-Hostmanager plugin (https://github.com/smdahlen/vagrant-hostmanager)
|
|
# * Ansible (https://www.ansible.com)
|
|
#
|
|
# With them installed, cd into this directory and do 'vagrant up'. It's possible Vagrant will
|
|
# ask for your root password so it can update your /etc/hosts file. Once it's happily churning out
|
|
# console output, go get a coffee :)
|
|
#
|
|
# The resulting VM should be accessible at http://isso-dev.local/ so you can try the demo page out.
|
|
# Edit files in your checkout as usual. If you need to look at log files and stuff, 'vagrant ssh'
|
|
# to get into the VM. Useful info about it:
|
|
#
|
|
# * Running Ubuntu 14.04
|
|
# * Isso is running on uWSGI
|
|
# * Actual webserver is Nginx to talk to uWSGI over a unix socket
|
|
# * uWSGI log file is /var/log/uwsgi/apps/isso.log
|
|
# * Isso DB file is /var/isso/comments.db
|
|
# * Isso log file is /var/log/isso.log
|
|
#
|
|
# When the VM is getting rebooted vagrant mounts the shared folder after uWSGI is getting startet. To fix this issue for
|
|
# the moment you need to 'vagrant ssh' into the VM and execute 'sudo service uwsgi restart'.
|
|
#
|
|
# For debugging with _pudb_ stop uWSGI service and start it manually
|
|
# 'sudo uwsgi --ini /etc/uwsgi/apps-available/isso.ini'.
|
|
#
|
|
# Enjoy!
|
|
|
|
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.
|
|
|
|
config.vm.box = "ubuntu/trusty32"
|
|
|
|
config.vm.hostname = 'isso-dev.local'
|
|
config.vm.network "private_network", type: "dhcp"
|
|
|
|
config.hostmanager.enabled = true
|
|
config.hostmanager.manage_host = true
|
|
config.hostmanager.ignore_private_ip = false
|
|
config.hostmanager.include_offline = true
|
|
config.hostmanager.ip_resolver = proc do |machine|
|
|
result = ""
|
|
machine.communicate.execute("ifconfig eth1") do |type, data|
|
|
result << data if type == :stdout
|
|
end
|
|
(ip = /inet addr:(\d+\.\d+\.\d+\.\d)/.match(result)) && ip[1]
|
|
end
|
|
|
|
config.vm.provision "ansible" do |ansible|
|
|
ansible.playbook = "ansible/site.yml"
|
|
ansible.limit = "all"
|
|
ansible.verbose = "v"
|
|
end
|
|
|
|
config.vm.post_up_message = "Browse to http://isso-dev.local/demo/index.html to start."
|
|
end
|