A opinionated development machine, using vagrant + ubuntu
Before using this Vagrantfile
, you must install some tools:
- Vagrant (with vagrant-vbguest plugin)
- VirtualBox
After cloning this repository, you should issue the commands below:
vagrant up
vagrant ssh
You may want to add the vagrant
user ssh key to your git repository of choice. The Vagrantfile
creates one at the end.
I've created this machine to be my primary development machine.
All the items are listed in the provision
directory. Here follows a sample list:
- Java SE JDK 17
- Visual Studio Code
- Eclipse Java EE Edition
- Maven
- JQ
- Deno
- Google Cloud SDK
- Node.js
- Yarn
- Ionic
- KNIME
- Python 3.9
I've used an ubuntu-focal64
machine as base. I've also chosen the VirtualBox
provider.
However, it should be easy to change these choices. I plan to test it using AWS provider.
If it will be your development machine, it is important to backup your files.
I've assumed the following premises:
- We should work inside the virtual machine, as isolated as possible from host machine;
- The
Vagrantfile
represents completelly the machine configuration; - The development files will be source files that can be found in their git repositories.
With these premises in mind, you just need to backup the /home/vagrant
folder once in a while.
For this purpose, there is a /backup
directory inside the guest machine mapped to backup/
directory inside the Vagrantfile
workdir. We also have a cron job running rsync
every hour.
I choose the public network because the testing process is easier. Otherwise, the dev machine would have to forward some ports for the running applications.
However, keep in mind that vagrant machines are unsecure by nature. Don't expose them to the real world. Make them public but inside your protected network.