Func: Fedora Unified Network Controller

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