I work for a relatively small software development firm that grew pretty quickly over the last few years. This hoewever caused a lot of growing pains, especially infrastructure-wise. It is currently a wildgrowth of VM's on multiple ESX servers, maintainability and knowledge about the servers and what's running on them varies from server to server. Most VM's run services (web, custom tcp servers, ...) developed in-house for customers. Some are being monitored centrally, most are not, no difference is made between servers supporting in-house activities and external services for customers. So I was given the task to clean this up.

I'm pretty new to the 'real' sysadmin job, but basic good practices are clear to me. For most things I have found good solutions like Puppet/Chef, Nagios/Icinga, LDAP for central user management, backup, ... which are all on the "todo" list at the moment, but first things first.

I need to create some kind of inventory, get an overview of the servers. I thought tools for documenting something like this would be readily available, but my good friend Google seems to fail me on this-one. The current documentation we have is a mess, everybody documents in a different way, not centrally stored, different layouts, crucial information forgotten in almost every document I've encountered.

So what am I looking for? A tool to document servers, services, hardware and link these items to a "project" or multiple projects. I have thought of some special wiki page templates or something, but this would lose a lot of information or obscure it a lot. Having a quick, correct and consistent overview of for example all services running a specific application, or linked to a specific project.

It also seems a lot of applications would need exactly the same information over and over again, duplicating a lot of functionality. Central configuration management/provisioning and monitoring both are completely standalone at the moment and I think it's just weird nothing exists to manage all this common information and generate proper configs for this. I know of NConf for nagios, but this seems too limited.

In an ideal world, I'd find a tool where I can manage:

  • Hardware
    • Lifecycle management
    • Hardware specifications
    • Location
    • Host type (ESX/Xen/KVM/...)
    • Wiki-style doc
    • ...
  • Server (Linked to hardware)
    • Hostname(s)
    • IP(s)
    • Management login(s)
    • OS details (version, end of support, ...)
    • Link with hardware
    • Provisioned hardware (CPU/Memory/Disk)
    • Backup policies, restore documentation
    • Wiki-style doc
    • ...
  • Service
    • Name
    • Type
    • Name of the process/executable
    • How to start/stop
    • Default used TCP/UDP Ports
    • Requires database + type
    • Wiki-style doc
    • ...
  • Application (an instance of a service)
    • Service type
    • Server on which the application runs
    • Project(s) to which this instance belongs.
    • Dependencies (on other applications)
    • Date in service.
    • hostname (for vhosts etc)
    • Software version
    • role: Production/QA/Testing/development
    • Overridden tcp/udp ports
    • Wiki-style doc
    • ...
  • Projects
    • Contact persons (technical, project management, commercial contact, ...)
    • Client
    • Links with issue tracker/ticket systems, ...
    • Wiki-style doc
    • ...

I'm probably forgetting a whole lot of other usefull/necessary things, but I think system like this would be extremely usefull, with plugins which could for example extend the amount of information, add "templates", could generate configuration files for other services, like basic setup for monitoring, configuration for provisioning, ...

Maybe this is a bad idea after all, maybe there are better solutions for this, but I would gladly be pointed in the right direction then. I first thought of a wiki, but that becomes a mess and is an integrity nightmare when multiple people have access.

Any ideas?

closed as not constructive by Zoredache, Ward, mdpc, user9517 Nov 20 '12 at 21:19

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

locked by HopelessN00b Jan 21 '15 at 17:47

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. See the help center for guidance on writing a good question.

Read more about locked posts here.

  • Not exactly an answer but just to show what I have done in the past and that I doubt there is 1 tool foor all of that. For physical hardware/rack I have used RackTables, coupled with Foreman and puppet and I have an inventory of all the physical/virtual installations, ipplan is used to manage ip provisioning, the rest is in the wiki, also we modified foreman so we can have an extra field to link a wiki page for each server. – jnvilo Nov 20 '12 at 11:53
  • imho device42 covers lot of it and with open APIs you can easily integrate with other systems. – R D Nov 22 '12 at 18:19

You can try some Asset Management type Software to do what you want.

I have been using GLPI for quite a long time and does most of what you want.

Not the answer you're looking for? Browse other questions tagged or ask your own question.