As Built Report – Documenting Your Datacentre Infrastructure with PowerShell

Having worked the last 10 years as an IT consultant for a leading systems integrator, I have written my fair share of documentation. From design documents, migration plans, test plans, operational guides and health checks, I’ve done it all. But nothing annoys me more than having to write as built documentation.

What’s the problem with writing as built documentation?

As built documents require a lot of detailed system information, which often takes a significant amount of time and effort to retrieve. The information then normally requires you to transpose it from one format to another, again a laborious and time wasting exercise. In rare instances you may find a tool that can do this for you, however, it is never free, and it will never be able to perform this task across all of your systems. Sure, there’s always some basic tool available which can export into CSV, however the pain lies in transposing the information into a document format which is legible and presentable to a client. Excel spreadsheets are never acceptable to clients paying top dollar for your services.

Continue reading “As Built Report – Documenting Your Datacentre Infrastructure with PowerShell”

PowerCLI: Add & remove VMs from DRS Groups based on datastore location

Lately I have been working on a number of virtualization projects which make use of VMware vSphere Metro Storage Clusters (vMSC). With most of these types of implementations, virtual machines must be pinned to a preferred site to minimise impact to virtual machines in the event of a site failure. DRS groups are the most common way to achieve this, however I was wanting to find a way to automate the add/remove of virtual machines based on each VM’s datastore location.

To begin, I configured each of the datastores with a prefix of the site which was its preferred site, e.g. DC1-VMFS-01 or DC2-VMFS-01. I then placed VMs on a datastore which corresponded to their preferred site.

With the help of DRSRule I was then able to create two PowerCLI functions to automate the process to add the VMs to a corresponding DRS VM group based on their datastore location. The function can be used with a datastore name, prefix or suffix.

Continue reading “PowerCLI: Add & remove VMs from DRS Groups based on datastore location”