This repository contains Vagrant + VirtualBox + Puppet setup for multiple development environments.
- What is in here
- Vagrant flow
- Setup
- Road map and current state of the project
- Notes
This repository is currently set up for local development and it utilizes Vagrant with VirtualBox provider to emulate production environment on Windows, OSX and Linux (note that it has been tested just on Linux and OSX).
You should read more on Vagrant if you're not familiar with it before you proceed.
Supported box types are: loadbalancer, app (STARCommerce frontend box), database, magento2.
This repo is a modified version of of generated Puphpet template. Check it out, it's awesome! Also, all requirements they have, we have as well...
Vagrant iterates over all files that match following puphpet/boxes/<ENVIRONMENT>/*.yaml and presumes they are the
definitions of VMs.
YAML files are prepended with integers so that they boot and provision in correct order (i.e. magento2 box needs mysql
box to be available, and that's on database box, so database box will have lower integer prepended than magento2 box).
Because we support multiple environments, although standard vagrant commands work, they have to be called through our
./command.sh shell script.
Our custom shell script for manipulation accepts following form: ./command.sh <ENVIRONMENT> <VAGRANT_COMMAND>.
So to start STARCommerce environment for example, you run following command ./command.sh STARCommerce up. It will spin
up everything that you need to have local setup available for given environment. More on
supported environments below.
Here are the steps to get everything set from scratch:
- Install Vagrant and VirtualBox
- Clone this repository to your machine
- From project root, run
./init.shshell script (initializes dependencies, also perhaps not needed if you use tool such is Github Desktop) - Run
sh command.sh <ENVIRONMENT> <VAGRANT_COMMAND>(i.e.sh command.sh STARCommerce up) - Update your hosts file as described below in individual environment setup section
Currently available environments are:
- STARCommerce
- Magento2
- GenericLAMP
"STARCommerce" environment setup
"Magento2" environment setup
"GenericLAMP" environment setup
To see what's exactly happening, check out *.yaml files in /puphpet/boxes directory after you run the ./init.sh
script.
Original road map planning is available at our corporate blog and we're currently in phase of working on STARCommerceFrontend application.
This repository contains entire infrastructure definition and all repositories it depends on described through Vagrant and Puppet files.
- Tested on Ubuntu 15.10 (Vagrant v1.7.4 and VirtualBox v5.0.10) and OSX (Vagrant v1.7.4 and VirtualBox v5.0.10)
- READMEs are perhaps not 100% accurate, please file any issues via GitHub issues