NMTools Framework Services explained

Those who have tried NMTools may have realized that provides certain services that are always needed whenever one have to deal with a large environment.

Network Services

In this context, we understand Network Services as the ability to express your Target Node set through different input sources and the capacity to iterate through it handling every exception that might occur.

For example, your Target might be a host name, an IP address, a collection/combination of host names and/or IP addresses, an IP range or a CDIR network notation. Additionally, this information may come from the command-line, from a file or from a database query.

You might be using NMTools for Network Discovery or simply to connect to Nodes you already know. Whichever the case, error reporting, proper logging and exception handling is key. You don't want your Network Discovery session to fail because some node in the middle did so. Don't you?

Finally, once you start dealing with long running sessions you begin to require some sort of run-time feedback about Progress, Speed and Estimate-To-Complete information.

The NMAgent will do all this for you.

Authentication Services

Authentication Services provide the ability to connect to each Target Node with the correct credentials.

To do so, several services are provided:

Use current user context.

Use the credentials supplied by the user interactively.

Use Multi-Credential Mode, where you supply a file indicating the credentials required for each Target Node.

Use Brute Force Login Mode, where you supply a reduced set of credentials and let the system figure out which one works for each Target Node or for each Module.

Of course, whenever you store credentials you need to take protection measures to protect them. The NMTools also provide tools to cover these needs.

CMDB integration

Having a bidirectional communication between IT Information Systems, like a CMDB, and IT Operations Tools mutually benefits the IT Information Systems and the IT Staff responsible for IT Operations.

Tasks like automatic network discovery, data collection/gathering and configuration management get really improved when both worlds start talking, specially on a large environment.

NMTools works together with OpenSLIM as his CMDB. Of course, as any Open Source Solution, it is pretty easy to think and design a Federation Scheme with any other CMDB system.

Data Collection and Data Persistence

Once you are able to navigate through your network, you'll soon start feeling the need to store your data in a meaningful and extensible way.

NMAgent can store data in Property-Value pairs using his own Collection Database. Along with this basic information, it also stores Time Stamps, Exception information and the Raw Output gathered from that Node.

All the information belongs to a user Session so that it is easier to handle and maintain. In the near future I plan to add support for multiple Session Stores. But, today, NMAgent only supports a single Session Store.

This design allows you to have the information off-line for future use. This is specially helpful in organizations where strong separation of duties take place.

Extensibility Framework

Of course, you want a framework to be extensible in order to match your changing needs.

NMTools resolves this issue placing the core services inside the NMAgent and letting your Tools become a Module that can be run against your Selected Targets.

Modules can be organized in Libraries and Configuration Profiles to make them easy to manage and maintain.

Recently it has been added the concept of Pipe Line Enabled eXtensions (PLEX Modules). This functionality allows you to take any string from the Pipe Line and run it on a Target Node as a local command. As you can imagine, this is specially suited for unplanned or exploratory scenarios.

Run-time Services

Last but not least, run-time services. As you may know, no UI is 100% perfect. This is specially true on IT Operations where circumstances usually change quickly.

That is why you can load/run NMToolsas a library on any PowerShell script or jump into Shell Mode to tailor things by yourself.

Of course, this far from perfect… But is certainly better than having only one single invocation method.

Last thoughts

Many command-line tools have their own ways for handling these issues. They are good and they are always there whenever you may need them.

The services described above can be described as “common”, “repeatable”, “utility” services that are usually needed to get the stuff done, but have nothing to do with our real goal. This is exactly where NMTools helps you: placing a uniform layer for common utility services that let focus on your real problem.

This framework makes scripting and CLI training easier for technical staff. This way it might became a valuable tool in your Transformation/Training Program.

As I said before, the NMTools are far from perfect and, by no means, represent an all-or-nothing proposition that excludes any other approach. It will often play a complementary role inside the IT Management ecosystem and you will have the answer of how you will finally use it.

As it has been previously noted, future releases will add more features and improvements to these services. This will empower your potential without changing the way you use this framework. Therefore, I would strongly appreciate your feedback on whatever aspect you may consider relevant. Thanks in advance :-).