Home - Alex-Burgess/ansible-demo GitHub Wiki

Introduction

This project demonstrates the use of Ansible to build, operate and deploy basic web applications. It originated from a typical on-premise requirement, so although using AWS, the first aim is to build the reference architecture as though it was a typical on-premise static infrastructure environment. However, ephemeral infrastructure considerations, i.e. dynamic inventory, are looked at also.

A key aim of the project is to use best practices throughout, including:

  1. Infrastructure as code: CloudFormation templates to automate deployment of environments.
  2. Security practices: SSH keys stored securely in Parameter Store.
  3. Environment Segregation: Separation of test, staging and production environments to reduce risk of unintended playbook or command execution against production environment.
  4. Infrastructure Scalability: Scalable web server infrastructure.
  5. Playbook Re-usability: Reusable playbooks, with a scalable and extensible design, allowing deployment of different web applications.
  6. Access Control: Control and audit of playbook execution in production.
  7. Deployment pipeline: Version control and package deployment of Ansible components to environments.
  8. Zero-touch production deployment: Removal of SSH access to production environment.

Build steps