Friday, August 6, 2010
Tcl and CISCO
Being a systems administrator today isn’t easy. However, the open source community continues to makes it easier. Take, for example, Tcl. Tcl is an open source scripting interface included in the Cisco IOS router operating system and is available on many other vendor’s networking equipment. As a product of the open source community, Tcl offers significantly more control and automation but is not currently part of some of the common certification programs, such as the official Cisco certified training program.
A lot of system administrators we talk to are familiar with Tcl but haven't learned enough about it to use it regularly. So why bother to do that? Three reasons: it offer better automation and increased security than other scripting options (or not using a script at all). It also makes it easier to work with remote command line applications.
Systems administrators need to be able to automate much of what they do, especially when working with large networks. Configuring or re-configuring dozens, or hundreds, of routers can be tedious or nearly impossible without some method for automation. For example, if a change in network configuration requires setting a new gateway for dozens of routers, logging in to each one to make the change could tie up a sysadmin for hours. Tcl allows more advanced automation.
By making Tcl available on the Cisco IOS device itself, it is possible to automate tasks as well as build elaborate, network enabled services. However, the feature rich nature of Tcl does present some security concerns that should be addressed. Cisco provides good resources for how best to address these concerns, including Tcl script signing; disallowing the Tcl scripts if they are not needed, not allowing remote unsigned Tcl scripts and only allowing Tcl script access to privileged levels.
Remote Command Line Applications
Scripting remote command line applications is difficult. Most scripting languages cannot deal with this problem effectively but using the Expect extension to Tcl makes these interactions easy to “drive” remote command line applications, or automate existing or legacy tools that were never built to be automated.
These are just three advantages of learning Tcl – but there are more. Gaining an understanding of Tcl makes system administrators significantly more efficient and valuable to their organizations.
Starter resources for learning more about Tcl:
Community home page: http://www.tcl.tk/
Links to documentation and tutorial: http://www.tcl.tk/doc/
Tcl’ers wiki: http://wiki.tcl.tk/ (over 20,000 pages of collaborative info)
Expect extension page: http://expect.sourceforge.net/
Hobbs oversees development of all ActiveState products. ActiveState’s products and services for Perl, Python, Tcl and other web languages, are used by over two million developers. However Jeff describes himself as " a coder at heart" and dynamic languages are his passion. He’s been a member of the Tcl Core Team for more than a decade and is the primary author of many popular Tcl modules, as well as a contributing author for Perl and Python extensions. Jeff is a Tcl/Tk core maintainer and co-author of “Practical Programming in Tcl and Tk” and regularly publishes papers on the topic. Jeff works closely with ActiveState customers including Cisco, Boeing, Synopsys, NASA and Intel to deliver dynamic languages solutions for their development projects.
"Tcl is the best scripting language for our mission-critical testing environment, bringing us several advantages. Tcl is easy to use, is embeddable and extensible, and has allowed us to automate our testing tasks to a much higher degree than we otherwise could."
Jay Yang, Manager Automated Test Solutions
Cisco Systems, Inc.