blob: 1a9f65069f15eaaad1180be1b32b83976333b1a6 [file] [log] [blame]
#
# Copyright 2016 The Charles Stark Draper Laboratory
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
Vagrant.configure(2) do |config|
# Setting proxy configurations for the host box. This also sets common proxy settings
# and files for other applications, such as apt-get/yum
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.http = "http://plcyber06.draper.com:3128"
config.proxy.https = "http://plcyber06.draper.com:3128"
config.proxy.no_proxy = "localhost, 127.0.0.1"
end
config.vm.define "elk" do |elk|
elk.vm.box = "ubuntu/trusty64"
# Change the default elk vagrant box folder to point to the
# elk directory within the project. This will allow separation between
# elk and developer folders.
elk.vm.synced_folder "dashboard/", "/vagrant"
# Network configuration:
# - Setups a static IP address to allow the client Vagrant box
# to know where to connect within the local network of Vagrant
# boxes.
# - Expose the following ports to be used within this box to
# host data being sent between the web server and the ELK server.
elk.vm.network "private_network", ip: "192.16.1.100"
# Provisioner: Runs the provisioning script that will provision
# the vagrant box for the first time, or forced.
elk.vm.provision "shell" do |s|
s.path = "dashboard/scripts/install.sh"
s.privileged = false
end
# Provisioner: Run this script always. This allows the box to setup
# the elk server and web service all the times. This could be done
# in an initrc file, but this will do.
elk.vm.provision "shell", path: "dashboard/scripts/restart.sh", run: "always"
elk.ssh.forward_x11 = true
# Host configuration: Set specific requirements for the host to
# provide the Guest Box to use.
elk.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--cpus", "2", "--memory", "2048"]
end
end
config.vm.define "developer" do |dev|
# Specify a base virtual machine that is based on Ubuntu Trusty Tahr
dev.vm.box = "ubuntu/trusty64"
# Change the default client vagrant box folder to point to the
# client directory within the project. This will allow separation between
# client and server folders.
dev.vm.synced_folder "client/", "/vagrant"
# Setup a static IP to allow both vagrant boxes to know where
# to contact each other. This will allow communication between the
# web developer and the logging server.
dev.vm.network "private_network", ip: "192.16.1.10"
# Specify the provisioning script that will be used in order to
# install the necessary files needed for this vagrant box
dev.vm.provision "shell", inline: "twistd -y /vagrant/twisted_client.py &", run: "always"
end
end