From 0d2799b7ce059536beae9f6e43a062e4ab4df62a Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Fri, 12 Oct 2012 15:26:14 -0700 Subject: [PATCH] Update readme for release --- deployment/puppet/haproxy/README.md | 88 ++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 15 deletions(-) diff --git a/deployment/puppet/haproxy/README.md b/deployment/puppet/haproxy/README.md index fa0a2643e0..a458aff0f7 100644 --- a/deployment/puppet/haproxy/README.md +++ b/deployment/puppet/haproxy/README.md @@ -1,25 +1,83 @@ -# haproxy +PuppetLabs Module for haproxy +============================= + +HAProxy is an HA proxying daemon for load-balancing to clustered services. It +can proxy TCP directly, or other kinds of traffic such as HTTP. + +Basic Usage +----------- This haproxy uses storeconfigs to collect and realize balancer member servers -on a load balancer server. Currently Redhat family OSes are supported, but -support for other OS Families shouldn't be too difficult to merge in. Pull -requests accepted! +on a load balancer server. Currently Redhat family OSes are supported. -Read the documentation in the manifest headers for usage information. +*To install and configure HAProxy server listening on port 80* -## Hacking +```puppet +node 'haproxy-server' { + class { 'haproxy': } + haproxy::listen { 'puppet00': + ipaddress => $::ipaddress, + ports => '8140', + } +} +``` -After cloning the repository: +*To add backend loadbalance members* -1. `gem install puppetlabs_spec_helper` -1. `rake spec` # To run the tests -1. Hack Hack Hack # Adding tests hopefully! -1. Commit and send a pull request! +```puppet +node 'webserver01' { + @@haproxy::balancermember { $fqdn: + listening_service => 'puppet00', + server_names => $::hostname, + ipaddresses => $::ipaddress, + ports => '8140', + options => 'check' + } +} +``` -## License +Configuring haproxy options +--------------------------- -Apache 2.0 +The base `haproxy` class can accept two parameters which will configure basic +behaviour of the haproxy server daemon: -## Contact +- `global_options` to configure the `global` section in `haproxy.cfg` +- `defaults_options` to configure the `defaults` section in `haproxy.cfg` -Puppet Labs Modules Team +Configuring haproxy daemon listener +----------------------------------- + +One `haproxy::listen` defined resource should be defined for each HAProxy loadbalanced set of backend servers. The title of the `haproxy::listen` resource is the key to which balancer members will be proxied to. The `ipaddress` field should be the public ip address which the loadbalancer will be contacted on. The `ports` attribute can accept an array or comma-separated list of ports which should be proxied to the `haproxy::balancermemeber` nodes. + +Configuring haproxy loadbalanced member nodes +--------------------------------------------- + +The `haproxy::balacemember` defined resource should be exported from each node +which is serving loadbalanced traffic. the `listening_service` attribute will +associate it with `haproxy::listen` directives on the haproxy node. +`ipaddresses` and `ports` will be assigned to the member to be contacted on. If an array of `ipaddresses` and `server_names` are provided then they will be added to the config in lock-step. + +Dependencies +------------ + +Tested and built on Ubuntu and CentOS + +Copyright and License +--------------------- + +Copyright (C) 2012 [Puppet Labs](https://www.puppetlabs.com/) Inc + +Puppet Labs can be contacted at: info@puppetlabs.com + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.