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.ymlas needed, see the inline comments for help.dev_config.ymlwill be ignored by git - Run
vagrant up
- Run
vagrant ssh - Your git repositories (provided in the
dev_config.ymlabove) will be available under/home/vagrant/gitrepo - Any dirs defined in the
synced_dir_mappingof thedev_config.ymlwill be mounted into the VM automatically. By default Vagrant will create asharedir 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 thesharedir is ignored by git
- You can easily add your own steps to the machine provision by creating
custom.shscript insideprovisiondir. 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.16from your host
vagrant destroy