summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHunter Haugen <h.haugen@gmail.com>2012-10-12 15:26:14 -0700
committerHunter Haugen <h.haugen@gmail.com>2012-10-12 15:26:14 -0700
commit00c7ac9d1505fbc930c20c598c968658635f4e9d (patch)
tree4cd87a3e5cc2afb7637726b17549cf58be60724f
parentfa67a136a0e2df377c2650cfd45f5941505401be (diff)
Update readme for release
-rw-r--r--README.md88
1 files 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 <modules@puppetlabs.com>
+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.