Why Cisco users need to know Tcl

The open source scripting language Tcl is included in IOS and can ease many admin tasks.

Jeff Hobbs
The following is a guest post written by Jeff Hobbs (pictured), director of engineering for a company called ActiveState. ActiveState offers developer tools for writing, managing and distributing dynamic language scripts written in Perl, Python and Tcl.

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.

Better Automation

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.

Increased Securityresources 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.

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

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:

  1. Community home page: http://www.tcl.tk/
  2. Links to documentation and tutorial: http://www.tcl.tk/doc/
  3. Tcl’ers wiki: http://wiki.tcl.tk/ (over 20,000 pages of collaborative info)
  4. 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.

Have you used Tcl yet and what do you think of it?

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2010 IDG Communications, Inc.

SD-WAN buyers guide: Key questions to ask vendors (and yourself)