Commit 78dcc18e authored by Karsten Wiesner's avatar Karsten Wiesner 💬
Browse files

added initial vagrant environment for the virtual machine that is used to develop on synthlisa

parent 9a46e6c8
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
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.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
# config.vm.box = "hashicorp/precise64"
config.vm.box = "ubuntu/trusty64"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# 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.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# 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"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
vb.customize ["modifyvm", :id, "--memory", "4096"]
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
config.vm.provision :shell, :path => "bootstrap.sh"
end
#!/usr/bin/env bash
sudo apt-get -y update
sudo apt-get -y install git htop emacs23 libfftw3-3 libfftw3-dev
sudo apt-get -y install python-dev
sudo apt-get -y install python-numpy
sudo apt-get -y install ipython
# special for synthlisa:
sudo apt-get install swig2.0
sudo ln /usr/bin/swig2.0 /usr/bin/swig
sudo mkdir /home/vagrant/src
sudo mkdir /home/vagrant/local
# Append to .profile
(
cat <<'EOF'
export SOME_ENV='true'
alias ll='ls -la'
alias clob-all='rm /usr/local/lib/python2.7/dist-packages/lisaxml; git clean -dfx'
EOF
) >> /home/vagrant/.profile
cd /home/vagrant/src
git clone https://github.com/vallis/lisatools
git clone https://github.com/vallis/lisasolve
git clone https://github.com/vallis/synthlisa
cd /home/vagrant/src/lisatools/lisaXML/io-python
sudo python setup.py install -v
cd /home/vagrant/src/lisasolve/fastsource/fastbinary
sudo python setup.py install -v --with-fftw=/usr/lib/
cd /home/vagrant/src/lisasolve/common
sudo python setup.py install -v
cd /home/vagrant/src/lisasolve/mc3
sudo python setup.py install -v
##### Todo not working automatically
cd /home/vagrant/src/synthlisa
sudo python setup.py install --prefix=/vagrant
cd /home/vagrant/src/synthlisa
sudo python setup.py install
sudo apt-get -y install python-scipy
sudo apt-get -y install python-matplotlib
sudo apt-get -y install python-pip
# have to explicitely call for https since they changed the server access at pip --- ToDo test if still needed at Ubuntu 14
sudo pip install pyRXP -i https://pypi.python.org/simple/
sudo pip install pyephem -i https://pypi.python.org/simple/
# ???
chown -R vagrant:vagrant /home/vagrant/*
#use newer OS like Ubuntu 14.04.5 LTS
#
#all python sites need to be accessd with TLS1.2. which comes with openssl
#otherwise you get the tls error while e.g using pip:
#
# http://pyfound.blogspot.com/2017/01/time-to-upgrade-your-python-tls-v12.html
# test python tls version to mitigate the tlsv1 alert protocol error (not able to https access)
# python -c "import json, urllib2; print json.load(urllib2.urlopen('https://www.howsmyssl.com/a/check'))['tls_version']"
### Todo make it automatic:
# ...
# git clone https://gitlab.aei.uni-hannover.de/kwiesner/LISAGalacticBinaryDataAnalysis.git
# passwort required!
# manually change import pyRXP to pyRXPU (check error message --> 2 places to patch) ####
# The path to input data of your script can be changed to /vagrant/ provided that you have copied
# the data to the vagrant root directory on the host machine scripts should work now
#### On eventual memory error:
#
# File "/usr/lib/python2.7/dist-packages/numpy/fft/fftpack.py", line 75, in _raw_fft
# r = work_function(a, wsave)
# MemoryError
#
# change "Vagrantfile" configuration to more memory e.g. 4096
# > vagrant reload
# http://pyfound.blogspot.com/2017/01/time-to-upgrade-your-python-tls-v12.html
# test python tls version to mitigate the tlsv1 alert protocol error (not able to https access)
# python -c "import json, urllib2; print json.load(urllib2.urlopen('https://www.howsmyssl.com/a/check'))['tls_version']"
# need to run with the very latest python version 2.7.9
#sudo apt-get -y install --reinstall build-essential
#sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
#wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
#tar -xvf Python-2.7.9.tgz
#cd Python-2.7.9
#./configure
#make
#sudo make install
# sudo shutdown now -r ????
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment