Oct 292013
 

We all have to create topology diagrams, high level visual representations of our thoughts or environments (or software solutions etc) from time to time, for as they say – “A picture is worth a thousand words”.

The Graphviz software (http://www.graphviz.org/) provides us a simple and elegant way to do so, which with a little bit of practice can make a huge difference in time saved. It also lets us take safe shortcuts, where in we bypass the entire cumbersome process of creating visio diagrams ( or some other tool). And do this instead:

Input Configuration file:

# START_TOPO
#cluster:tier:node:dc
cluster01:web:web1:Chicago
cluster02:middleware:mid1:Chicago
cluster03:db:db1:Chicago
cluster11:web:web2:New York
cluster12:middleware:mid2:New York
cluster13:db:db2:New York
# END_TOPO
# START_EDGE
#nodes:dir:style:label
web1:web2:both:invis:UNDEF
mid1:mid2:both:invis:UNDEF
db1:db2:both:invis:UNDEF
web1,web2:mid1,mid2:::p9099
db1,db2:DBSID:both::Database
mid1,mid2:db1,db2:::p1514
# END_EDGE

Having prepared this type of configuration file (which should take a few minutes), run the script given below to generate the “dot” code needed to generate the diagrams. If you use a wiki (which should be all but ubiquitous in IT by now), most modern wikis (eg: mediawiki, dokuwiki) come with plugins for graphviz. The “dot” code generated by the script can then be pasted into your wiki page and an associated graphviz image will be displayed.

Run the script as follows:

¬†$ ./graph.pl –cfg=”./graphit.cfg” –output=/tmp/foo.dot

This will generate the necessary framework for your diagram. You do still need to know the “Dot” language in order to edit/modify/improve on the code, but this script will do the bulk of your work for you. ¬†However, that is provided you are drawing topology diagrams (as shown here, in a similar format).

Feel free to pull the script from the git repo here and use/modify it as you deem fit:

https://github.com/implicateorder/sysadmin-tools/blob/master/graph.pl

 

The script:

 

The Dot code:

 

And the diagram looks like this (needs to tweaked further), provided my graphviz plugin works :

wpg_div_wp_graphviz_1

 Posted by at 8:49 pm
Oct 102007
 

A few thoughts on using new(er) technology to manage/maintain and collaborate docs and projects.

In my previous gig with a major Pharmaceutical company, I had taken on the onus of documenting the environment at the onset. That way I could learn the “whole picture” while creating good reference material. But the ordinary way of writing was both hard and cumbersome.

1) Old hacks and tricks in vi-edited text files on my workstation were hard to manage and were hard to distribute publicly.
2) Environment design, etc were pain-stakingly created with visio and took hours.
3) Word is a lousy product to use for technical documentation, imho.

So decided to try out a bunch of technologies. Set up two content management engines (both FOSS — Joomla! and Drupal) that were basically LAMP apps (Linux, Apache, MySQL, PHP) and were very powerful. Joomla! caught my eye due to the flexibility and out-of-the-box toolset it provided. Drupal was minimalistic and needed more effort to “mold”. I went on and created a couple of public-consumption web sites using Joomla! (http://www.medhajournal.com and http://www.invadingthesacred.com).

However, the most powerful tool that struck a optimistic chord in mine and the rest of the teams’ heart was a minimalist tool called Moinmoin (http://moinmoin.wikiwikiweb.de) that ran on a python-based engine, maintained the content without any RDBMS backing and was a breeze to setup and use.

With excellent markup tags, it has made documentation a breeze and we actually ended up creating a lot of docs using this tool and managing some multi-million dollar projects (infrastructure side) as well.

Of course there were the PM-drones who ran Project, GANTT charts, etc, and they have their own rightful place in the hierarchy of things in the PM framework. But to make a dreary task (that most admins fear) surprisingly easy, the Wiki was the perfect tool.

 Posted by at 7:26 pm