Noble Numbat. Interesting name. That’s the codename of the latest major version of the Ubuntu Server that has Long Term Support (LTS). That is Ubuntu Server 24.04 LTS (Noble Numbat). I gather that the first word of the codename will be used to call the release, and so I’ll call this “Noble”.

In this post, I will create a “jumpbox” VM using the Noble cloud image. I will use this jumpbox to run “tanzu” cli commands, primarily to create and manage TKGM management and workload clusters.

Let’s get going.

Download the Ubuntu image

Ubuntu images can be dowloaded from the Ubuntu Cloud Images site. From that page, I selected the “noble” folder, and then selected the latest daily build date, which at this time was “20250430”. I found the file with the description of “VMware/Virtualbox OVA”. I downloaded that file. It was 555MB in size. The file name was noble-server-cloudimg-amd64.ova.

Deploy the image to vSphere

  1. In vCenter, right-click on the cluster object and then select “Deploy OVF Template”.
  2. In the “Select an OVF template” tab, select “Local file” and then upload the downloaded OVA file. Then, click “Next”.
  3. In the “Select a name and folder” tab, leave the VM name as it is, which is ubuntu-noble-24.04-cloudimg. Select the folder pcf_vms as the location. Then, click “Next”
  4. In the “Select a compute resource” tab, select the cluster and then click “Next”.
  5. In the “Review details” tab, just click “Next”.
  6. In the “Select storage” tab, click the Datastore, and then set the virtual disk format to “Thin Provision”. Then, click “Next”.
  7. In the “Select networks” tab, set VM Network to “VM Network”. Then, click “Next”.
  8. In the “Customize template” tab, set the hostname to “numbat”. Then, set the ssh public key, and default user password. Then, click “Next”.
  9. In the “Ready to complete” tab, click “Finish”.
  10. Monitor the task in vCenter. It should complete in less than 2 minutes.
  11. Power on the VM.
  12. Since DHCP is running in the network, the VM should have automatically got an IP address.
  13. ssh into the VM using your private ssh key. It will prompt to change the password. Enter the password specified during the deployment, and then enter new passwords. It will log you out.
    Change password
    Change your password immediately.
  14. ssh into the VM again. The VM should then be ready for use.
    VM ready
    Noble Numbat is now ready.
     $ cat /etc/os-release
     PRETTY_NAME="Ubuntu 24.04.2 LTS"
     NAME="Ubuntu"
     VERSION_ID="24.04"
     VERSION="24.04.2 LTS (Noble Numbat)"
     VERSION_CODENAME=noble
     ID=ubuntu
     ID_LIKE=debian
     HOME_URL="https://www.ubuntu.com/"
     SUPPORT_URL="https://help.ubuntu.com/"
     BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
     PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
     UBUNTU_CODENAME=noble
     LOGO=ubuntu-logo
    
     $ uname -a
     Linux noble 6.8.0-58-generic #60-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 14 18:29:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
    

Configure the networking settings

I’ll disable DHCP, and configure the DNS settings, IP address and default gateway.

Edit /etc/netplan/50-cloud-init.yaml:

network:
  version: 2
  ethernets:
    ens192:
      nameservers:
        search: [deephackmode.io]
        addresses: [192.168.86.34]
      match:
        macaddress: "00:50:56:b2:3b:cc"
      dhcp4: false
      dhcp6: false
      set-name: "ens192"
      addresses: [192.168.86.20/24]
      routes:
      - to: default
        via: 192.168.86.34

Then, run:

netplan apply

Install docker

Refresh the Ubuntu server’s package list with the latest information from the repositories.

sudo apt update

Install the docker package.

sudo apt install docker.io -y

Add the “ubuntu” user to the “docker” group

sudo vi /etc/group

Then, make the group changes take effect on user “ubuntu” by logging out and then logging back in again. Or, if you don’t want to log out, then you can run the following command:

exec newgrp docker

Run the following to confirm that docker is running fine.


sudo systemctl status docker
docker ps   # to confirm if ubuntu can run docker commands successfully

Install the tanzu cli

Check out the steps from the official doc.

Basically, these are the main commands to run to install the cli.


sudo apt update

sudo apt install -y ca-certificates curl gpg

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://storage.googleapis.com/tanzu-cli-installer-packages/keys/TANZU-PACKAGING-GPG-RSA-KEY.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/tanzu-archive-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/tanzu-archive-keyring.gpg] https://storage.googleapis.com/tanzu-cli-installer-packages/apt tanzu-cli-jessie main" | sudo tee /etc/apt/sources.list.d/tanzu.list

sudo apt update

sudo apt install tanzu-cli=1.3.0

Confirm that tanzu cli is running successfully, and what the version is by running:

tanzu version

e.g.,

$ tanzu version
version: v1.3.0
buildDate: 2024-05-09
sha: d59f47c8
arch: amd64

Install the plugins for TKGM v2.5.2:


tanzu plugin group get vmware-tkg/default:v2.5.2

tanzu plugin group search -n vmware-tkg/default --show-details

tanzu plugin install --group vmware-tkg/default:v2.5.2

Confirm the list of plugins that are installed:

tanzu plugin list

e.g.,

$ tanzu plugin list
  NAME                DESCRIPTION                                                        TARGET      INSTALLED  STATUS
  isolated-cluster    Prepopulating images/bundle for internet-restricted environments   global      v0.32.3    installed
  management-cluster  Kubernetes management cluster operations                           kubernetes  v0.32.3    installed
  package             tanzu package management                                           kubernetes  v0.32.1    installed
  pinniped-auth       Pinniped authentication operations (usually not directly invoked)  global      v0.32.3    installed
  secret              Tanzu secret management                                            kubernetes  v0.32.0    installed
  telemetry           configure cluster-wide settings for vmware tanzu telemetry         global      v1.1.1     installed
  telemetry           configure cluster-wide settings for vmware tanzu telemetry         kubernetes  v0.32.3    installed

Install kubectl cli

Download the kubectl cli from Broadcom. Go to TKGM product download page and find the kubectl cli v1.28.11 for Linux download item. Download the file kubectl-linux-v1.28.11+vmware.2.gz.

Uncompress the file and install it:


gunzip kubectl-linux-v1.28.11+vmware.2.gz
sudo install kubectl-linux-v1.28.11+vmware.2 /usr/local/bin/kubectl

Run this command to verify the cli version:

kubectl version

e.g.,

$ kubectl version
Client Version: v1.28.11+vmware.2
...

Install the govc cli

I will need to install the govc cli as well because I need to upload the TKGM OVA to vCenter, and then make it a template. It’s a little easier to do that task when you have the govc cli.

Check the latest version of the govc cli by going to https://github.com/vmware/govmomi/releases/.

Download the latest Linux x86 download file:


wget https://github.com/vmware/govmomi/releases/download/v0.50.0/govc_Linux_x86_64.tar.gz

Uncompress the file and install the govc cli.


mkdir govc

cd govc

tar xvfz ../govc_Linux_x86_64.tar.gz

sudo install govc /usr/local/bin/govc

Run this command to verify the cli version:

govc version

e.g.,

$ govc version
govc 0.50.0

Create the govcenv.sh file

Create a file named govcenv.sh with contents similar to the following:


export GOVC_URL=https://vc-1.deephackmode.io
export GOVC_USERNAME=administrator@vsphere.local
export GOVC_PASSWORD='password_here'
export GOVC_DATACENTER=Datacenter
export GOVC_CLUSTER=ClusterNSX
export GOVC_DATASTORE=datastore1
export GOVC_NETWORK=LS1.1
export GOVC_INSECURE=1

Source the file to set up the environment variables:

. govcenv.sh

Run this command to confirm that it’s working:

govc about

e.g.,

$ . govcenv.sh
ubuntu@numbat:~$ govc about
FullName:     VMware vCenter Server 8.0.3 build-24022515
Name:         VMware vCenter Server
Vendor:       VMware, Inc.
Version:      8.0.3
Build:        24022515
OS type:      linux-x64
API type:     VirtualCenter
API version:  8.0.3.0
Product ID:   vpx
UUID:         9a3d245a-c9b4-4cbe-8e1c-92477159fcd1

Next up, we’ll upload the TKGM OVA into vSphere and then create a management and a workload cluster.