Giter Club home page Giter Club logo

friendly-journey's Introduction

friendly-journey

Description

The code in this repository demonstrates the use of the ‘role and profiles’ Puppet design pattern to configure a pair of active-passive load balancers (using HAProxy and Keepalived) to route traffic to a small cluster of webservers.

The ‘roles and profiles’ design pattern is an abstraction that is used to organise Puppet code. It enables users to glean the information that is most useful to them without a necessarily in-depth knowledge of the Puppet language. It is a bridge between business logic (roles) and the technology needed to deploy it (profiles).

At the business logic level, the loadbalancer_primary and loadbalancer_passive roles were created to represent the active and passive load balancers. These roles grouped together the profiles for each of the following components: firewall, haproxy and keepalived.

The firewall profile ensures that the ports required for nodes to be accessible to the Puppet master and the web remain open. The haproxy profile describes the web server nodes, enables IP forwarding and binds the load balancer to a virtual IP address. The keepalived profiles distinguish between the active and passive load balancers.

Requirements

This code was tested within the master-agent architecture using 5 Vagrant virtual machines: 1 puppetmaster running Ubuntu 14.04, 2 webserver nodes running Ubuntu 14.04 and 2 loadbalancer nodes running CentOS 6.6.
Puppet version: 3.8.3

Dependencies

To adopt these roles and profiles, the following Puppet modules must be installed
using the puppet module install command:
puppetlabs-apache
puppetlabs-firewall
puppetlabs-haproxy
duritong-sysctl
arioch-keepalived

friendly-journey's People

Contributors

adjoa avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.