Featured

Where are the VCDXs

VMware Certified Design Experts (VCDX) is an elite group of VMware Experts. VMware CEO, Pat Gelsinger, has called it the “PhD” of VMware. As of February 6. 2021 there are 292 VCDX in the world. To put that number in perspective, there are fewer Representatives in the US House Of Representatives. According to this post from VMware, there are 350,793 VMware Certified Professionals (VCP) in the world. By that number, only 0.08% of all certified VMware Professionals are VCDX.

Disclaimer: I do not guarantee accuracy of the numbers presented. These numbers were collected from public available data. The data was collected on February 6. 2021.

There are four VCDX certification paths

  • Data Center Virtualization (VCDX-DCV)
  • Cloud Management & Automation (VCDX-CMA)
  • Desktop and Mobility (VCDX-DTM)
  • Network Virtualization (VCDX-NV)
  • There are 42 VCDX that hold two VCDX certifications.
  • There are 6 VCDX that hold three VCDX certifications.
  • There is only 1 VCDX that holds all four VCDX certification.

If you would like to know more about each VCDX, the effort it takes to become a VCDX or more information about VCDX in general, go to https://vcdx.vmware.com

VCDX around the globe


VCDX distribution globally

Other are all countries together that have less than 5 VCDX.


VCDX in each country


VCDX in the United States


VCDX distribution in the United States

Other are all states combined that have less than five VCDX.


VCDX in each state of the United State of America


VCDX by company

VCDX distribution by company

Companies that have less than three VCDX were combined.


VCDX in each company


Inspect VMware ESXi log with local llama3.1 AI.

In this example I would like to demonstrate the use of the llama 3.1 AI Large Language Model. In this example a locally running llama 3.1 will inspect a VMware ESXi vmkernel log.

I am using an Apple MacBook Air M2 with 16GB of RAM. If you are using a Windows or Linux system the procedure might vary a little bit.

So the first thing to do is to download/install ollama from https://ollama.com. It is shockingly simple. You don’t need to create an account or register your email address. Simply download and install. It couldn’t be easier. Therefore I will not go further into detail about the installation of ollama.

I assume you have Microsoft Powershell and VMware PowerCLI running on your machine. If not, I quick google search should lead you to the steps needed to install PowerCLI, and if needed Powershell (newer Windows systems should have Powershell installed by default)

On a Mac I have to open a terminal window and start powershell by typing pwsh.

Now we connect to VMware vCenter server by typing the following (vcenter.lab being DNS the name of the vCenter Server. )

You will be prompted for username and password for the vCenter Server.

Let’s get a vmhost object using the Get-VMHost command and ESXi name and save it in the $vmhost variable.

With the cmdlet Get-LogType you can gather the available log types from the ESXi host.

Now we are using the cmdlet Get-Log with the required parameter -key and optional parameter -vmhost and save the result in the variable $vmkernellog

The output is not a simple string but of type VMware.VimAutomation.ViCore.Types.V1.LogDescriptor

To get the log, simply use $vmkernellog.Entries.

Now we use ollama to ask llama3.1 questions about the log file. The command for this will be ollama run and the LLM which in this case is llama3.1. llama3.1 is the default 8B model. To use the 70B model the command would be ollama run llama3.1:70b and for the 405B model it the command would be ollama run llama3.1:405b. However your computer most likely will not be powerful enough to run the 70B or 405B model. Ollama doesn’t have access to your local file system and therefore you cannot direct it to a file. But you can parse the string, which in our case is $vmkernellog.Entries and then ask your question about it. I have just stopped a vm called photon1 and I am going to ask llama3.1 about it. My question here is “vm photon1 failed, can you determine the reason?”

As we see, we will get an error message back. The reason for this is that llama3.1 can “only” handle 128K tokens. So we need to shorten the log first. The cmdlet Get-Log has a parameter -NumLines. So would could specify, let’s say 500 lines. However it would return the oldest 500 lines and I want the latest 500 lines. For that we have to filter the log after the fact. I use select -last 500 to do that and save the result in the $mylog variable.

Now I can run ollama again using $mylog

Ok, the result is not very convincing, but you get the idea. Of course you are not limited to ESXi log files but pretty much any data represented as string. To set this up only takes minutes. I was really impressed how easy it was to setup ollama and to get the logs from ESXi is also quick and easy. It also runs locally on your machine, you don’t need to worry about your ESXi log data ending up on the internet.

I would love to hear your feedback if you have use this method to have other data reviewed by llama and if you get any results that are valuable.

System Requirements for VMware Products 2023

Some of the VMware system (hardware) requirements on a single page. I hope it will be useful to you. I also have added the links to the source.

vSphere vCenter Server Appliances 8.0 (VCSA)

https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vcenter-installation/GUID-3683BA76-B08A-4DDB-9CCF-66660F6AD1CF.html

ProductSizevCPUvRAMStorageComment
vCenter VCSAtiny212 GB315 GB10 hosts and 100 VMs
default storage
vCenter VCSAtiny-lstorage212 GB1390 GB10 hosts and 100 VMs
large storage
vCenter VCSAtiny-xlstorage212 GB3145 GB10 hosts and 100 VMs
x-large storage
 
vCenter VCSAsmall419 GB380 GB100 hosts and 1,000 VMs
default storage
vCenter VCSAsmall-lstorage419 GB1435 GB100 hosts and 1,000 VMs
large storage
vCenter VCSAsmall-xlstrorage419 GB3195 GB100 hosts and 1,000 VMs
x-large storage
 
vCenter VCSAmedium828 GB600 GB400 hosts and 4,000 VMs
default storage
vCenter VCSAmedium-storage828 GB1600 GB400 hosts and 4,000 VMs
large storage
vCenter VCSAmedium-xlstorage828 GB3360 GB400 hosts and 4,000 VMs
large storage
 
vCenter VCSAlarge1637 GB965 GB1,000 hosts and 10,000 VMs
default storage
vCenter VCSAlarge-lstorage1637 GB1665 GB1,000 hosts and 10,000 VMs
large storage
vCenter VCSAlarge-xlstorage1637 GB3425 GB1,000 hosts and 10,000 VMs
x-large storage
 
vCenter VCSAxlarge2456 GB1705 GB2,000 hosts and 35,000 VMs
default storage
vCenter VCSAxlarge-lstorage2456 GB1805 GB2,000 hosts and 35,000 VMs
large storage
vCenter VCSAlarge-xlstorage2456 GB3565 GB2,000 hosts and 35,000 VMs
x-large storage

NSX-T Data Center, 3.2

https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/installation/GUID-14183A62-8E8D-43CC-92E0-E8D72E198D5A.html

ProductSizevCPUvRAMStorageComment
NSX ManagerExtra Small28 GB300 GBCloud Service Manager Only
NSX ManagerSmall416 GB300 GBFor Lab or PoC
NSX ManagerMedium624 GB300 GB
NSX ManagerLarge1248 GB300 GB
 
NSX Edge VMSmall24 GB200 GBFor Lab or PoC
NSX Edge VMMedium48 GB200 GBSuitable when only L2 through L4 features
such as NAT, routing, L4 firewall, L4 load
balancer are required and the total throughput
requirement is less than 2 Gbps.
NSX Edge VMLarge832 GB200 GBSuitable when only L2 through L4 features such
as NAT, routing, L4 firewall, L4 load balancer are
required and the total throughput is 2 ~ 10 Gbps.
It is also suitable when L7 load balancer, for
example, SSL offload is required.
NSX Edge VMExtra Large1664 GB200 GBSuitable when the total
throughput required is
multiple Gbps for L7 load balancer and VPN.

VMware Aria Operations 8.12.x

https://kb.vmware.com/s/article/91692

https://kb.vmware.com/s/article/78491

For storage requirements please see Sizing Guideline Spreadsheet attached to above link.

ProductSizevCPUDefault vRAMMax vRAM
VMware Aria Operations NodeExtra Small28 GBN/A
VMware Aria Operations NodeSmall416 GB32 GB
VMware Aria Operations NodeMedium832 GB64 GB
VMware Aria Operations NodeLarge1648 GB96 GB
VMware Aria Operations NodeExtra Large24128 GB256 GB
 
Remote Collector (RC)Standard24 GB8 GB
Remote Collector (RC)Large416 GB32 GB
Cloud Proxy (CP)Small28 GBN/A
Cloud Proxy (CP)Large432 GBN/A

VMware Aria Operations for Logs 8.12

https://docs.vmware.com/en/VMware-Aria-Operations-for-Logs/8.12/Getting-Started-Operations-for-Logs/GUID-284FC5F4-B832-47A7-912E-D407A760CAE4.html

For storage requirements please see Sizing Calculate attached to above link.

https://kb.vmware.com/s/article/60355

ProductSizevCPUvRAMComment
VMware Aria Operations for LogsSmall48Log ingest Rate: 30 GB/day
Events per Second: 2000
VMware Aria Operations for LogsMedium816Log ingest Rate: 75 GB/day
Events per Second: 5000
VMware Aria Operations for LogsLarge1632Log ingest Rate: 225 GB/day
Events per Second: 15000

Note: Use the Small version of the appliance in a proof-of-concept or test environment, but not in a production environment.

VMware Aria Automation Orchestrator 8.13

https://docs.vmware.com/en/VMware-Aria-Automation/8.13/Installing-Configuring-Automation-Orchestrator/GUIDEB0FB317-BB55-469A-9546-D274E2B46D70.html

ProductvCPUvRAMStorage
VMware Aria Automation Orchestrator416 GB200 GB
VMware Aria Automation Orchestrator XL1224 GB200 GB

VMware Aria Suite Lifecycle 8.12

https://docs.vmware.com/en/VMware-Aria-Suite-Lifecycle/8.12/lifecycle-install-upgrade-manage/GUID-604B1E81-FBBA-4884-A13B-B97D5EF9FDA9.html

ProductvCPUvRAMStorageComment
Lifecycle Manager26 GB78 GBThick Provisioned

VMware Aria Automation 8.13

https://docs.vmware.com/en/VMware-Aria-Automation/8.13/installing-automation-easy-installer/GUID-05625E1B-A1E8-408E-A87A-97DABA914CE5.html

ProductvCPUvRAMStorageComment
VMware Aria Automation Appliance – Medium1248 GB246 GB
VMware Aria Automation Appliance – Extra Large2496 GB246 GB
VMware Identity Manager 3.3.7816 GB100 GB

Note: The system requirements for VMware Aria Automation are for single node environments. For 3 node HA VMware Aria Automation environments, multiply the requirement by 3.

VMware Aria Operations for Networks 6.10

https://docs.vmware.com/en/VMware-Aria-Operations-for-Networks/6.10/Installing-Operations-for-Networks/GUID-F4F34425-C40D-457A-BA65-BDA12B3ABE45.html

Platform Brick

SizevCPU for 2.1 GHzvCPU for 2.3 GHzvCPU for 2.6 GHzvRAMStorage
Medium109832 GB1 TB
Large15141248 GB1 TB
Extra Large20181664 GB2 TB

Note: The reservation for the CPU speed and RAM for each node must be 100% of the value specified above.

Collector Brick

SizevCPU for 2.1 GHzvCPU for 2.3 GHzvCPU for 2.6 GHzvRAMStorage
Medium55412 GB200 GB
Large109816 GB200 GB
Extra Large109824 GB200 GB
2X Large20181648 GB300 GB

Note: The reservation for the CPU speed and RAM for each node must be 100% of the value specified above.

VMware HCX 4.7

AppliancevCPUvRAMStorage
HCX Manager412 GB60 GB
HCX Interconnect (HCX-IX)83 GB2 GB
HCX Network Extension (HCX-NE)83 GB2 GB
HCX WAN Optimization (HCX-WAN-OPT)814 GB100 GB / 5000 IOPS
HCX Sentinel Gateway (HCX-SGW )88 GB21 GB (disks: 2 GB, 6 GB, 4 GB, and 9 GB)
HCX Sentinel Data Receiver (HCX-SDR [destination only])88 GB21 GB (disks: 2 GB, 6 GB, 4 GB, and 9 GB)

Note: The storage requirement per appliance is doubled during the upgrade and redeploy operations, as a second appliance is created for operation.

Where are the VCDX in 2023

VMware Certified Design Experts (VCDX) is an elite group of VMware Experts. VMware CEO, Pat Gelsinger, has called it the “PhD” of VMware. As of July 31st 2023 there were 300 VCDX in the world. To put that number in perspective, there are fewer Representatives in the US House Of Representatives. According to this post from VMware, there are 350,793 VMware Certified Professionals (VCP) in the world. Unfortunately I was not able to find newer numbers. I would assume the number of VCPs have grown since then. The posted numbers appear to be from 2020. Going by those older numbers, still only 0.09% of all certified VMware Professionals are VCDX.

Disclaimer: I do not guarantee accuracy of the numbers presented. These numbers were collected from public available data. The data was collected on July 31st 2023.

There are four VCDX certification paths

  • Data Center Virtualization (VCDX-DCV) | 211
  • Cloud Management & Automation (VCDX-CMA) | 39
  • Desktop and Mobility (VCDX-DTM) | 19
  • Network Virtualization (VCDX-NV) | 92
  • There are 42 VCDX that hold two VCDX certifications.
  • There are 8 VCDX that hold three VCDX certifications.
  • There is only 1 VCDX that holds all four VCDX certification.

If you would like to know more about each VCDX, the effort it takes to become a VCDX or more information about VCDX in general, go to https://vcdx.vmware.com

VCDX around the globe

The VMware Certified Design Experts are located in 36 countries.

Americas165
EMEA104
Asia-Pacific31

VCDX distribution globally


VCDX in each country


VCDX per country capita

We get a different representation when we look at VCDX per country population, compared to a countries overall number of VCDX. This table shows the number of VCDX per ten million people of that country. A higher number means a higher representation of VCDX per capita in that country.

CountryCountPopulationVCDX per 10m people
Iceland1376,24826.58
Netherlands2017,889,00011.18
Singapore55,637,0008.87
UAE79,282,4107.54
Australia1726,666,4006.38
USA153333,287,5574.59
New Zealand25,229,1703.82
UK2668,138,4843.82
Norway25,488,9843.64
Qatar12,795,4843.58
Denmark25,935,6193.37
Israel39,759,6803.07
Sweden310,540,8862.85
Ireland27,052,3142.84
Canada1039,858,4802.51
Lebanon15,296,8141.89
Czech Republic210,827,5291.85
Belgium211,697,5571.71
Bulgaria16,447,7101.55
Germany1284,270,6251.42
Austria19,027,9991.11
Poland438,036,1181.05
France668,042,5910.88
Italy458,853,4820.68
Kazakhstan119,398,3310.52
Taiwan123,894,3940.42
South Africa258,048,3320.34
Saudi Arabia132,175,2240.31
Thailand169,648,1170.14
Egypt1109,546,7200.09
Japan1124,840,0000.08
Mexico1129,875,5290.08
Russian Federation1147,182,1230.07
Brazil1203,062,5120.05
India21,428,627,6630.01

VCDX in the United States


VCDX distribution in the United States

Other are all states combined that have less than five VCDX.


VCDX in each state of the United State of America


VCDX per state capita

This table shows the number of VCDX per one million people of that state. A higher number means a higher representation of VCDX per capita in that state.

StateCountPopulationVCDX per 1m people
Colorado135,839,9262.23
District of Columbia*1689,5451.45
California4039,185,6051.02
Delaware11,018,3960.98
Maine11,362,3590.73
New Hampshire11,395,2310.72
Oregon34,246,1550.71
Minnesota45,717,1840.70
Virginia68,683,6190.69
New Jersey69,288,9940.65
Ohio711,780,0170.59
Massachusetts46,981,9740.57
North Carolina610,698,9730.56
Connecticut23,605,9440.55
Texas1629,145,5050.55
Wisconsin35,893,7180.51
Maryland36,177,2240.49
Arizona37,151,5020.42
Illinois512,812,5080.39
Washington37,785,7860.39
Georgia410,711,9080.37
Utah13,271,6160.31
Michigan310,077,3310.30
Indiana26,785,5280.29
Tennessee27,051,3390.28
Florida622,244,8230.27
New York519,677,1510.25
Pennsylvania213,002,7000.15

*District of Columbia is not a state but I didn’t want to omit it from the statistics.

VCDX by company

VCDX distribution by company

Companies that have less than three VCDX were combined.


VCDX at each company


CompanyCount
VMware121
Nutanix19
AWS12
Dell8
Cisco5
Aviatrix4
End-2-End Enterprise Architecture (E2EEA)4
ITQ Consultancy BV4
Google3
Microsoft3
Oracle3
Rolta AdvizeX3
Rubrik3
World Wide Technology3
Atos IT Services2
comdivision consulting GmbH2
Computacenter2
Dimension Data2
EMC2
ePlus Technology2
IBM2
NetApp2
No Company2
Palo Alto Networks2
RoundTower Technologies2
Varrow2
WestJet2
ACP IT Solutions AG1
Acredion1
Ahead1
Arista Networks1
Assyrus Srl1
Atlantis Computing1
August Schell1
Barefoot Networks1
BlackRock1
Canadian Armed Forces1
Capgemini1
CDI LLC1
CGI1
Charter Communications1
Cohesity1
CompuNet, Inc1
Curator Systems1
Datacentrix (Pty) Ltd1
Datrium1
Deloitte1
DOME1
env01
Equinix1
Expedient1
FlexConsulting.Services1
ForgeRock1
Forsythe Solutions1
GitLab1
HCL Technologies1
Hewlett Packard Enterprise1
Hitachi Data Systems1
hqVirtual B.V.1
Hydra 13031
InterCloud Systems Inc.1
Intesa Sanpaolo SpA1
Iono Solutions, Inc1
Iron Bow Technologies1
Isovalent1
Kloud Solutions1
Long View Systems1
Lucinity1
Network to Code1
nPivot1
NVIDIA1
OGD ict-diensten1
OPEN Technologies1
PernixData1
Pinterest1
Pivotal1
Pure Storage1
Rapid1
Roeleveld Cloud Services1
Runecast1
Self-Employed1
SES Corporation1
Siemens1
Simplivity1
Sirius Computer Solutions1
SoftServe1
SovLabs1
SPJ Solutions Inc1
Starbucks1
Stratascale1
SVA System Vertrieb Alexander GmbH1
Sysdig1
team.blue1
Teck Resources Ltd.1
Transitional Data Services – TDS1
Truesec AB1
UnitedLex1
UPMC1
Vestas1
viLogics, Inc1
Virtustream1
VMXperts1
WEI1
Winslow Technology Group, LLC1
Xentaurs1
Zscaler1

vRO context action in web client

If you have successfully registered your vRealize Orchestrator (vRO) in the vCenter Web Client you can add your workflows as a context action. Follow Add vRO 8.x extension to vCenter Web Client for details on how to register the vRO in vCenter. What does context action mean. Well it means that your workflow becomes selectable from the vRO menu item in the vCenter Inventory. For example you add your workflow to a context action of a virtual machine. If you then right click on any virtual machine and then select vRealize Orchestrator -> Run Workflow… you can then select your workflow. In order for this to work you must define what inventory object should be linked with what workflow. If an input parameter of your vRO workflow is of type Virtual Machine you would want this to link to Virtual Machine objects in the web client. That way your workflow will get pre-filled with Virtual Machine from which you started the workflow from. Here are the steps for adding the context action.

If the integration of vRO as extension was successful you should see a new menu item on the home screen. Click on the vRealize Orchestrator menu item.

Home Menu

If you successfully connected your vRO server to the vCenter Server. you should see your vCenter Server on the home screen of the vRO menu.

Summary

Click on Context Actions and then on Add to start adding your workflow.

Context Actions

Now enter the name of your workflow in the search field and hit enter. The workflow should now show in the list below. Check the checkbox next to your workflow. Select the type of object you want to associate your workflow with. Meaning which vCenter inventory object should show your workflow. If you only have one vCenter inventory object, this field will be pre-filled. Click ASSIGN and you are done.

Assign Context Actions

Add vRO 8.x extension to vCenter Web Client

In previous versions of vRealize Orchestrator and with the vCenter Flash Web Client, it was very straight forward to add the extension to the vCenter Flash Web Client. You simply ran the vRO workflow “Register vCenter Orchestrator as a vCenter Server extension” and that was it. If you do that with vRO 8.x you will see an error in vCenter that it could not download the plugin. The reason is that the plugin is missing on the vRO server and therefore vCenter cannot download it. So what we need to do is to download the plugin manually and copy to the vRO Server and then run the workflow to register. The detailed steps are described here: Configure vRealize Orchestrator Plugin for vSphere Web Client. Essentially you have to download the plugin from here Technical Preview of Orchestrator plug-in for vSphere Web Client and then copy the plugin with scp to /data/vco/usr/lib/vco/downloads/vco-plugin.zip on the vRO server and then run the workflow mentioned above. This however does not integrate into the HTML5 client, only in the flash client. Now you say that vSphere 7 doesn’t have a flash client. Yes, you are right, however you still have to do this step. For the HTML5 client we need an additional step. We need to download another plugin and copy it to the vCenter Server. The detailed steps are described here: Install vRealize Orchestrator Plug-in for vSphere Client.

  • Change default shell to bash so that you can copy with scp. There might be other methods to accomplish this but changing default shell is one way. Connect with SSH to VCSA
  • Download the Beta Plugin from here:
  • Use scp to copy the plugin to
    • /usr/lib/vmware-vsphere-ui/plugin-packages/vcoin-html-plugin.zip
  • Access the vCenter Server Appliance with ssh
  • Change directory
    • cd /usr/lib/vmware-vsphere-ui/plugin-packages
  • Unzip the package with
    • unzip vcoin-html-plugin.zip -d vro-plugin
  • Change the owner permission on the plugin with
    • chown -R vsphere-ui vro-plugin
  • Delete the zip file
    • rm vcoin-html-plugin.zip
  • Restart the vSphere Client
    • service-control –restart vsphere-ui

This is all Beta and no official support for vSphere 7. I however followed these steps in my home lab and the plugin worked flawlessly, even with vSphere 7. For a production environment you want to wait till this is all supported. The following was mentioned as a response to the question when this will be ready for production. “We are considering to release it with vRO 8.3 if there are no change in plans.” We are now at vRO 8.1.

Add a vAPI endpoint to vRO

I recently posted a post with a workflow that updates the vCenter Server Appliance. For this to work we have to add the vAPI endpoint first. The endpoint name must be the VCSA hostname. The workflow uses the vCenters guest full qualified hostname to connect with the vAPI endpoint. I quickly explain how to add the vAPI endpoint. It is actually pretty straight forward. You need to start the workflow “Import vAPI metamodel”. You would think “Add vAPI endpoint”, but no, import comes first.

Import vAPI metamodel

Provide the required information. The vAPI endpoint URL is simply the full qualified domain name https:// url followed by /api. For the user name the user administrator@vsphere.local will work fine. “Do you want to add vAPI endpoint using the same settings?” this will then add the vAPI endpoint. That is it. If the workflow completes successful you can then use the vAPI endpoint to use the vCenter REST API. This is a prerequisite step for running my “Update VCSA” workflow.

‘One Click’ VCSA Update

I have created a vRealize Orchestrator (vRO) workflow that updates VCSA. If integrated into the vSphere Web Client it is just one click from the workflow to start an update of the vCenter – VCSA. There are a couple of options that you can change. Of course then it is more than one click. Download at the very end.

The workflow performs a couple of operations, not just the update itself. The idea is that you could schedule the update during times you are not in the office and perform other necessary operations like snapshot and backup and health check.

Flow

If vRealize Orchestrator (vRO) is integrated with the vSphere Web Client in order to start the workflow, you need to right click on the vCenter (VCSA) VM and then navigate to the bottom of the menu to vRealize Orchestrator -> Run Workflow…

Start a workflow from the vSphere Web Client

Then you need to select the workflow to run. In our case Update VCSA. In order for this workflow to show here, it must have been configured as a context action. I will explain this in a future blog post.

Select Update VCSA workflow.

The workflow will connect to the VCSA through the vAPI endpoint and collect available patches. If it found multiple patches you will have to select the one you would like to install. If there is only one patch, maybe because you are using a local https repository, you can click run. That would be your one click update.

General tab

The Options menu appears once patches were found. Select the Options tab to see more options. By default the workflow takes a VM Snapshot. The variable reqFreeSpaceinDS is set to 200. This means that at least 200GB (plus VM memory) must be available as free space in the vCenter VMs datastore in order for the workflow the create a snapshot. By default the workflow also takes a backup. It picks this information from the VCSA backup schedule. If there is no schedule set, you need to provide the Backup Location and Backup User parameter manually. The variable backupUserDefaultPasswd can be set to the password for the backup location. If none is set, you need to specify the password here. Email address is optional. If you specify an email the result of the backup will be send to that email address.

Options

In the Error Handling tab is the option to Ignore Health or Services. What that means is that the workflow checks for the VCSA health and if all services that are set to start automatically are start and healthy. By default the workflow will not continue to proceed with the update (including taking snapshot and backup) if this check fails. If you want to continue the update despite these checks failed you can select that option here.

Error Handling

Clicking Run in the lower right starts the update. If “Stay on current screen” is left unselect, you are automatically taken to the Workflow Run screen.

Start workflow

In the Workflow Run screen, you can monitor the state of the workflow and observe the event log of the workflow. It will display events happening during update. If you are updating from a local https repository it should take 35 minutes for a tiny VCSA. If you are updating from the internet it can take significantly longer. Also if you have a big VCSA VM the backup can take longer.

Workflow Run

You can also observe the backup state in the The vCenter Server Appliance Management Interface (VAMI).

Backup Job.

The workflow also posts events in the VMs event log.

VM Event log

If you have specified an email address it will send an email to that address with the final result of the update.

Email example

Below is a short demo of the workflow.

Demo of workflow

DISCLAIMER: Use at you own risk. I am not liable for any damage caused by this workflow package, workflow, file or code.

The worflow is free to use. Give credit where credit is due. Do not claim this work as your own.

Share and spread the word. Feedback appreciated.

Check out ‘One Click’ VMware vCenter Update. https://wp.me/p2hhPD-6l

DOWNLOAD



Import a Package in the vRealize Orchestrator Client

System Requirements for VMware Products 2020

Most system (hardware) requirements on a single page. I hope it will be useful to you. I also have added the links to the source.

vSphere vCenter Server Appliances 7.0 (VCSA)

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vcenter.install.doc/GUID-457EAE1F-B08A-4E64-8506-8A3FA84A0446.html

ProductSizevCPUvRAMStorageComment
vCenter VCSAtiny212 GB315 GB10 hosts and 100 VMs
default storage
vCenter VCSAtiny-lstorage212 GB1390 GB10 hosts and 100 VMs
large storage
vCenter VCSAtiny-xlstorage212 GB3145 GB10 hosts and 100 VMs
x-large storage
 
vCenter VCSAsmall419 GB380 GB100 hosts and 1,000 VMs
default storage
vCenter VCSAsmall-lstorage419 GB1435 GB100 hosts and 1,000 VMs
large storage
vCenter VCSAsmall-xlstrorage419 GB3195 GB100 hosts and 1,000 VMs
x-large storage
 
vCenter VCSAmedium828 GB600 GB400 hosts and 4,000 VMs
default storage
vCenter VCSAmedium-storage828 GB1600 GB400 hosts and 4,000 VMs
large storage
vCenter VCSAmedium-xlstorage828 GB3360 GB400 hosts and 4,000 VMs
large storage
 
vCenter VCSAlarge1637 GB965 GB1,000 hosts and 10,000 VMs
default storage
vCenter VCSAlarge-lstorage1637 GB1665 GB1,000 hosts and 10,000 VMs
large storage
vCenter VCSAlarge-xlstorage1637 GB3425 GB1,000 hosts and 10,000 VMs
x-large storage
 
vCenter VCSAxlarge2456 GB1705 GB2,000 hosts and 35,000 VMs
default storage
vCenter VCSAxlarge-lstorage2456 GB1805 GB2,000 hosts and 35,000 VMs
large storage
vCenter VCSAlarge-xlstorage2456 GB3565 GB2,000 hosts and 35,000 VMs
x-large storage
 

NSX Data Center for vSphere, 6.4

https://docs.vmware.com/en/VMware-NSX-Data-Center-for-vSphere/6.4/com.vmware.nsx.install.doc/GUID-311BBB9F-32CC-4633-9F91-26A39296381A.html

ProductSizevCPUvRAMStorage
NSX Managerregular416 GB60 GB
NSX Managerlarge824 GB60 GB
 
NSX ControllerCompact1512 MB1 x 584 MB
1 x 512 MB
NSX ControllerLarge21GB1 x 584 MB
1 x 512 MB
NSX ControllerQuad-Large42 GB
1 x 584 MB
1 x 512 MB
NSX ControllerX-Large68 GB1 x 584 MB
1 x 2 GB
1 x 256 MB
 
Guest IntrospectionN/A22 GB5 GB (Provisioned space is 6.26 GB)

NSX-T Data Center, 3.0

https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.0/installation/GUID-14183A62-8E8D-43CC-92E0-E8D72E198D5A.html

ProductSizevCPUvRAMStorageComment
NSX ManagerExtra Small28 GB200 GBCloud Service Manager Only
NSX ManagerSmall416 GB200 GBFor Lab or PoC
NSX ManagerMedium624 GB200 GB
NSX ManagerLarge1248 GB300 GB
 
NSX Edge VMSmall24 GB300 GBFor Lab or PoC
NSX Edge VMMedium48 GB300 GBTypical Production Environment
NSX Edge VMLarge832 GB200 GBTypical Production Env w/ Load Balancing
NSX Edge VMExtra Large864 GB200 GBTypical Production Env w/ Load Balancing

vRealize Operations Manager 8.1

https://kb.vmware.com/s/article/78495

For storage requirements please see Sizing Guideline Spreadsheet attached to above link.

ProductSizevCPUvRAM
vRealize Operations NodeExtra Small28 GB
vRealize Operations NodeSmall416 GB
vRealize Operations NodeMedium832 GB
vRealize Operations NodeLarge1648 GB
vRealize Operations NodeExtra Large24128 GB
 
Remote Collector (RC)Standard24 GB
Remote Collector (RC)Large416 GB

vRealize Log Insight 8.1

https://docs.vmware.com/en/vRealize-Log-Insight/8.1/com.vmware.log-insight.getting-started.doc/GUID-F73595DC-1511-4A19-9AE4-02C8FEDF5CF5.html

https://kb.vmware.com/s/article/60355

For storage requirements please see Sizing Calculate attached to above link.

ProductSizevCPUvRAMComment
vRealize Log InsightExtra Small24Log ingest Rate: 6 GB/day
Events per Second: 400
vRealize Log InsightSmall48Log ingest Rate: 30 GB/day
Events per Second: 2000
vRealize Log InsightMedium816Log ingest Rate: 75 GB/day
Events per Second: 5000
vRealize Log InsightLarge1632Log ingest Rate: 225 GB/day
Events per Second: 15000

vRealize Orchestrator 8.1

https://docs.vmware.com/en/vRealize-Orchestrator/8.1/com.vmware.vrealize.orchestrator-install-config.doc/GUID-EFC070D9-B758-4488-B07B-91341F43E0C2.html

ProductvCPUvRAMStorage
vRealize Orchestrator412 GB200 GB

vRealize Suite Lifecycle Manager 8.1

https://docs.vmware.com/en/VMware-vRealize-Suite-Lifecycle-Manager/8.1/com.vmware.vrsuite.lcm.8.1.doc/GUID-604B1E81-FBBA-4884-A13B-B97D5EF9FDA9.html

ProductvCPUvRAMStorageComment
Lifecycle Manager26 GB48 GBThick Provisioned

vRealize Automation 8.1

https://docs.vmware.com/en/vRealize-Automation/8.1/installing-vrealize-automation-easy-installer/GUID-05625E1B-A1E8-408E-A87A-97DABA914CE5.html

ProductvCPUvRAMStorageComment
vRealize Automation Appliance1240 GB222 GB
Identity Manager26 GB60 GB

PowerCLI – Update VCSA

This post will be about how to update the vCenter Server Appliance through the rest API using the PowerCLI.

First we need check online or the CD for the new update. So let’s take a look at the API again: https://vmware.github.io/vsphere-automation-sdk-rest/vsphere/index.html

The general purpose of my posts is more to show you how to do it and not to do the work for you. In the spirit of: “If I teach you how to fish you have fish for the rest of your life instead of me giving you a fish and you only have a fish for a day.” Therefore I will not go through all possible operations but I think it will be straight forward to apply the principle of the operations I will highlight. So let’s get to work. The list operation is the one that will check for the new updates, this is the one that we start with.

So we see here there are two parameters the query takes, source_type and url. Both of type string. url being optional, source_type mandatory. Source_type can be “LAST_CHECK”, LOCAL or LOCAL_AND_ONLINE. Before we can run anything we need to connect first. If you have read my previous post on the rest API you already know what to do.

#Connect to our VCSA first.
$cisConnection = Connect-CisServer -server vcenter.txusa.cloud
 
## Get the object. This is pretty much always the same we, translate the name from the API.
$getService = Get-CisService -Name "com.vmware.appliance.update.pending"
 
## Ignoring the optional parameter URL and only providing parameter to check CD and online.
$getService.list("LOCAL_AND_ONLINE")

Now here is the thing. The request can potentially fail. I see it fail when there simply was no new update with following error.

A server error occurred: ‘com.vmware.vapi.std.errors.internal_server_error’: Error in method invocation [Errno 2] No such file or directory:
‘/storage/core/software-update/updates’ (Server error id: ‘vapi.method.invoke.exception’). Check $Error[0].Exception.ServerError for more details.

So we must use a try and catch. This means we try to run the operation and if it fails we will catch the error or do what ever when it fails.

$getService = Get-CisService -Name "com.vmware.appliance.update.pending"
try
{
  $checkResult = $getService.list("LOCAL_AND_ONLINE");
}
catch
{
  #We catch the error and search for the known error
  if(Error[0].Exception -like "*com.vmware.vapi.std.errors.internal_server_error*")
  {
    write-host "No such file or directory"
  }
  else
  {
    #An unknown error message
    write-host "Something went wrong."
  }
}

#If up to date and there is no error $checkResult will be empty.
if($checkResult)
{
  #For this example we are only interested in the version
  $patchVersion = $checkResult.version  
}

The entire $checkResult would look like this but we are only interested in the version because we need it later.

Help : @{Documentation=The {@name Summary} {@term structure} contains the essential information about the update; version=; description=; priority=; severity=;
update_type=; release_date=; reboot_required=; size=}
severity : CRITICAL
update_type : FIX
size : 1833
reboot_required : True
release_date : 1/17/2019 12:00:00 AM
description : @{Help=; args=System.Collections.Generic.List`1[System.String]; default_message=Patch for vCenter Server Appliance 6.7.0; id=com.applmgmt.plain_message}
priority : LOW
version : 6.7.0.21000

Next is stage_and_install. This one is a little but more complicated. Parameter is version and a user_data object. We got the version from the previous call but now we also need to create the user_data object. This gave me a lot of headache, lots of try and error. We assume we are already connected.

#We know this part
$getService = Get-CisService -Name "com.vmware.appliance.update.pending"

#This is how you create a user_data object
$user_data = $getService.help.stage_and_install.user_data.Create()

#Then you need to add the user. I was not sure what to put here but I found out
#that it did not matter at all as long as the structure is right.
#Add two elements to the array.
$user_data.add("whatever","whatever")

#Now do the stage and install. Provide the version that we got from the 
#previous step and the $user_data array.
$getService.stage_and_install($patchVersion,$user_data)

We can now check for the status but during installation you will very quickly get kicked off the server. You will have to log in after the reboot. So let’s look at the API again. Notice, there is no .pending. And we see there are no parameters. So this is as simple as it gets.

#We know this part, now without pending
$getService = Get-CisService -Name "com.vmware.appliance.update.pending"

#Get the status.
$getService.get()

The result would be like this. The interesting part would be the state. According to the API the state could have following values.

UP_TO_DATE: The appliance is up to date.
UPDATES_PENDING: A new update is available.
STAGE_IN_PROGRESS: The appliance update is in progress of downloading an update.
INSTALL_IN_PROGRESS: The appliance update is in progress of installing an update.
INSTALL_FAILED: The appliance update failed and cannot recover.
ROLLBACK_IN_PROGRESS: The appliance update failed and recovery is in progress.

When the update started it will have “INSTALL_IN_PROGRESS”. Again, you will be quickly get kicked off the system and have to log in again. After reboot it should say “UP_TO_DATE”

$getUpdate = Get-CisService -Name “com.vmware.appliance.update”;
$getUpdate.get();
Help : @{Documentation=The {@name Info} {@term structure} describes the state of the appliance update.; state=; task=; version=; latest_query_time=}
latest_query_time : 3/24/2019 9:30:00 PM
task : @{Help=; parent=; cancelable=False; subtasks=System.Collections.Generic.Dictionary2[System.String,System.Management.Automation.PSObject]; end_time=4/2/2019 7:08:30 PM; description=; subtask_order=System.Collections.Generic.List1[System.String]; error=; target=; start_time=4/2/2019 7:07:53 PM;
service=applmgmt/update; progress=; operation=stage_and_install; user=; status=RUNNING}
state : INSTALL_IN_PROGRESS
version : 6.7.0.21000