This is a replacement for remote command execution on servers via ssh. It has some serious security advantages – it is never a shell, for example. In managing five environments and over 1400 servers and 92 applications, tools are key.
The install and configuration is at https://fedorahosted.org/func.
Once installed, you can verify that you have connectivity with
[root@p1-util05 ~] # func p1-i53[0-5]* ping [ ok ... ] p1-i535.ad.prodcc.net [ ok ... ] p1-i534.ad.prodcc.net [ ok ... ] p1-i531.ad.prodcc.net [ ok ... ] p1-i532.ad.prodcc.net [ ok ... ] p1-i530.ad.prodcc.net [ ok ... ] p1-i533.ad.prodcc.net [root@p1-util05 ~] #
and check app status with something like
[root@p1-util05 ~] # func p1-i53[0-5]* call command run 'for i in `ls /etc/init.d | grep jboss-`; do /sbin/service $i status; done' ('p1-i534.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) ('p1-i531.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) ('p1-i532.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) ('p1-i530.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) ('p1-i535.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) ('p1-i533.ad.prodcc.net', [0, 'landingapp is running\n\n', '']) [root@p1-util05 ~] #
and deploy with puppet using something like
[root@sc-util5 ~]# func sca1-jbwebsite* ping [ ok ... ] sc-website1001.ad.prodcc.net [ ok ... ] sc-website1002.ad.prodcc.net [ ok ... ] sc-website1000.ad.prodcc.net [ ok ... ] sc-website1003.ad.prodcc.net [root@sc-util5 ~]# func sc-website* call command run '/usr/sbin/puppetd --server=sca1-puppet1.ad.prodcc.net --onetime --no-daemonize --no-usecacheonfailure --ignorecache --no-noop' ('sc-website1002.ad.prodcc.net', [0, '', '']) ('sc-website1001.ad.prodcc.net', [0, '', '']) ('sc-website1000.ad.prodcc.net', [0, '', '']) ('sc-website1003.ad.prodcc.net', [0, '', '']) [root@sc-util5 ~]#
“0” means success… “1” means there was an error.
Without this kind of blanket ad hoc command line tool, managing repetitive tasks can quickly become very difficult and time consuming…
— doug