Documentation

haproxy - Enable, disable, and set weights for HAProxy backend servers using socket commands.

New in version 1.9.

Synopsis

Enable, disable, and set weights for HAProxy backend servers using socket commands.

Options

parameter required default choices comments
backend
no auto-detected
    Name of the HAProxy backend pool.
    host
    yes
      Name of the backend host to change.
      shutdown_sessions
      no
        When disabling a server, immediately terminate all the sessions attached to the specified server. This can be used to terminate long-running sessions after a server is put into maintenance mode.
        socket
        no /var/run/haproxy.sock
          Path to the HAProxy socket file.
          state
          yes
          • enabled
          • disabled
          Desired state of the provided backend host.
          wait
          (added in 2.0)
          no
            Wait until the server reports a status of 'UP' when `state=enabled`, or status of 'MAINT' when `state=disabled`.
            wait_interval
            (added in 2.0)
            no 5
              Number of seconds to wait between retries.
              wait_retries
              (added in 2.0)
              no 25
                Number of times to check for status after changing the state.
                weight
                no
                  The value passed in argument. If the value ends with the `%` sign, then the new weight will be relative to the initially configured weight. Relative weights are only permitted between 0 and 100% and absolute weights are permitted between 0 and 256.

                  Examples

                  # disable server in 'www' backend pool
                  - haproxy: state=disabled host={{ inventory_hostname }} backend=www
                  
                  # disable server without backend pool name (apply to all available backend pool)
                  - haproxy: state=disabled host={{ inventory_hostname }}
                  
                  # disable server, provide socket file
                  - haproxy: state=disabled host={{ inventory_hostname }} socket=/var/run/haproxy.sock backend=www
                  
                  # disable server, provide socket file, wait until status reports in maintenance
                  - haproxy: state=disabled host={{ inventory_hostname }} socket=/var/run/haproxy.sock backend=www wait=yes
                  
                  # disable backend server in 'www' backend pool and drop open sessions to it
                  - haproxy: state=disabled host={{ inventory_hostname }} backend=www socket=/var/run/haproxy.sock shutdown_sessions=true
                  
                  # enable server in 'www' backend pool
                  - haproxy: state=enabled host={{ inventory_hostname }} backend=www
                  
                  # enable server in 'www' backend pool wait until healthy
                  - haproxy: state=enabled host={{ inventory_hostname }} backend=www wait=yes
                  
                  # enable server in 'www' backend pool wait until healthy. Retry 10 times with intervals of 5 seconds to retrieve the health
                  - haproxy: state=enabled host={{ inventory_hostname }} backend=www wait=yes wait_retries=10 wait_interval=5
                  
                  # enable server in 'www' backend pool with change server(s) weight
                  - haproxy: state=enabled host={{ inventory_hostname }} socket=/var/run/haproxy.sock weight=10 backend=www
                  
                  author: "Ravi Bhure (@ravibhure)"
                  

                  Notes

                  Note

                  Enable and disable commands are restricted and can only be issued on sockets configured for level ‘admin’. For example, you can add the line ‘stats socket /var/run/haproxy.sock level admin’ to the general section of haproxy.cfg. See http://haproxy.1wt.eu/download/1.5/doc/configuration.txt.

                  This is an Extras Module

                  For more information on what this means please read Extras Modules

                  For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Helping Testing PRs and Developing Modules.