Configuration for vagrant and puppet systems, allowing you to build a PyroCMS-friendly environment in next to no-time. That means that instead of needing to install XAMPP/WAMPP/MAMP, fight with the built in version of Apache on your Mac or configure some slow over-the-network VPS to run your code you can use our Vagrant / Puppy setup to run PyroCMS in its own little virtual box.
Create and configure lightweight, reproducible, and portable development environments. A command line wrapper for VirtualBox.
Puppet manages your servers: describe machine configurations in an easy-to-read declarative language, and Puppet will bring your systems into the desired state and keep them there.
Install Vagrant (which requires VirtualBox) then run the following commands:
mkdir ~/vagrant
git clone --recursive git://github.com/pyrocms/devops-vagrant.git ~/vagrant/pyrocms
cd ~/vagrant/pyrocms
vagrant up
This will actually launch 6 boxes:
* mysql
* sqlite
* postgres
* pro_mysql
* pro_sqlite
* pro_postgres
Note: The boxes prefixed with "pro" are Profesional only. They will only work if you have access to the Professional repo on GitHub. This is only going to be the development team and the 100 or so people who have specifically asked for access. If you would like to ask for access then just get in touch, otherwise you can paste your downloaded ZIP file contents into the /vagrant/www/pyrocms-pro
folder and this will work just as well.
Each box has it's own local IP and its own virtual host set up, so you can set the following in your /etc/hosts
file:
198.18.0.201 dev.pyrocms.mysql 198.18.0.202 dev.pyrocms.sqlite 198.18.0.203 dev.pyrocms.postgres
198.18.0.211 dev.pyrocms-pro.mysql 198.18.0.212 dev.pyrocms-pro.sqlite 198.18.0.213 dev.pyrocms-pro.postgres
Then simply browse to http://dev.pyrocms.mysql/
. If you would like to only bring up one server then run:
vagrant halt # takes down all servers
vagrant up mysql # bring up just the one
This will hopefully give you a chance to play around with different systems other than just MySQL for a change.
There is a Vagrantfile
included in the root of this repository with some default settings enabled. Change the port number or switch to
using a hostonly connection. It's all in here.
This repo includes a submodule which contains all of our Puppet manifests, and various modules for building a LAMP stack (or something) close to that at least. We have a few PHP, Apache, Nginx, MySQL, Postgres and SQLite combinations and more will be made over time.
Currently this repo uses a fork of saz/puppet-php, which only supports Ubuntu and Debian, but could easily be extended to support more by adding to the params.pp. If there are any CentOS guys out there, we would love your help making this work.
There plan is to add multiple "stock" Puppet manifest files in manifests/
for various setups like:
- nginx + PHP + FPM + APC
- nginx + PHP + SQLite + Memcache
And of course everything in between. By building these boxes we can facilitate development and testing of PyroCMS in multiple environments
far easier than if we have to wrestle these systems onto our personal workstations. If you would like to submit a manfest, please simply send in a pull request with a logical name, like centos-nginx-php5-mysql.pp
and we'll merge it.