Accepting selected projects for Q2 2024 Check availability
SERVER 02SYSTEM ONLINELAST SYNC: 03:17:44RSS_FEED.XML — PARSE WARNING
HALF ASSEDTECHNICAL NOTES_
EST. 2009ISSUE 04.2BEST VIEWED AT 1024 × 768
TECHNICAL NOTES / TECHNICAL NOTES / DEVELOPMENT / RECORD 29fcb2
[DEVELOPMENT]NOTE

Repeatable development environments with Vagrant

POSTED: 18.07.2013AUTHOR: ADMIN6 MIN READCOMMENTS: 0

A shared virtual machine definition can align operating-system packages and services across a team, provided provisioning remains the source of truth rather than a sequence of manual repairs.

Version the environment definition

Commit the Vagrantfile and provisioning scripts with the application. Pin the base box and important package sources, then record how upgrades are tested and introduced.

Provision from an empty machine

Use Puppet, Chef or shell provisioning to create users, services, configuration and sample data. Destroy and recreate the machine regularly so undocumented fixes cannot become permanent dependencies.

Keep production differences explicit

Local shared folders, development mail capture and debugging tools differ from production by design. Document each difference and exercise deployment in an environment that uses the real service topology.

REBUILD TEST

If a developer cannot destroy and recreate the virtual machine without preserving its disk, the environment is not yet reproducible.