From 00c7ac9d1505fbc930c20c598c968658635f4e9d Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Fri, 12 Oct 2012 15:26:14 -0700 Subject: Update readme for release --- README.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 73 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index fa0a264..a458aff 100644 --- a/README.md +++ b/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. + +*To install and configure HAProxy server listening on port 80* + +```puppet +node 'haproxy-server' { + class { 'haproxy': } + haproxy::listen { 'puppet00': + ipaddress => $::ipaddress, + ports => '8140', + } +} +``` + +*To add backend loadbalance members* + +```puppet +node 'webserver01' { + @@haproxy::balancermember { $fqdn: + listening_service => 'puppet00', + server_names => $::hostname, + ipaddresses => $::ipaddress, + ports => '8140', + options => 'check' + } +} +``` + +Configuring haproxy options +--------------------------- + +The base `haproxy` class can accept two parameters which will configure basic +behaviour of the haproxy server daemon: + +- `global_options` to configure the `global` section in `haproxy.cfg` +- `defaults_options` to configure the `defaults` section in `haproxy.cfg` + +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. -Read the documentation in the manifest headers for usage information. +Dependencies +------------ -## Hacking +Tested and built on Ubuntu and CentOS -After cloning the repository: +Copyright and License +--------------------- -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! +Copyright (C) 2012 [Puppet Labs](https://www.puppetlabs.com/) Inc -## License +Puppet Labs can be contacted at: info@puppetlabs.com -Apache 2.0 +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 -## Contact + http://www.apache.org/licenses/LICENSE-2.0 -Puppet Labs Modules Team +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. -- cgit v1.2.3