Ruby on Rails App Deployment Demo
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.
Building the VM
- Download and install VirtualBox.
- Download and install Vagrant.
- [Mac/Linux only] Install Ansible.
- Run
ansible-galaxy install -r requirements.ymlin this directory to get the required Ansible roles. - Run
vagrant upto 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.
Deploying application updates
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.
About the Author
This project was created by Jeff Geerling as an example for Ansible for DevOps.