Skip to content

Files

vagrantSandbox

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Sep 4, 2013
Jun 1, 2018
Aug 24, 2015
Apr 27, 2015
Apr 27, 2015
Aug 25, 2016
Apr 27, 2015
Aug 24, 2015
Aug 25, 2016
Aug 25, 2016

Virtual machines for testing and Packaging

Prerequisites

These virtual machines require

VirtualBox
for running from https://www.virtualbox.org
Vagrant
to automatically set them up from http://www.vagrantup.com Make sure that you have at least version 1.5 to be able to use the base boxes from https://vagrantcloud.com/

To make sure that for the boxes the have the newest VirtualBox-additions do

vagrant plugin install vagrant-vbguest

This installs a plugin that tries to update the guest addition if they are for an older version of VirtualBox

Starting

A virtual machine is set up with

vagrant up <machineName>

will download a virtual machine image and set it up. It will then modify the image:

  • add packages required to compile OpenFOAM and package it
  • mount the directory of the sources
  • from this directory clone it to the local disc with mercurial or git (whatever the parent uses)

One can then connect to the virtual machine with

vagrant ssh <machinName>

and will be in the $HOME directory of the user vagrant where in the directory ~/foam/foam-extend-3.2 the sources are available. Modifications can be pushed “outside” the virtual machine with

hg push

There is also a symbolic link ~/foam/foam-extend-3.2-parent to the sources if you want to edit there directly. Use with care and don’t compile in that directory unless you know what you’re doing

Memory size and CPU-number

The number of CPUs in the virtual machine is determined by (the first one that matches is used)

  • If the variable WM_VAGRANT_CPUS exists then the number of CPUs is set to this
  • If the variable WM_NCOMPPROCS is set then the number of CPUs is fixed with half that number (so that the virtual machine doesn’t make the machine unuable)

The amount of memory is set according to the number of CPUs: ( 1 + N ) 512 Megabytes. This should allow half a Gigabyte for the OS and half a Gigagbyte for each compiling process

The hostname of the virtual machine is the hostname of the host machine prepended with vagrant.

Virtual machines

Currently existing virtual machines are

trusty
Latest LTS 14.04 Ubuntu. Currently the default machine to use
prescise
Previous LTS Ubuntu.
lucid
Old LTS Ubuntu. Currently problems with automatic setting up (something with the postfix-package)
maverick
Tries to fix the problems with the lucid-machine. Not yet working
centos65
A CentOS 6.5 machine with preinstalled development tools
freebsd92
FreeBSD 9.2 64-bit machine. Currently this machine does not provision automatically. After the first failure log in and do
centos70
A CentOS 7.0 machine with preinstalled development tools
sudo pkg_add -r rsync
sudo pkg_add -r bash

then halt the machine and bring it up again (with the --provision-option)

freebsd10
FreeBSD 10.0 32-big machine. Tries to set up shared folders via NFS. Needs user interaction during creation (password to get root privileges to manipulate the /etc/exports-file to allow the NFS-sharing)
opensuse12
OpenSUSE 12.3 machine. Currently not completely compiling Foam
opensuse13
OpenSUSE 13.1 machine. The current LTS-version of OpenSUSE
archlinux
An ArchLinux-machine. Might take a long time during provisioning as the script updated the full OS.

Some machines (read: the BSD-boxes) need the VirtualBox Extension Pack installed (because they have USB 2.0)

Scripts in the machine

In the home directory these scripts are found

bootstrapFoam.sh
A script whose aim it is to compile Foam and the ThirdParty-packages in one go (no paraview and QT). If this works the box is considered operational. The script leaves a log file bootstrapFoam-log in the home directory
bootstrapAndTest.sh
Calls bootstrapFoam.sh and then runs the testHarness in the foam-installation

Provisioning scripts

Every “family” of machines has a specific script that makes sure that the software packages necessary to compile Foam are installed into the machine. In the end these scripts should call initGeneralScript.sh which gets the sources into the machine. It needs git, mercurial and ccache for that.