Here you will find Vagrantfile, related configs and scripts for local development VM.
Provision is done by Ansible. Roles used for the provision and their location is defined here in the provision/requirements.yml
Why?
- Clean and transparent: all the tools are in one place, thus easy to resolve all "magical" issues about dependencies, system configs, pathes etc., you host OS is clean and not lagging after the tons of various installed apps and tools
- Flexible and maintainable: Easy to re-create and re-provision the machine from scratch at any place and any time
- Compatible: Code tested in this VM supposed to be working on any machine with the Linux distro defined in the Vagrantfile
You're welcome to contribute and add some useful stuff via pull requests!
- Vagrant -
v2.2.19
- Vagrant-vbguest plugin
- Virtual Box -
v6.1.30
- Some dev/ops skills
Versions above are tested and working, you can use any other for your own risk and responsibility
- Copy the dev_config.yml.template to the
dev_config.yml
. Define variables inside the createddev_config.yml
as needed, see the inline comments for help.dev_config.yml
will be ignored by git - Run
vagrant up
- Run
vagrant ssh
- Your git repositories (provided in the
dev_config.yml
above) will be available under/home/vagrant/gitrepo
- Any dirs defined in the
synced_dir_mapping
of thedev_config.yml
will be mounted into the VM automatically. By default Vagrant will create ashare
dir here in the repo. It can be used for file exchange between the host and the VM and will be available under/home/vagrant/share/
inside the VM. All the data inside theshare
dir is ignored by git
- You can easily add your own steps to the machine provision by creating
custom.sh
script insideprovision
dir. This script will be ignored by git
- In addition to the ports forwarded explicitly via the Vagrantfile (if defined in the
dev_config.yml
) any network service launched inside the virtual machine will be available at the172.16.16.16
from your host
vagrant destroy