Automated development virtual machine setup for students using Ansible.
- ✅ Lightweight - Runs smoothly on modest hardware (tested with 2 GiB RAM)
- ✅ Compact - Initial VirtualBox disk size: ~4 GiB (~1 GiB when compressed)
- ✅ Preconfigured tools - comes with development software and setup scripts
- 🟡 Custom xfce theme (planned)
- 🟡 Telemetry (opt-out, planned)
- PHP and Composer
- Sqlite3
- VSCode and Git
- Node.js and npm
- MariaDB
- Github cli
- Install Debian on a Virtualbox VM
- Create users (or update
hosts
)- Set root password to
pass
- Create
user
with passwordpass
- Set root password to
- Software selection - select only
SSH server
- Create users (or update
- Prepare the VM for ansible
- Update VM network settings in VirtualBox
Settings > Network > Attached to > Bridged Adapter
- Log in as root
su -
- Restart network service
systemctl restart networking
- Get the ip address with
ip a
and update thehosts
in this repository - Install sudo and python for Ansible
apt install sudo python3
- Add user to sudoers
adduser user sudo
- Copy key by SSH-ing into the VM
ssh [email protected]
- Update VM network settings in VirtualBox
- Setup the VM
ansible-playbook playbooks/setup.yml
- Remove all unnecessary files
ansible-playbook playbooks/cleanup.yml
- On VM, run
clear-disk
, then shut it down - On host, run
vboxmanage modifymedium /mnt/storage/VBOX/phpdev/phpdev.vdi --compact
- Edit this path to match your .vdi file
It is recommended to run new versions of these playbooks on a fresh Debian install. However, in most cases, re-running them should work without issues.
For details on changes, check the Releases page on GitHub.
Before submitting a pull request, please discuss your proposed changes in an issue first. Major changes are generally not accepted, as this project is customized for my requirements. For such changes it is recommended to create your own fork of this project. However, feel free to open an issue if you encounter a problem or have any questions.
Note
Versions below v4
are licensed under the terms of the Unlicense.
This project is licensed under the terms of the MIT license. See the LICENSE file for more information.