After many years of working with VMware products and having been on the receiving side of VMware's support and business development team, I can now hop the fence and make a difference directly with VMware! I was given the amazing opportunity to join the Brisbane office in Queensland, Australia as a Technical Account Manager and today was my first day! Without a doubt, there is plenty to learn and do over the next few weeks (maybe even months) and I expect this blog will take a temporary back seat until I've taken the reigns and settled into my new life.
Introduction We all know the immense pain of managing Windows Server VM templates, regardless of the platform you're using. Sure, you can build them once then update them manually on a schedule. However, it's tedious to document and even worse to execute, making sure the template is identical every time (except for your new updates of course). In my experience, you also have to maintain multiple versions and editions of Windows Server.
Just recently a few colleagues of mine were attempting to generate new private keys with a 4096 bit size but they were seeing shocking performance from all of their Linux VMs. They were seeing key generation taking up to 15 minutes while smashing away at the keyboard to generate entropy. It wasn't a resource issue, the VMs were sized appropriately and showed no signs of stress. They asked me if they could throw a “Chaos Key” USB device into each of the ESXi hosts to generate more entropy to reduce the time it takes, but I knew that wasn't required (like I was going to let that happen).
If you followed my previous posts on auto deploying a Hugo site from GitHub to S3 (Part 1, Part 2) you may have noticed that GitHub is deprecating the GitHub Services Integration mechanism. This is critical to the auto deployment function so we'll need an alternative. To add to my woes, I've found that the Node deployment package and all of its dependencies involves more maintenance than it deserves. I also noticed that the original Node package was only adding to the target S3 bucket, not performing a sync or equivalent.
With the release of vCloud Director 9.5 I've gone ahead and upgraded my test environment from 9.1 (specifically 220.127.116.11) to 9.5. Straight away I notice in the release notes that having a mix of vCloud Director appliances and Linux servers (with vCD installed) is not supported. There is also no supported migration method to move from Linux servers to the appliance. So, in place upgrade it is! I won't go over the entire experience of using the HTML5 UI, only things I've noticed that are new in 9.
VMware has released vCloud Director 9.5! If you go to the My VMware downloads section you won't find it. You need to change the URL so it has “9_5” on the end: vCloud Director 9.5 Download Assuming you have the right entitlements, you'll be able to start downloading the upgrade bin's and the OVA. To find out what's new, VMware have released a PDF highlighting all the new features: What's new with vCloud Director 9.
I've been working on some more automation lately for vCloud Director using vRealize Orchestrator. One of my use cases was to retrieve the SDK Connection scripting object for the linked vCenter Server. My starting point was an Org vDC, and from there I wanted to get the backing vCenter Server. Let's start by getting the Provider vDC vCloud Reference object from the Org vDC scripting object (orgVDC): var providerRef = orgVDC.
I've got a standalone vRealize Orchestrator 7.4 instance in my test environment and with the release of vRealize Orchestrator 7.5 I wanted to run through the upgrade. If you haven't noticed already, it's a migration to a new appliance not an in-place upgrade. This means the new vRO instance will need to connect to the existing vRO appliance and pull all of the data. When I tried doing my migration/upgrade, I got the following error message during the validation phase:
I've been working on some automation that will create metadata against objects in vCloud Director using vRealize Orchestrator. If you've ever had to do this before you'll know how painful it can be to get your head around all of the objects/transformations you need to make before you can even set the metadata to the object. First you take the metadata value (in this case a string) and create a new VclMetadataStringValue object.