Ensuring peak configuration for vSphere with Runecast

Back in the day when I could spend time working on vCheck (I miss those days!) I always wished there was a programmatic way to look at the data in the VMware KB articles and be able to mine the information for potential issues or be aware of enhancements to the configuration I had made with my specific version of vCenter or other VMware products.

A few weeks back, whilst at the Melbourne and Syndey VMUGs in Australia I was introduced to a pretty awesome company and product that sparked my interest.. Runecast (https://www.runecast.biz/)

Recently I managed to find time to install this in my home lab and get started, I have to say, I was impressed.

What is Runecast?

Runecast is a virtual appliance which checks your environment, vCenter, ESXi servers and VMs to ensure they are running at peak performance with no known configuration issues or security issues.

The appliance is updated from the internet or can also be updated via a ISO image attached to the virtual appliance for environments without internet access.  It is updated with information which has been mined from the VMware KB articles and is used to proactively check log and configuration for issues in the virtual environment.

Additionally the information from the security hardening guide or what is now known as the vSphere Security Configuration Guide is also added to the virtual appliance to ensure security configuration is also taken into consideration. Continue reading Ensuring peak configuration for vSphere with Runecast

Is your PowerShell Core up to date?

I have been using PowerShell Core for a while now, its great not to have to spin up a windows VM every time I want to work with PowerShell on Mac!

Let’s face it though, not everything is there at the moment, so every time there is an update I want to know.  The Microsoft team are doing a great job of updating PowerShell Core and it seems like every time I go check there is a new version which fixes bug or introduces new cmdlets.

This does however mean I need to constantly go check the releases page or keep an eye on twitter to see when new releases come out.. until now!

The following function is a 5 minute function I wrote to keep on top of the updates, I have placed it in my PowerShell profile and now every time I launch PowerShell from my mac it checks and tells me if there is a new version as below:

Code

Just use the following code and paste it into the file located at $profile and every time you launch PowerShell it will go check for you!

Function Get-PowerShellRelease {
    #Using this to get rid of the nasty output Invoke-WebRequest gives you in PowerShell on the Mac
    $progress = $ProgressPreference
    $ProgressPreference = "SilentlyContinue"
    $JSON = Invoke-WebRequest "https://api.github.com/repos/powershell/powershell/releases/latest"| ConvertFrom-Json
    If ($psversiontable.GitCommitId) {
        If ($JSON.tag_name -ne $psversiontable.GitCommitId) {
            Write-Output "New version of PowerShell available!"
            $JSON.body
        } Else {
            "PowerShell is currently up to date!"
        }
    }
    $ProgressPreference = $progress
}

Get-PowerShellRelease

Retrieving NVMe details through PowerCLI

Recently I was contacted and asked if there was a way to retrieve information about the NVMe Drives in an ESXi host, this information is easily accessible via ESXCLI using the “nvme” namespaces.

Through PowerCLI this can be easily called and then each feature can be called under this namespace to give you detailed information on the NVMe devices in your ESXi host.  The reason they wanted to do this was to first check the firmware on all the NVMe devices in a cluster to see if they are at the latest revision.  Another reason they wanted this script was in case one of the NVMe devices was behaving differently than the others it would be an easy way to compare the devices.

You can see an example of the script running below:

Continue reading Retrieving NVMe details through PowerCLI

Automating the VSAN HCL with PowerCLI

Recently I was contacted by a customer who needed to be able to update their VSAN Hardware Compatibility List in the VSAN Health Check but was unable to do so via the GUI as their vCenter servers did not have internet access.

This is a common setup as a lot of customers clearly do not want their Server infrastructure having a direct connection to the internet due to strict security requirements. The problem is when the vCenter server needs to update the VSAN HCL database file it requires a connection to the internet to do this. Whats more, this specific customer had several VCs and was getting quite frustrated with the warning that the HCL database had not been updated. Rather than turning this feature off the customer was looking for a way to update the HCL from a computer that had internet access – his desktop.

New in PowerCLI 6.5 (backwards compatible to previous versions) is a cmdlet that will help us achieve this… Update-VSANHCLDatabase, as you can see from the below image this can be run either grabbing the database information directly from the internet or if you add the “FilePath” parameter you can load the database locally.

Continue reading Automating the VSAN HCL with PowerCLI

Getting started with PowerCLI 6.5 and Horizon View

One of the recent enhancement released in PowerCLI 6.5 R1 was the addition of a new Horizon View Module which allows you to manage Horizon View from a remote connection, this is a huge enhancement from the previous PowerShell implementation which fell short by many means.

With the new Horizon View Module you will be able to access 100% of the public API meaning if its available as a feature in the UI then the likelihood is that you will be able to automate it and being able to use these from a scripting host with all the other PowerCLI features, your own workstation or a jump box makes this very convenient.

What do I need?

Lets get started…

image

Get-Module –ListAvailable VMware*Horizon* | Import-Module

Get-Command –Module Vmware.VimAutomation.HorizonView

 

Once you have installed PowerCLI 6.5 R1 and launched it you will see that if we import the module and list the commands all we have is 2 cmdlets to work with, well that isn’t much use is it?! or is it?
Continue reading Getting started with PowerCLI 6.5 and Horizon View

Automating the build of your vSphere 6.5 home lab

This year at VMworld SFO and BCN I was involved in organizing a couple of great hackathons with the @VMwareCode guys and William Lam, these were highly successful and I have to say the highlight of both my VMworlds.  The teams were great, the end projects were fantastic and most of all, everyone that attended told me they learned something, this if you ask me was the main objective for the hackathon.

If you attended I do want to extend a huge thanks for joining in, having fun and learning with us.

credc8rusaa8un0

To put the hacakthon together we needed to build up some environments for people to use, William came up with the idea of using Intel NUCs as these were easily transportable and packed a punch for their size, the equipment we purchased is listed below:

Quantity: 2 Crucial 16GB Single DDR4 2133 MT/s (PC4-17000) SODIMM 260-Pin Memory – CT16G4SFD8213
Quantity: 1 Intel NUC Kit NUC6i3SYH BOXNUC6I3SYH Silver/Black
Quantity: 1 Samsung 850 EVO 500GB 2.5-Inch SATA III Internal SSD (MZ-75E500B/AM) (For Capacity)
Quantity: 1 Samsung SM951 128 GB Internal Solid State Drive MZHPV128HDGM-00000 (For Performance)

For the hackathon we needed to build a lot of these units, whilst we did some parts of it manually William and I recently took the time to complete the automated deployment of these units, in fact the script is not specific to these units, it will work on any ESXi host with 2 disks, one for performance and 1 for capacity.  Of course you can also adjust the script to use more disks if you have them!

Once you have ESXi on a USB insert it into the machine and configure it to boot from the USB, after the ESXi machine is on the network you can alter the configuration settings in the start of the script and run the script in the Deployment Script section of this blog to automate the following:

  • Configure VSAN in a single node configuration (Unsupported)
    • Use the smaller SSD for performance
    • Use the larger SSD for Capacity
  • Configure NTP on the ESXi Host
  • Enable SSH on the ESXi Host for debugging
  • Configure the Syslog settings on the ESXi Host
  • Deploy the VCSA on the ESXi Host
  • Enable VSAN Traffic on the Management Network
  • Create a Datacenter
  • Create a Cluster
  • Create a subscribed content library for William Lams Nested ESXi Library
  • Enable Autostart so the VCSA VM starts when the ESXi machine powers on
  • Enable SSH on the VCSA Server

Continue reading Automating the build of your vSphere 6.5 home lab

VMworld VMware Code Hackathon to hit Barcelona 2016

NUCs.jpgOne of my most memorable and enjoyable times this year at
VMworld USA was the Hackathon, basically 5 teams of developers and scripters, who had mainly never met each other before were formed and took part in a Hackathon organized by myself, William Lam and the VMware Code team.  These dedicated coders gave up free vendor meals and alcohol (OK well maybe we provided both as well) to essentially come code with us on 5 Intel NUC units we had pre-built with vCenter/ESX and VSAN.

The people who were involved ranged from people just learning to coding ninjas and API experts, that’s what I loved, seeing these people learning and working together was truly awesome!

What was involved?

The 5 teams each individually worked on a project which they had come up with and registered before the event, they ended up producing 5 individual projects which were judged and a winning team was selected.

The projects will soon all be available on github or commits to existing projects so the entire VMware community can benefit.

The projects were varied throughout the VMware product range and are listed below:

  • Team 1 – Worked on a project which provided community health check against the vSphere platform (vCheck Enhancements)
  • Team 2 – Worked on Autoscaling Groups for vSphere
  • Team 3 – Worked on writing vSphere DSC resources for Configuration Management
  • Team 4 – Worked on Visualizing Ops: VMware Telemetry with Snap and Grafana
  • Team 5 – Worked on Using Test Driven Development to validate NSX

I know everyone who attended thoroughly enjoyed the event whether they were part of a team or just turned up to spectate, drink, eat and heckle. Continue reading VMworld VMware Code Hackathon to hit Barcelona 2016

Working with maintenance mode in vROPs via PowerCLI

A while back I was contacted by someone who knew that PowerCLI now worked with vRealize Operations (vROPS) and knew it covered the entire API but was unsure how to get to the point where they could achieve what they wanted.

Before I go into what they were doing I highly recommend that if you are interested in learning what is available via VROPs and PowerCLI you check out the following awesome posts by John Dias

And specifically check out this post which tells you the more advanced feature of being able to access the entire API and create your own functions.

So, the story around this script was that this person was heavily using vROPs in their environment to monitor and troubleshoot their VMware infrastructure, they had it highly tuned but also used PowerCLI to automate some maintenance and updates of the infrastructure, the problem was that every time they performed these tasks they would get automated alerts from vROPs to tell them that things were down or not behaving correctly.

This while expected was clearly a pain as we all know that unwanted email from a monitoring system can get tedious and eventually ignored to the detriment of something important being missed.

Continue reading Working with maintenance mode in vROPs via PowerCLI

Check your Cisco UCS environment for issues with vCheck

Do you use Cisco UCS? If you do then this will interest you.  vCheck is basically a FREE HTML reporting framework that was written to originally check a VMware environment but as it uses PowerShell it is easily adjustable to check anything that is PowerShell enabled, like for instance…. UCS environments.

One of the objectives of me putting vCheck into github was the hope that people would be able to easily pick up the framework and create their own projects to check other PowerShell enabled products, this has already been done with a number of different products as listed below:

Download Link Github Project Example Output Page
vCheck for vSphere Click here Click here
vCheck for Exchange 2010 Click here Click here
vCheck for vCD Click here Coming soon
vCheck for SCVMM Click here Click here
vCD Audit script Click here Click here
vCloud Air Audit Click here Click here

And now you can add Cisco UCS to the list, Joshua Barton has done a great job of using the framework to create a new vCheck edition that will enable UCS Admins to run a check on their systems and bring back any known issues that may be a problem.  Don’t forget, this as with all the other vCheck editions is a community project so you can add your own checks very easily in the plugins folder, if you need help then check out this early video which was recorded of me showing how to easily do that.

So what does it check currently?

  • General Details
  • Recent Faults
  • Unassociated Profiles
  • High Pool Utilization
  • Fault Retention Policy
  • Default Adapter Behavior
  • Non-Functioning Enabled Ports
  • Switching Mode
  • Inactive Servers
  • Uplink Flow Control
  • LACP Policies
  • UDLP Policies
  • Maintenance Policies
  • Default Pool Schema
  • Chassis Discovery Policy
  • Power Policy
  • SEL Policy

What does it look like?

As you can see, the html file that is created, which can also be scheduled to be sent to you as an email looks pretty awesome:

UCS-vCheck

 

The full example can be seen here: http://www.foobartn.com/assets/examples/example-report.html

How do I download this and get involved?

Visit the Github Rep here: https://github.com/FooBartn/vCheck-UCS/tree/dev

Download it directly from here: https://github.com/FooBartn/vCheck-UCS/archive/dev.zip

And make sure you thanks Joshua on twitter via @FooBartn

Virtually everything is POSHable