One of the most common tasks on one datacenter, is the management of the IP Network: assigning IP addresses, creating networks (and subnetworks), creating hosts and setting hostnames. On smaller scale, having a spreadsheet may do the trick, but as datacenters grow (both physical and virtual), both in number as in complexity it quickly underperforms. Even, with all virtualization, this task won’t get any simpler, it will actually get more and mode complicated, because at least, it needs to be performed twice: at the physical hardware level, and at guest level.
So, there is the need to create a tool to handle this task, and in fact there are already a number of them, such as TIPP and phpIPAM, and both mostly get the job done:
- Create networks and subnetworks;
- Assign VLANs to networks if local;
- Create hosts and assigning hosts to networks;
- Assign switch port to hosts
- Simple statistics com network IP usage (free IPs, used IPs, etc);
Those tools are also known as IPAM (IP Address Management) tools.
And also some tasks which should also be performed, but aren’t:
- Assigning firewall rules to networks and hosts;
- Add links to hosts (eg. a link to the specific Cacti charts);
But these tools only show one side of the question: the network side. As the raison d’etat for a network on a datacenter is to allow different hosts to communicate and create platforms. It the hosts and platforms side of the story which gets forgotten, as some features get unanswered:
- Which are the hosts involved on a platform?
- See the network from a platform perspective;
- On which platforms do this hosts participate?
- Which firewall rules are related to a platform, and as such, to a set of hosts?
- Which hardware is supporting a host?
- In sum, to relate hosts, networks and platforms.
This is due to the teams working on datacenters: there are the network team, and the platforms teams, and sharing a knowledge base is often too much.
Which is where MediaWiki and Semantic MediaWiki enters: to allow for one single knowledge management platform, allowing different perspectives, dedicated to each specific usage: both for the network teams, and the platforms teams.
The Answer: The Datacenter Wiki (TDW)
Data is useless without structure, but having an inflexible structure won’t get you much farther. Making relations between all you data, is the where you need to go.
The Datacenter Wiki is not a new wiki software, but a set of templates and demonstration pages, which allows users to properly manage a small to midsize datacenter, either physical or virtual, linking IPs, Networks to Hosts and it’s underlying platforms, something more traditional tools cannot do.
So, a list of features need to be implemented:
- Creating a Datacenter (Currently only manually)
- Creating Firewall rules
- Creating Networks (Done)
- Validating Subnetworks
- Setting VLANs, if applicable
- Displaying Network Usage statistics (Done)
- Displaying aggregated Network Statistics
- Creating Platforms (Done)
- Creating Switches
- Adding available VLANs
- Creating Hosts
- Adding hosts to Ethernet Switches
- Assigning IP adresses to hosts (Done)
- Assigning a platform to a hosts (Done)
Requirements
Well, the easiest way to set up TDW is from scratch, whereas all packages and extensions are exactly on a tested version. Therefore, the following packages are required:
- Mediawiki 1.20
- Semantic Mediawiki 1.8
- Extensions:
There is also a zipped package with all necessary packages available.
Showing it
Well, let’s assume a fairly standard website setup, henceforth the Company Website, with a typical 3-tier architecture, as depicted below:
Here, we can identify a number of networks, front ends, back ends, management and backup networks, as well as a number of typical of host types, Load Balancers, Web Servers, etc, so this is a fairly simple data center with a single associated platform: the Company Website.
Creating a new network
Starting using a network management tool is … creating a network. On “My Datacenter”, insert the CIDR network value (xxx.xxx.xxx.xxx/xx)
Now, we should have several additional data related to a network, but for the time being, only “Description” and “Notes” are available. There are several additional data which need to be added.
Creating a new Platform
Well, on our scenario, a host can only be defined on the context of a platform. Even on a virtualized scenario this assumption holds: from the physical perspective, the host corresponds to the actual hardware and thus shall be included on the virtualization platform; from the guest perspective, the host is the actual virtual machine, and thus, shall be included on the context of the end user platform. As such, the next step is to create a platform:
At this stage, the information related to the platform is not extensive, as it needs to be customized to fit each organization’s own internal structure.
Creating a Host
Finally, we can create hosts.
Hosts need to be assigned to a specific pre existing Platform, and carries all the usual unspecific data (Description and Notes), but more important, all the IP configuration: addresses, interfaces etc. It’s from this data that all IP statistics are duly created.
Some other information shall also be present here, such as switch and switchport, from an IP interface perspective, and associated hardware, even on a virtualized environment (CPU, vCPU, RAM, HDD, etc).
Seeing the results
After creating all relevant networks and hosts, we can see the results. If you go to the Platform, in this case, the Company Website, where all hosts associated with the platform can be seen and access directly.
Then, we can go one be one of the recently created networks. Below an example though the Management Network.
Finally, on the whole Datacenter, the Network usage, by network.
The full list of networks on the Datacenter:
And finally, the full list of hosts on the Datacenter.
All the above can be easy recycled and customized for all needs, by adding necessary fields, or removing others.
The full XML containing all necessary pages, templates, properties and demo pages can be downloaded here:Datacenter_wiki_v0_1.xml.
Please feel free to drop comments, doubts or any other remark you feel interesting.
Is there a better install guide maybe that someone has done? This solution really looks amazing and is exactly what I am looking for.