I’ve added a couple prototypes to my prototype wiki. All of the templates, properties, and forms are protected from editing; however, you can still add/modify data. You can modify the functionality of the prototypes on my sandbox wiki, if you’d like to test things out. The two prototypes are a helpdesk system, and a datacenter inventory tracking system.
[toc title=”Table of Contents”]
Helpdesk system prototype
I’ve made a fully functional helpdesk application using Semantic MediaWiki (SMW), Semantic Forms (SF), Semantic Tasks (ST), Semantic Result Formats (SRF), Parser Functions, and Dynamic Sidebar. As an anonymous user, you can search, and view tickets; as a logged-in user, you can create tickets, and act as a supporter. The helpdesk also supports supporter groups, which are used for email notification, and for getting lists of tickets pertaining to your group.
Test it out in the prototype (OpenID is supported). Instructions for making yourself a supporter, and adding yourself to a supporter group are on the main page. The get emails, set your email address and confirm it via preferences. Notice that mail from my server may end up in your spam folder.
If you’d like to modify the helpdesk, you can in the sandbox. I wipe out the sandbox weekly, and re-sync it with the prototype.
In a future blog post I’ll explain how to create a system like this.
Datacenter inventory system prototype
I’ve added a form and template to track server information like IPs, MACs, OS type, OS version, Hardware information, etc. This information can then be queried and displayed. Here’s a few examples of how this can be really useful:
- You have a virtual infrastructure, with a shared storage backend. You are doing thin disk provisioning to save storage space. As you are adding virtual machines, you are allocating OS space to them that isn’t necessarily being used on the storage space. It is possible to overallocate your storage; if you overallocate the storage too much, it is possible your VMs will start to fill up their allocated space, and eventually exhaust all available shared storage, killing all your VMs. With this inventory system, you can track how much space is allocated to each VM, then write a query to sum the total allocated storage space for all of your VMs. Doing so can give you an immediate view of how much storage you have allocated versus how much you have available. See the servers category for an example of this.
- You need to keep track of who is assigned to admin which systems, to ensure that all systems are covered and all systems have backup admins. With this inventory system, you can assign wiki users as admins to systems. This information can be queried, so if you have an employee leaving, you know which systems need to be reassigned.
- You have contractors who need to have a list of systems they manage. Since you can assign admins to systems, you can put a query on that admin’s user page that shows the admin’s list of systems. See my user page for an example.
- You use static IP addresses on your network, and want to keep an IP database. Notice in this situation, you’d also need more forms, which I’ll be adding later, for things like KVMs, switches, etc.
- You want to keep a MAC address database. Similar issues with the IP address database apply here.
- You want to keep track of server types, and number of types of servers on your network. This can be useful for server consolidation efforts.
- You want to keep track of what type of hardware you are using in your datacenter. This can be useful for consolidating and standardizing hardware.
- You want to keep track of which and how many operating systems are being used in your datacenter. This can be useful for consolidating and standardizing OS types.
Linking the two prototypes
These systems become even more useful when you start linking them. I will start adding some links soon for things like:
- Per system and aggregated changelogs. A simple query can give you the changelog from all servers, if changelog entries are per system.
- Per system and aggregated task lists. Since admins are linked with servers, you can even get per admin task lists.
- Patch tracking.
- Per system and aggregated change requests.
- Maintenance scheduling. Thanks to SMW, and SRF output formats, you can have a maintenance calendar, a timeline view of maintenance, and export iCals so that users can add the maintenance schedules to their own calendars.
Future prototypes will likely integrate further into these prototypes. An end goal of these prototypes may be an enterprise architecture management system.