My notes and ramblings, normally about automation

VMware Cloud on AWS is a new on-demand service that enables you to run applications across vSphere-based environments plus access to a broad range of AWS services. PowerCLI already helps to automate your VMware Cloud on AWS tasks! This includes tasks such as creating SDDCs, adding or removing ESXi hosts, managing firewall rules, and so forth. The VMware Cloud on AWS (VMC) module was released as a low-level, API access only, module and will feature the following cmdlets:

VMware Tools is a collection of in-guest drivers and agents that optimize performance and increase the manageability for VMs within vSphere environments. Guess what, PowerCLI provides a way to automate the management of the VMware Tools lifecycle! Even better, a new module was recently entered into the PowerCLI Community Repository to help make those management tasks even easier than before! The module includes a collection of over 10 different advanced functions!

PowerCLI 6.5.3 was released a few short weeks ago and one of the biggest additions was the module to manage VMware NSX-T! This version of NSX provides network virtualization to not only VMware environments, but also multi-cloud and multi-hypervisor environments too. Before diving into the module itself, there are a couple things we should cover first. This module was released as a low-level, API access only, module. That means the module comes with the following cmdlets: Connect-NsxtServer, Disconnect-NsxtServer, and Get-NsxtService.

We’ve been looking at how to get started using the new vSphere Automation SDKs. In the last couple parts of the series we looked at the SDK for REST, which included Postman REST client samples, as well as some JavaScript samples. This time, we’ll be looking at the vSphere Automation SDK for Python! Prerequisites There are a handful of ways to install and setup Python on your workstation, I will be walking through a high level configuration for my Mac.

vSphere 6.5 introduced a big update to its newest API service, which is known as the vSphere Automation API. This API is a big step forward in the process of simplifying and modernizing our APIs. This service also allows us to introduce several new SDKs for the following programming languages: Java, Python, .NET, Perl, Ruby, and REST. This blog will take a look at the REST SDK and how to easily get started using it.

The Minneapolis VMUG had a terrific idea to put together a specialized event based around End User Computing (EUC) and I was lucky enough to be asked to come and present something around automation. That brings me to the session I chose, which is an introduction to PowerCLI for View. Horizon View and automation (Powershell, specifically) aren’t something that go together all that well at this point in time. PowerCLI for View is a great utility, don’t think I’m taking anything away from it nor bashing it, but it does take some understanding to kinda set the groundwork before you dive-in head first.

It’s that time of year again for vExperts… Time to replace the NFR licenses the vExpert program has graciously supplied us. Was given a gentle reminder of this the other day while preparing for a vBrownbag presentation: I’ve been on a big Powershell module making binge lately and noticed there really isn’t much for handling vCenter’s licensing, so I created one and published it out on Github. An overview of what’s currently included in the module:

Commitmas time has come again! For those of you that aren’t aware, Commitmas is a program which started last year (2014) with a goal of pushing people to learn how to use GitHub by way of 12 days of different challenges. This year has been expanded out to include the entire month for a full 30 days worth of challenges. Last year I followed along and tried to push myself to learn how to better use GitHub as I was a very basic user.

Recently rebooted one of my vCenters and came across an error on my ESXi hosts stating «Quick stats on *vmhost* is not up-to-date». A couple seconds worth of googling brought me to VMware KB2061008 which helped to resolve the issue. However, the KB only went through the GUI process of adding in the requisite parameters but there’s no fun in clicking through the GUI so I came up with a short script that’s applicable to vCenter 6.

A new update has been published to the NSX Module which I previously published on GitHub: NSXModule A reference to the first blog post I made concerning the module, including some screenshots of it actually in use: http://thatcouldbeaproblem.com/?p=823 The module has now grown to 31 of the following cmdlets: Cmdlet | Description Get-NSXController | Gathers NSX Controller details from NSX Manager Get-NSXControllerUpgrade | Gathers NSX Controller Upgrade details from NSX Manager Get-NSXEdge | Gathers NSX Edge Node details from NSX Manager Get-NSXEdgeDefaultRoute | Gathers NSX Edge Node default route details from NSX Manager Get-NSXEdgeFeatures | Gathers NSX Edge Feature details from all nodes within NSX Manager Get-NSXEdgeFirewall | Gathers NSX Edge Node firewall details from NSX Manager Get-NSXEdgeInterfaces | Gathers NSX Edge Node’s Interface details from NSX Manager Get-NSXEdgeNATs | Gathers NSX Edge Node NAT details from NSX Manager Get-NSXEdgeRoutingOverview | Gathers NSX Edge Routing Overview details from all nodes within NSX Manager Get-NSXEdges | Gathers NSX Edge Node details from NSX Manager Get-NSXEdgeStaticRoute | Gathers NSX Edge Node static route details from NSX Manager Get-NSXEdgeUplinks | Gathers NSX Edge Uplink details from all nodes within NSX Manager Get-NSXIPPools | Gathers NSX IP Pool details from NSX Manager Get-NSXIPSets | Gathers NSX IP Set details from NSX Manager Get-NSXLogicalSwitches | Gathers NSX Logical Switches and their details from NSX Manager Get-NSXManager | Gathers NSX Manager details Get-NSXManagerComponents | Gathers NSX Manager component details Get-NSXManagerSSH | Gathers NSX Manager SSH component details Get-NSXScopes | Gathers NSX Scopes and their details from NSX Manager Get-NSXSSOConfig | Gathers NSX SSO details from NSX Manager New-NSXIPPool | Creates an NSX IP Pool within NSX Manager New-NSXIPSet | Creates a new NSX IP Set within NSX Manager New-NSXLogicalSwitch | Gathers NSX Logical Switches and their details from NSX Manager Remove-NSXEdge | Deletes an NSX Edge Node from NSX Manager Remove-NSXIPPool | Removes an NSX IP Pool within NSX Manager Remove-NSXIPSet | Removes an NSX IP Set within NSX Manager Remove-NSXLogicalSwitch | Gathers NSX Logical Switches and their details from NSX Manager Remove-NSXSSOConfig | Removes NSX SSO config from NSX Manager Restart-NSXManager | Configures the NSX Manager for reboot Set-NSXManagerSSH | Configures NSX Manager SSH component Update-NSXEdge | Updates the NSX Edge via Update parameter

My home lab has been in need of some upgrades lately. One of the easiest, and cheapest, was the addition of PernixData and their FVP Freedom edition release. Couple of caveats I feel I should cover if you’ve never been exposed to PernixData’s FVP product: FVP, the normal offering, cannot activate a Freedom license. FVP Freedom edition cannot be installed and used in trial mode. FVP Freedom edition can only use RAM as an acceleration resource and requires a minimum of 4GB free per host.

For those that have been requesting some vCOps and/or vROps integration into PowerCLI, as I have been, we finally have our solution! PowerCLI 6.0 R2 brings that to the table in the form of a new module:VMware.VimAutomation.vROps The following functions are featured in the module:Connect-OMServer Disconnect-OMServer Get-OMAlert Get-OMAlertDefinition Get-OMAlertSubType Get-OMAlertType Get-OMRecommendation Get-OMResource Get-OMStat Get-OMStatKey Set-OMAlert Here’s a couple tips to get started using it:To begin pulling stats you will need to authenticate to the vROps instance via Connect-OMServer:

I’ve been lucky enough to get a chance to do some work involving VMware’s NSX product lately. Having watched a bunch of VMworld sessions, live demos, and messed around with it in the VMware Hands on Labs I was fairly comfortable in an existing environment. However I’ve gotten fairly used to using Powershell to do most of my work and there doesn’t appear to be much out there in the way of cmdlets or functions.

If you’ve had any chance to use the HP Scripting Tools for Powershell at all you might have noticed some inconsistencies specific to the handling of server names. These issues are only made worse when combined with blade enclosures. The biggest example to illustrate this is by using the get-hpiloservername cmdlet: Now by going to the login screen of the iLO Management page we see: Since this is a blade, let’s also see what the Onboard Administrator (OA) Device Bay Summary page says:

I’ve been given the chance to work with View a little more here recently and focus in on some of the gaps that are missing, specifically around reporting and alerting. vC Ops and the View adapter are in use, however the alerts leave much to be desired. I’m glad to be able to say that the gaps are filled in with the new version, and new title, of vR Ops and the View adapter but this environment is not yet to that point.

For those that haven’t heard, vCenter Operations (known better as vC Ops) has been not only updated but renamed. It’s new name is vRealize Operations (or, probably, vR Ops) and it is officially version 6.0. Previously the system was deployed in a vApp containing a UI VM and an Analytics VM. The new systems incorporates a roles for the VMs such as Master, Master Replica, Data and Remote Collecter. However, this blog post isn’t to focus on what’s been updated.

There’s nothing worse than having inconsistencies in a VMware cluster. This includes patch level, driver level and definitely firmware levels. In this particular case, the focus is on the physical network adapters. Unfortunately there’s no real easy to pull this directly from the vmhost and network related PowerCLI cmdlets, however you can still use PowerCLI to pull this information by way of the get-esxcli cmdlet. After running the script below, you’ll find an output similar to the following:

Documentation is a good thing. No matter how big or small. One of the easiest methods of documentation is to use the built in annotation section for «Notes». What I’ve come up with is a fairly basic script to go through all the VM objects that do not contain notes and allow the user to insert notes on a line by line basis. Here’s an example: Here’s the script to accomplish it:

Found myself in the position of having to add some permissions to an existing file share… Unfortunately none of these systems were 2012R2, whom can take advantage of the SMBShare cmdlets, so this ended up being a bigger task than I would’ve thought. I found tons of help and posts on creating shares, but found a surprising lack of information on a task of this nature which I would’ve thought fairly basic.

Ran into an issue lately where I found a host had lost its storage. For whatever reason HA didn’t kick in to bring all the VMs back to life and there was a need to recreate ~75 VMs whom were in an unknown and/or orphaned state. It looked a bit like this: PowerCLI to the rescue! Note: this was a script that worked in my environment. There is no warranty or support with this script, please use at your own risk.