A standalone Magento DevOps environment built with Vagrant and Puppet from a vanilla Ubuntu 12.04 LTS box.
Leverage Composer and Phing scripts for enhanced DevOps automation.
Use your own Magento code or have it install the Magento version of your choice.
- Install the required software for your host machine
 
- Download and install VirtualBox
 - Download and install Vagrant
 - Download and install Git
 
- Create the parent directory for your projects
 
mkdir ~/Code
cd ~/Code
- Grab the magento-vagrant-puppet code
 
git clone https://github.com/matthewsplant/magento-vagrant-puppet.git project_dir
cd project_dir
- (Optional) Have script install Magento
 
- Set install to true in the Magento class of the main puppet manifest file (base.pp)
 - Set the Magento version also in the Magento class of the main puppet manifest file
 - And remember to revert the install back to false after install
 
- (Optional) Use your own Magento code
 
- "git-clone" your Magento project to "www/magento"
 - Import your MySQL database and update the base URLs via the following MySQL query:
 
UPDATE magento.core_config_data
SET value = 'http://magento.localhost:8080/'
WHERE path in ('web/unsecure/base_url', 'web/secure/base_url')
- Clear the Magento cache
 
- Add magento.localhost to your hosts /etc/hosts file
 
    127.0.0.1       magento.localhost
- Spin up your new DevOps environment
 
    vagrant up
- (Optional) Install Phing along with additional support libraries on your new DevOps environment
 
vagrant ssh
cd /vagrant
composer install
This virtual machine is optimized for ease of use. Therefore it is not meant for production use.
- Ubuntu User - vagrant/vagrant
 - MySQL User - root/r00t
 - Magento Admin - admin/123123abc
 
- Ubuntu 12.04 LTS aka "precise32"
 - Apache 2.2.22
 - MySQL 5.5.31
 - PHP 5.3.10
 - Composer
 - Phing 2.5.0
 
See http://magento.localhost:8080/phpinfo.php for more details.
- It was this way
 - I like having the host vm separate from the client "vendor" files
 - It makes it easy to exclude the whole client "vendor" directory from git