In web service access shuffle, today’s mission is introducing large N number of new backend pools, traffic rules and virtual servers to Zeus ZXTM balancers. No time for monkeying around in the web UI, better check out their well documented API. It uses SOAP, which I’ve never got busy with before – slightly apprehensive.
The reference documentation has examples in Perl and PHP which got me so far, but I’m most comfortable in Ruby now, and was happy to find ((I was going to paste example code, but this’ll do)) this pointer to using the soap4r library.
Chief bonus here is the wsdl2ruby.rb
tool that’ll transform the WSDL data into Ruby objects with heirarchy, attribute accessors and everything else to make operating the API really comfortable. If your WSDL is a moving target during development it’ll even do this on the fly.
This meant getting the scripting done to configure the ZXTMs was pretty straightforward, without any faffing with the underlying access mech. Refreshing!
ipmitool for OSX
Tuesday, 09. 29. 2009 – Category: sw
Nothing searchable in MacPorts, but found this.
Update: Turns out this build is missing isol
mode serial-on-LAN for IPMI 1.5 hosts ((Dell R200 uses IPMI 1.5, Dell R410 uses 2.0. Both do SOL and remote power management well enough)), and building the ipmitool distribution wasn’t so hard after all. Packaging systems have made me lazy!
vxargs – visual parallel xargs
Friday, 09. 18. 2009 – Category: sw
Flag for vxargs, an xargs-a-like that runs its multiple command invocations in parallel and provides a (ncurses) histogram of the progress. Its companion program pattern provides an easy way to generate IP / hostnames based on a logical sequence. Together the make a reasonble way to run a command on a bunch of hosts and collate the stdout, stderr and exit status of each.
As a same-same-but-different alternative to
- pssh
- That xterm multiplexer I can never remember the name of
- screen(1) and Terminal.app‘s send-to-many option
- Quick and dirty shell scripts iterating over a host list
- Capistrano‘s shell (even on hosts that don’t run any other Ruby!)
… it’s proving pretty solid.
Example:
[admin@manage3 tmp]$ pattern.py foo[1-8] | vxargs -y -o ~/tmp ssh {} varnishadm -Tlocalhost:6082 ping
Terminal clears, and shows progress:
8/8:ssh -l root foo8 varnishadm -Tlocalhost:6082 ping
Done
Done
Done
Done
Done
( 10s) 6: foo7
Done
and exits
exit code 0: 7 job(s)
exit code 1: 1 job(s)
total number of jobs: 8
Now you can inspect the output from each host, exit status and an overall failure list
[admin@manage3 tmp]$ cat ~/tmp/abnormal_list
foo5
[admin@manage3 tmp]$ cat ~/tmp/foo5.err
Warning: Permanently added 'foo5,10.221.11.0' (RSA) to the list of known hosts.
connect(): Connection refused
An error occured in receiving status.
Via Trivium
Recent articles
- Docker, SELinux, Consul, Registrator
(Wednesday, 04. 29. 2015 – No Comments) - ZFS performance on FreeBSD
(Tuesday, 09. 16. 2014 – No Comments) - Controlling Exim SMTP behaviour from Dovecot password data
(Wednesday, 09. 3. 2014 – No Comments) - Heartbleed OpenSSL vulnerability
(Tuesday, 04. 8. 2014 – No Comments)
Archives
- April 2015
- September 2014
- April 2014
- September 2013
- August 2013
- March 2013
- April 2012
- March 2012
- September 2011
- June 2011
- February 2011
- January 2011
- October 2010
- September 2010
- February 2010
- September 2009
- August 2009
- January 2009
- September 2008
- August 2008
- July 2008
- May 2008
- April 2008
- February 2008
- January 2008
- November 2007
- October 2007
- September 2007
- August 2007
- December 2006
- November 2006
- August 2006
- June 2006
- May 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005