Puppet F5: Graceful Server Shutdown

312 views
Skip to first unread message

MrTeleBird

unread,
Feb 7, 2013, 9:46:00 AM2/7/13
to puppet...@googlegroups.com
HI,

How can I gracefully shut down my servers of a given pool member for maintenance without disrupting current user sessions using the F5 iControl module??...and of course, allowing for enabling and disabling of the server for a pool

Has anyone done this before?

Thanks

Nan Liu

unread,
Feb 7, 2013, 12:40:26 PM2/7/13
to puppet...@googlegroups.com
On Thu, Feb 7, 2013 at 6:46 AM, MrTeleBird <mrtel...@gmail.com> wrote:
How can I gracefully shut down my servers of a given pool member for maintenance without disrupting current user sessions using the F5 iControl module??...and of course, allowing for enabling and disabling of the server for a pool

Has anyone done this before?

The short version is F5 have an API call, but I'm not sure it's actually usable. The good news is you have other options.

The v11 API [1] was extended to support this functionality, but the module was written specifically for v10 [2]. I don't know the f5-icontrol 10.2 gem compatibility with v11 API, and F5 haven't released v11.2.1 gem yet [3]. I think setting a poolmember connection limit would simulate the behavior. The other solution is setup monitoring to watch a service availability and drain stop (not the actual service but a service availability indicator). This is actually quite helpful as it gives the server admin the ability to start maintenance, monitor user traffic drain, all without any load balancer changes [4].  

If you are on v11 and willing to work with the provider, you can look at updating this section:

Change the WSDL to LocalLB.Pool, add enabled state property, and change to the appropriate get_member_*, set_member_* methods.

HTH,

MrTeleBird

unread,
Feb 11, 2013, 4:58:30 AM2/11/13
to puppet...@googlegroups.com
Hi Nan,

cool, thanks for your reply. We are running both versions of F5, so i think i will give it a try and see if this works.

Cheers, Cesar

MrTeleBird

unread,
Feb 11, 2013, 5:22:19 AM2/11/13
to puppet...@googlegroups.com
Another option (I do not know if this would work), would be to "translate" this script:

https://devcentral.f5.com/wiki/icontrol.pspoolmembercontrol.ashx

to ruby and execute it when deploying a new application.

What do you think??


Nan Liu

unread,
Feb 11, 2013, 1:01:47 PM2/11/13
to puppet...@googlegroups.com
It might be possible to add 'session_enabled_state' to the list of methods available to 'LocalLB.PoolMember' and see if that allows it to toggle this setting:


f5_pool { 'webserver': 
  member => { '192.168.1.1:80' => 
    { 'session_enabled_state' => 'STATE_DISABLED' },
  }
}

Thanks,

Nan
Reply all
Reply to author
Forward
0 new messages