This project builds a Ruby on Rails-based app inside a VM, using Passenger and Nginx to run the app. It is meant as a demonstration of web application deployments (in this case, a Rails-based app) using Ansible.
- Download and install VirtualBox.
- Download and install Vagrant.
- [Mac/Linux only] Install Ansible.
- Run
ansible-galaxy install -r requirements.yml
in this directory to get the required Ansible roles. - Run
vagrant up
to build the VM and deploy the version of the app specified inplaybooks/vars.yml
.
Once the VM is built, you can visit http://192.168.33.7/
(or whatever domain name you point to that IP address in your local hosts file) to view the demo app.
The first 'production' release of this demo app is version 1.1.4
, which includes a basic interface for viewing and managing Articles. Subsequent releases can be deployed by incrementing the app_version
in playbooks/vars.yml
, then running the Ansible provisioner again with vagrant provision
.
Some notable releases you could test:
1.1.4
: The first stable release. Very basic interface for performing CRUD operations on Articles, but this release is not idempotently-deployable due to some incorrect settings.1.2.0
: Major changes to the structure of the app, like the home page and general layout.1.2.2
: First 'production' version of the app, with user interface elements complete. First version of the app able to be deployed idempotently.1.3.0
: Major UX and design/layout improvements.
This project was created by Jeff Geerling as an example for Ansible for DevOps.