SMACCMPilot Development Environment
The SMACCMPilot project has numerous dependencies that frequently change. In order to ease the creation of a complete development environment, we provide a complete environment as a Vagrant VM. Vagrant is a free tool for creating, provisioning, and managing a virtual machine.
In order to use this development environment, you must have the following tools present on your machine:
Additionally, you will need to have about 7GB of hard disk space and 4GB of
RAM available for use by the virtual machine. (The large amount of RAM is
required for building some complex Haskell packages, such as
If you have the dependencies installed, simply running
$ vagrant up
in the current directory will create a complete virtual machine. This operation will download and install many dependencies, and build the SMACCMPilot application. Expect it to take at least an hour to complete.
You can open a shell to interact with the system using
vagrant ssh. More
information on how to use Vagrant in their documentation.
To suspend a VM, use
vagrant suspend. To permanently delete, and reclaim hard
disk space, use
Vagrantfile specifies how to configure a virtual machine based on
the Fedora 23 Cloud base image. The Vagrantfile specifies that
VirtualBox provide 4GB of memory and 2 CPUs for the virtual machine.
If you have more memory or more CPUs available to devote to the VM, you can
expand this allocation by editing the
v.memory = 4096 and
v.cpus = 2
The Vagrantfile hands off the rest of provisioning to the Ansible tool. Ansible
smaccmpilot.yml playbook to install all dependencies for the
SMACCMPilot development environment, and then build the SMACCMPilot flight
If you want to reproduce the development environment on another type of machine,
please refer to the comments in the
If you want to use the Ansible provisioner with a non-vagrant Fedora VM, create
an Ansible inventory file called
hosts in this directory, and then use
ansible-playbook smaccmpilot.yml -l <your host> to provision the machine. We
have tested this method to provision a Fedora 23 Workstation machine.