This repository can be used as a submodule in any project, that requires a reproducable development environment. It uses vagrant to manage the lifecycle of a virtual machine. While this project gives you a few possibilitites to change the 'hardware setup' of the virtual machine, it will work right out of the box. The machine is provisioned (installation and setup of software, libraries and your project) using ansible. Many default setups are available through predefined playbooks and variables in files and inventories. But you can have your own or combine it with the available setups for your own project.
To speed up repeated installation for the same and even different projects: vagrant-cachier vagrant-vbguest
vagrant plugin install vagrant-cachier vagrant plugin install vagrant-vbguest
There are two default mount-points in the virtual machine.
- . -> /vagrant
- .. -> /project
They are critical for this setup and will not be changed in the future.
Create a virtual machine with name "ECLIPSE", 2 cpus, 2GB of memroy and mount using nfs (usually requires root/sudo rights on the host, since nfs exports need to be written):
vagrant --vmname=ECLIPSE --cpus=2 --memory=2048 --nfs up
provision:
vagrant --ansible-playbook=ansible/site.yml --extra-vars-file=ansible/extra-vars/eclipse_cpp.yml up
provision again after machine was created
vagrant --ansible-playbook=ansible/site.yml --extra-vars-file=ansible/extra-vars/eclipse_cpp.yml up --provision
provision:
vagrant --ansible-playbook=ansible/site.yml --extra-vars-file=ansible/extra-vars/eclipse_r.yml up