How-To

How to replace a vCenter password in vRealize Suite Lifecycle Manager 8.1 using the API

Following along the theme of one of my previous posts on vRealize Suite Lifecycle Manager (vRSLCM) and its REST API, here’s another on replacing the password for a vCenter Server in a vRSLCM “Datacenter”. Similar to my previous post, we’ll be doing this in the Swagger UI as the ability to replace the password is not available in the standard vRSLCM UI (v8.1). The APIs used in this post are private and, as such, not supported by VMware.

Download a private GitHub Repo using AWS Lambda

As mentioned in this post I needed to download a private GitHub repo as a ZIP file. The GitHub repo containing this blog is now set to private (mainly to protect my backlog of drafts), which broke my AWS Lambda function (see here and here). Minimal changes were required from the functioning code, but there was a lot of testing. Some key changes were: Setting the GitHub Personal Access Token as a Lambda variable Modify the file download function to use custom headers Consuming the token from within Lambda to access and download the file The new function to download the repo:

How to replace the vRealize Suite Lifecycle Manager 8.1 certificate using the API

I don’t like doing things manually. My previous post showing how to replace vRealize Suite Lifecycle Manager certificates using the GUI is straight forward, but it’s far too manual. I’m going to show you how to replace the certificate using the vRSLCM 8.1 API(which you can wrap in a script). You can use any tool to interface with the API. I stick to Postman, curl, or if the application provides it, a Swagger UI.

How to build a per-guest filesystem report in vRealize Operations using the 'Breakdown By' feature

Overview Back in my operational days, my team and I needed ‘pretty’ reports on all VMs in the environment. In almost every case, we needed to include metrics on Guest OS volumes. Back in vRealize Operations 5.x, 6.x and 7.x, I could never find a way report on all instances of a guest volume on many VMs. It always looked like this: Example of a not-so-pretty filesystem report out of vRealize Operations (8.

How to replace vRealize Suite Lifecycle Manager 8.1 self-signed certificate with a certificate from your Microsoft CA

This post covers the process of replacing a self-signed SSL certificate running on a vRealize Suite Lifecycle Manager (vRSLCM) 8.1 appliance. I’ll be using the UI to show you how to do it. Pre-requisites Make sure you have a defined a certificate template as per https://kb.vmware.com/s/article/2112009 Confirm your user account has the correct privileges to request certificates using Microsoft CA Web Server enrollment. At the least, find someone that can submit and approve it for you.

Update - Deploy a Hugo website from GitHub to S3 using GitHub Webhooks, API Gateway and Lambda

Avid readers, I bring to you a nice little update to one of my more popular posts on how to deploy a Hugo website from GitHub to S3 using GitHub Webhooks, API Gateway and Lambda. Since that post, AWS has stated that they will deprecate support for Python 2.7 starting 31st December 2020. Not only that, the requests module has been removed from the AWS SDK for Python so the file downloads that happen in my Lambda function stopped working.

Bulk delete Canceled Alerts in vRealize Operations using the REST API and Postman

Hello again! Today a customer was working with the vRealize Operations 8.0 REST API in Postman and trying to bulk delete “Canceled Alerts”. The documentation in the API states that you need to request a DELETE against the https://{vra-fqdn}/suite-api/api/alerts/bulk API and you should be OK. Well, not exactly. I’ll start this post by assuming that you’ve seen the excellent Postman collection on VMware {code}. This will get you up and running quickly and allow you to login and get an authentication token.

Install Firely III on FreeNAS

During my time at iseek, a great colleague Angus Kelsey introduced me to a self-hosted budget management application Firefly III. I was impressed with the finish on the product and was happily surprised to find it was open source and could be self-hosted. I’ve got a FreeNAS server running at home for private workloads and wanted to install Firefly III on this server. Can’t be that hard, I thought. A quick search online didn’t find a straight forward article on installing exactly what I needed to get up and running.

Using Regex in vRealize Orchestrator - extracting useful information from a VM name

Recently I had a customer wanting to identify if a VM of theirs was in Production, Test, or Development based on the VM’s name. Luckily, all of their VMs are named using a naming standard of “{customer}{P|T|D}{application}{server-role}”, giving a generic VM name like “custpdc1” or “cust-t-sql2”. They’re just getting started on their journey with vRealize Orchestrator, and wanted to use it to perform this function. Easy enough, what do we need?

Deploy a Hugo website from GitHub to S3 using GitHub Webhooks, API Gateway and Lambda

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.

Retrieve vCenter as an SdkConnection from vCloud Director in vRealize Orchestrator

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.

Sending VM keystrokes using vRealize Orchestrator

Last year the legendary William Lam (Virtually Ghetto) posted a handy Powershell script that can use the vSphere 6.5 API’s to send keyboard key strokes to a VM (https://www.virtuallyghetto.com/2017/09/automating-vm-keystrokes-using-the-vsphere-api-powercli.html). I recently had a need for this feature but in vRealize Orchestrator and in Javascript instead of Powershell so I’ve re-written it in Javascript. I’ve included 2 additional script blocks that you can place into Scriptable Tasks or Actions too. Send a string as VM keystrokes to a VM Console You’ll need the following input parameters defined:

How to restart the BMC on a Quanta server

If you’ve ever been in a situation where your Quanta BMC is misbehaving and you need to reset it, you may have noticed that the built in CLI for remote management (SMASH) is missing ipmiutil, or at least it was on my machine. To reset the BMC on a Quanta machine, SSH to the out of band IP address of the server. Once you’ve logged in, run show to list the available ‘targets’ for the SMASH CLI.

Enumerate vRO Workflow Inputs into a JSON object

Just this week I had to create a JSON object that contained all of the workflow input parameters and their respective values. While I can’t guarantee this is the best way to do it, it definitely works. I’ve tried to keep the comments succinct so if you have any questions please ask. Code // Get all input parameters for the parent workflow var inParamsArray = workflow.rootWorkflow.inParameters; // Get all input parameters for the current workflow to search through later var paramFinder = workflow.

Auto deploy a Hugo website from GitHub to S3 - Part 2

This post is part of a series. You’re reading Part 2. Auto deploy a Hugo website from GitHub to S3 - Part 1 Preparing for the AWS Lambda function Now that GitHub notifies AWS of changes, we need to create the “doing” part of our project. We’re going to use AWS’ Lambda service to perform the work. Lambda will execute the function everytime a notification is published to the SNS topic.

Auto deploy a Hugo website from GitHub to S3 - Part 1

This post is part of a series. You’re reading Part 1. Auto deploy a Hugo website from GitHub to S3 - Part 2 Introduction For those who don’t know what Hugo is, it’s a static website generator. Its source material is a Hugo template with your content in Markdown. I’ve used it for a while, in fact this blog is generated using Hugo. Hugo can give you an entire site in HTML/CSS and any required Javascript that you can then place anywhere on the web.

Updating a Route53 domain's Name Servers

I recently had the need to update an AWS Route53 domain NS configuration so that it could be protected by CloudFlare. This domain was purchased via Route53. I had updated the hosted zone NS records with the new Name Servers, but the domain continued to point to AWS and it drove me nuts. Turns out there is another section in Route53 where you updated the NS records for your Route53 managed domain.