• Home
  • Work
  • Blog
  • Security
  • Links
  • Automatic server audit for RackTables project

    2012 - 11.02

    First I’d like to introduce one very nice project called RackTables. It’s management system for DataCenters or rack rooms. I test many project like this but this one fits best for our needs. With this system you can document your network and infrastructure. Datacenters, rooms, rack rows, servers and their attributes, ipv4/ipv6 ranges, virtual resources, etc.

    I work as System Specialist, many times it’s too much work and I forgot to document some changes which I made on server or infrastructure. When number of servers grows to hundreds this is a really big problem you must handle. Important is also to know, what was the change, not only actual state. So you must create log of changes.

    I have created one small script which discover physical or virtual server and insert or update information into racktables database and ! it create LOG in RackTables. You see what was the previous state and when this change was made.

    Script can handle various system and HW infromation and what is perfect, it do it automatically without any interaction.

    I show you some examples what this system can do for you.

    Create new object based on hostname and Service-TAG

    This is one of core features. When you run this application on server, it first check hostname and Service-TAG (ST) and compare with database. If this combination not exist, it create new server object.

    It recognize physical and virtual servers, virtual servers have automatically generated ST as “VPS-hostname”. It also recognize if server is hypervisor or not and build your virtual resources in database.

    On the next picture you should see information collected from server like

    • hostname
    • service_tag , filled as asset_tag
    • support type
    • Server model
    • support ends
    • Operating System
    • Interfaces and connections with switches
    • IP addresse, networks and VLANs

    All of these information ware collected automaticly.

    On the next example is server which was recognized as XEN Hypervisor, it detects virtual servers and linked them with virtual objects.

    Virtual resources overview

    Warranty and support expiration report

    Changes are written into log to specific object

    Finally look on detail of core switch and it’s details

    Application was released under GPLv2 license.


    System supports transport of racktables comments to server message of the day file.

    When connect to server some useful comment is there for you. It’s possible edit this comment directly from server by using comment-edit.py utility.


    Loading Facebook Comments ...

    5 Responses to “Automatic server audit for RackTables project”

    1. Rukas says:

      Awesome work! Any plans on adding the ability to pull from vCenter and update RackTables?

    2. Gareth says:

      I get a python error 🙁
      This is on CentOS 6

      [root@racktables rt-server-client]# ./system-info.py
      File “./system-info.py”, line 212
      elif line.find(‘lldp.’+interface+’.port.descr’) > -1:
      SyntaxError: invalid syntax

      [root@racktables rt-server-client]# uname -a
      Linux racktables 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

      [root@racktables rt-server-client]# yum list installed | grep py
      newt-python.x86_64 0.52.11-3.el6 @anaconda-CentOS-201207061011.x86_64/6.3
      pygpgme.x86_64 0.1-18.20090824bzr68.el6 @anaconda-CentOS-201207061011.x86_64/6.3
      python.x86_64 2.6.6-37.el6_4 @updates
      python-iniparse.noarch 0.3.1-2.1.el6 @anaconda-CentOS-201207061011.x86_64/6.3
      python-libs.x86_64 2.6.6-37.el6_4 @updates
      python-pycurl.x86_64 7.19.0-8.el6 @anaconda-CentOS-201207061011.x86_64/6.3
      python-urlgrabber.noarch 3.9.1-8.el6 @anaconda-CentOS-201207061011.x86_64/6.3
      rpm-python.x86_64 4.8.0-32.el6 @base

    3. Ramdoyal Prakash says:

      Hi Robert,

      Excellent scripts. I have tried it but only getting update for the localhost itself. All other servers that are reachable from the localhost are not being updated accordingly? Any idea where the problem might be? Thanks Prakash

    Your Reply