<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>vNoob</title>
	<atom:link href="https://www.vnoob.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.vnoob.com</link>
	<description></description>
	<lastBuildDate>Fri, 08 Nov 2024 17:00:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/www.vnoob.com/wp-content/uploads/2014/02/cropped-newvnoob2-2.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>vNoob</title>
	<link>https://www.vnoob.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">63605651</site>	<item>
		<title>Batch Cross vCenter vMotion Script</title>
		<link>https://www.vnoob.com/2024/11/batch-cross-vcenter-vmotion-script/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Fri, 08 Nov 2024 17:00:17 +0000</pubDate>
				<category><![CDATA[vCenter]]></category>
		<category><![CDATA[vSphere]]></category>
		<category><![CDATA[vcenter]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2371</guid>

					<description><![CDATA[I recently needed to migrate all VMs from one vCenter to another. I had planned to use the native Cross vCenter vMotion GUI, but I ran into a couple of issues. Although using it for one VM works fine-ish, using it for multiple VMs at a time becomes quite a [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>I recently needed to migrate all VMs from one vCenter to another. I had planned to use the native Cross vCenter vMotion GUI, but I ran into a couple of issues. Although using it for one VM works fine-ish, using it for multiple VMs at a time becomes quite a burden. </p>



<p>The main problems stem from the GUI wants you to pick the portgroup and datastore on the destination vCenter. In theory, this makes sense as there might be differing storage at the destination vCenter. However, it doesn&#8217;t inform you during the process where the VMs currently reside. This is a bit tough to explain, so here is a screenshot:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="747" height="524" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image.png?resize=747%2C524&#038;ssl=1" alt="" class="wp-image-2372" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image.png?w=747&amp;ssl=1 747w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image.png?resize=300%2C210&amp;ssl=1 300w" sizes="(max-width: 747px) 100vw, 747px" /></a></figure>



<p>In the picture, we see we are trying to migrate 2 VMs, and it wants destination storage to be selected. It gives no indication though of where the VMs are coming from. If identical storage is presented at both locations, and you want the VMs to land on the same datastore, there isn&#8217;t a way to do it through this GUI. You would need to first document where each VM is located before even beginning the migration process, which is silly.</p>



<p>If you do one VM at a time, you are given a VM Origin link during migration to check the source location:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-1.png?ssl=1"><img data-recalc-dims="1" decoding="async" width="243" height="233" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-1.png?resize=243%2C233&#038;ssl=1" alt="" class="wp-image-2373"/></a></figure>



<p>But this doesn&#8217;t exist when migrating in batches. </p>



<p></p>



<p>With all this in mind, I created a script to assist with this process. In my case, identical storage and network port names were presented at each location so for the selection process, I only needed to have the script choose based on the port and datastore names the VM was already utilizing. </p>



<p>Two other caveats for this script. The first being I was paranoid about the VMs landing ok at the new vCenter. This means I have multiple networking checks both before and after the migration. Not all VMs have guest names, or even VMtools to check guest names/IPs, so I am checking networking by VMname, IP resolved by VMname, Guestname(where applicable), and Guest IP. So yeah, a little paranoid. When everything is working all right, the checks look something like this:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-2.png?ssl=1"><img data-recalc-dims="1" decoding="async" width="424" height="558" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-2.png?resize=424%2C558&#038;ssl=1" alt="" class="wp-image-2374" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-2.png?w=424&amp;ssl=1 424w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-2.png?resize=228%2C300&amp;ssl=1 228w" sizes="(max-width: 424px) 100vw, 424px" /></a></figure>



<p>We can see it does check the IPv4 IP and VMname, before resolving some of the other stuff to IPv6. Regardless there were enough greens for me to proceed, where it would then do the same checks after the migration. Another thing to note is it would prompt before starting the migration, because paranoid. </p>



<p>The second caveat with the script is it will automatically ignore VMs with multiple portgroups or multiple datastores. In my use case, few VMs would fall into this category, and my paranoia demanded I do them manually anyway. </p>



<pre class="wp-block-code"><code>
# Connect to Source and Target vCenter Servers
$sourceVC = "SourcevCenter"
$targetVC = "TargetvCenter"

# Define the list of VM names to migrate
#$vmNames = "SingleVM"  # Replace with the names of VMs you want to migrate
$targetClusterName = "Clustername"  # Replace with the target cluster name in the target vCenter
$vmhost = "VMHost" # Used for clearing out a specific ESXi host

# Connect to both vCenter servers
Connect-VIServer -Server $sourceVC 
Connect-VIServer -Server $targetVC 

# Get VMs hosted on the specified ESXi host from the source vCenter
$vmnames = Get-VMHost $vmhost -Server $sourceVC | Get-VM # Can be modified to get all VMs on vCenter by removing vmhost reference

# Loop through each VM and perform migration
foreach ($vmName in $vmNames) {
    
    # Retrieve the VM from the source vCenter
    $vm = Get-VM -Name $vmName -Server $sourceVC
    "VM"
    $vm

    # Get VM guest information
    $vmGuestInfo = Get-VMGuest -VM $vm
    $ipv4Addresses = $vmGuestInfo.IPAddress | Where-Object { $_ -match '^\d{1,3}(\.\d{1,3}){3}$' } | Select-Object -First 1

    # Initial network connectivity test
    Write-Host "Testing initial connectivity with IP $ipv4Addresses" -ForegroundColor Yellow
    $initialping = Test-NetConnection $ipv4Addresses 

    # Check initial ping response
    if ($ipv4Addresses -eq $null) {
        Write-Warning "No IPv4 Address found"
    } elseif ($initialping.PingSucceeded) {
        Write-Host "Initial ping succeeded" -ForegroundColor Green
    } else {
        Write-Warning "Initial ping failed"
    }

    # Test connectivity by VM Name
    Write-Host "Testing connectivity with VM Name $($vm.Name)" -ForegroundColor Yellow
    $pingtest = Test-NetConnection $vm.Name
    if (-not $pingtest.PingSucceeded) {
        Write-Warning "Ping failed for VM Name $($vm.Name)"
    } else {
        Write-Host "Ping succeeded for VM Name $($vm.Name)" -ForegroundColor Green
    }

    # Test connectivity by VM Guest Name
    Write-Host "Testing connectivity with VM Guest Name $($vmGuestInfo.HostName)" -ForegroundColor Yellow
    $pingtest = Test-NetConnection $vmGuestInfo.HostName
    if (-not $pingtest.PingSucceeded) {
        Write-Warning "Ping failed for VM Guest Name $($vmGuestInfo.HostName)"
    } else {
        Write-Host "Ping succeeded for VM Guest Name $($vmGuestInfo.HostName)" -ForegroundColor Green
    }

    # Retrieve source VM's datastore and portgroup
    $sourceDatastore = (Get-HardDisk -VM $vm | Get-Datastore)
    $sourcePortGroup = Get-VM $vm | Get-VirtualPortGroup -Distributed
    $sourcedatastorecenter = $sourceDatastore.Uid.Split("@")&#91;1].Split("/")&#91;0]

    Write-Host "Source Information:" -ForegroundColor Cyan
    $sourcePortGroup.Name
    $sourceDatastore.Name
    $sourcedatastorecenter

    # Validate VM network settings (Portgroup and Datastore)
    if ($sourcePortGroup.Count -gt 1) {
        Write-Warning "$vm has multiple portgroups, skipping."
        continue
    } elseif ($sourcePortGroup.Count -lt 1 -or $sourcePortGroup -eq $null) {
        Write-Warning "$vm has no portgroups, skipping."
        continue
    }

    if ($sourceDatastore.Count -gt 1) {
        Write-Warning "$vm has multiple datastores, skipping."
        continue
    } elseif ($sourceDatastore.Count -lt 1 -or $sourceDatastore -eq $null) {
        Write-Warning "$vm has no datastores, skipping."
        continue
    }

    # Retrieve corresponding datastore and portgroup in the target vCenter
    $targetDatastore = Get-Datastore -Name $sourceDatastore.Name -Server $targetVC
    $targetPortGroup = Get-VirtualPortGroup -Name $sourcePortGroup -Server $targetVC -Distributed
    $targetdatastorecenter = $targetDatastore.Uid.Split("@")&#91;1].Split("/")&#91;0]
  
    $targetCluster = Get-Cluster -Name $targetClusterName -Server $targetVC
    $targetHost = $targetCluster | Get-VMHost | Get-Random -Count 1

    Write-Host "Destination Information:" -ForegroundColor Cyan
    $targetPortGroup.Name
    $targetPortGroup.Uid.Split("@")&#91;1].Split("/")&#91;0]
    $targetDatastore.Name
    $targetdatastorecenter
    $targetHost.Name

    # Confirm migration
    $response = Read-Host "Are you sure you want to continue? (y/n)"
    if ($response -ne "y") {
        Write-Warning "Aborting migration for $vmName"
        continue
    }

    # Execute Cross vCenter vMotion
    Move-VM -VM $vm `
        -Destination $targetHost `
        -Datastore $targetDatastore `
        -NetworkAdapter (Get-NetworkAdapter -VM $vm) `
        -PortGroup $targetPortGroup `
        -Confirm:$true

    Write-Output "Migrated VM '$vmName' to target vCenter with portgroup '$sourcePortGroup' and datastore '$sourceDatastore'."

    # Post-migration connectivity check
    Start-Sleep -Seconds 2
    Write-Host "Testing post-migration connectivity with IP $ipv4Addresses" -ForegroundColor Yellow
    $pingtest = Test-NetConnection $ipv4Addresses
    if (-not $pingtest.PingSucceeded) {
        Write-Warning "Ping failed for VM, considering rollback."
    } else {
        Write-Host "Post-migration ping succeeded" -ForegroundColor Green
    }

    # Check post-migration connectivity by VM Name and Guest Name
    Write-Host "Testing with VM Name $($vm.Name)" -ForegroundColor Yellow
    $pingtest = Test-NetConnection $vm.Name
    if (-not $pingtest.PingSucceeded) {
        Write-Warning "Ping failed for VM Name $($vm.Name), considering rollback."
    } else {
        Write-Host "VM Name $($vm.Name) connectivity verified" -ForegroundColor Green
    }

    Write-Host "Testing with VM Guest Name $($vmGuestInfo.HostName)" -ForegroundColor Yellow
    $pingtest = Test-NetConnection $vmGuestInfo.HostName
    if (-not $pingtest.PingSucceeded) {
        Write-Warning "Ping failed for VM Guest Name $($vmGuestInfo.HostName), considering rollback."
    } else {
        Write-Host "VM Guest Name $($vmGuestInfo.HostName) connectivity verified" -ForegroundColor Green
    }
}

# Optional: Disconnect from vCenter Servers
# Disconnect-VIServer -Server $sourceVC -Confirm:$false
# Disconnect-VIServer -Server $targetVC -Confirm:$false
</code></pre>



<p>Some options for updates if I or someone else is ever interested, would be automatic rollback to source vCenter. In my case, with a good number of VMs &#8220;failing&#8221; tests because of inaccurate or inaccessible guest info this didn&#8217;t make sense, and with me monitoring each migrating I could manually move a VM back if necessary. </p>



<p>Second obvious one would be to update to account for multiple portgroups or datastores. </p>



<p>The script is also available on <a href="https://github.com/CRad14/vNoob/blob/master/crossvcentervmotion.ps1" data-type="link" data-id="https://github.com/CRad14/vNoob/blob/master/crossvcentervmotion.ps1">github</a>, where I am going to start dumping more of the scripts I have written. </p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2371</post-id>	</item>
		<item>
		<title>Deploying Nutanix CE in Homelab</title>
		<link>https://www.vnoob.com/2024/11/deploying-nutanix-ce-in-homelab/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Mon, 04 Nov 2024 14:28:53 +0000</pubDate>
				<category><![CDATA[Nutanix]]></category>
		<category><![CDATA[nutanix]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2376</guid>

					<description><![CDATA[Continuing my journey with trying out varying Hypervisors, I thought Nutanix would be a great next stop after Proxmox. Nutanix Community Edition is the free edition of the Nutanix Cloud Infrastructure platform and was first released in 2015. Although it is not meant for production use, it is a great [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>Continuing my journey with trying out varying Hypervisors, I thought Nutanix would be a great next stop after Proxmox.</p>



<p>Nutanix Community Edition is the free edition of the Nutanix Cloud Infrastructure platform and was first released in 2015. Although it is not meant for production use, it is a great way to get a feel for the Nutanix platform. </p>



<p>My overall install process was straightforward, with the only problems I experienced being of the normal homelab self-created variety. This <a href="https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started" data-type="link" data-id="https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started" target="_blank" rel="noreferrer noopener">post</a> walking through the CE requirements and deployment process is very helpful.  Unfortunately, my issues were caused by hopping right into trying to deploy without looking at the requirements as one might do in a homelab.</p>



<h2 class="wp-block-heading">System Requirements</h2>



<p>There are several other requirements listed in the post I mentioned, but the ones I wanted to focus on are these:</p>



<h3 class="wp-block-heading"><br />CPU</h3>



<ul class="wp-block-list">
<li><strong>Processor Type</strong>: Intel CPUs (Sandy Bridge or newer with VT-x and AVX) and AMD CPUs (Zen or newer).</li>



<li><strong>Core Requirement</strong>: Minimum of four cores, with two dedicated to the Controller VM (CVM).</li>



<li><strong>Intel E-core</strong>: Disable Intel Efficient cores (E-cores) in BIOS, as CE doesn’t support them.</li>
</ul>



<h3 class="wp-block-heading">System Memory</h3>



<ul class="wp-block-list">
<li><strong>Minimum</strong>: 32 GB of system memory.</li>



<li><strong>Recommended</strong>: 64 GB or more for AOS features like deduplication, compression, or multiple user VMs.</li>
</ul>



<h3 class="wp-block-heading">Storage</h3>



<ul class="wp-block-list">
<li><strong>Boot Device</strong>: At least 32 GB capacity, using a high-reliability device (internal or external, like SATA DOM, M.2 SSD, or SATA SSD/HDD).</li>



<li><strong>Cold Tier</strong>: Minimum of 500 GB, up to 18 TB (typically 3 x 6 TB HDDs), using HDD or SSD.</li>



<li><strong>Hot Tier (Flash)</strong>: At least one non-NVMe SSD of 200 GB or larger.</li>
</ul>



<p>I have a recent Intel NUC with 64GB of memory, so the CPU and Memory requirements weren&#8217;t an issue. Storage was my problem as I only had one NVMe disk installed. Once I booted up and realized I needed to select three different drives for different purposes it turned into a bit of a mess which took me a bit to get sorted. </p>



<p>I ended up with a 250 GB SSD I had lying around which I  installed into the NUC, and I used a  64GB thumb drive for the boot device. With these, I was able to get the installation going. </p>



<h2 class="wp-block-heading">Installation</h2>



<p>To download and use Nutanix CE, I first needed to create an account. Here is the <a href="https://www.nutanix.com/products/community-edition/register" data-type="link" data-id="https://www.nutanix.com/products/community-edition/register" target="_blank" rel="noreferrer noopener">link</a>. Shortly after signing up, I received an email with the direct link where I was able to download the iso for deployment.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="590" height="383" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-3.png?resize=590%2C383&#038;ssl=1" alt="" class="wp-image-2377" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-3.png?w=590&amp;ssl=1 590w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-3.png?resize=300%2C195&amp;ssl=1 300w" sizes="auto, (max-width: 590px) 100vw, 590px" /></a></figure>



<p>After using <a href="https://rufus.ie/" data-type="link" data-id="https://rufus.ie/">Rufus</a> to create a bootable thumb drive, I was able to start deploying to my NUC. </p>



<h3 class="wp-block-heading">Deployment</h3>



<p>Once Nutanix CE boots up I was presented with the installer.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2378" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?resize=1024%2C771&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?resize=768%2C578&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-4.png?w=1218&amp;ssl=1 1218w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>I went through each disk and selected its role by using the &#8220;h&#8221;, &#8220;c&#8221;, or &#8220;d&#8221; keys. These are for the Hypervisor, CVM, and Data disks respectively. </p>



<p>Unlike VMware where a vCenter is needed to unlock most of the functionality, each node for Nutanix comes with its own &#8220;vCenter&#8221; in the form of the Cluster VM(CVM) which is always deployed. With this in mind, we see why this screen also requests separate IPs for the Host and the CVM. </p>



<p>Another note about the IPs is Nutanix will configure an internal IP for the CVM on 192.168.5.2. Although I am not sure of the impact if your home network is also on 192.168.5.0/24, I imagine that may cause some issues. </p>



<p>After finalizing the disks and IPs, the next page is the EULA. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="644" height="561" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-5.png?resize=644%2C561&#038;ssl=1" alt="" class="wp-image-2379" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-5.png?w=644&amp;ssl=1 644w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-5.png?resize=300%2C261&amp;ssl=1 300w" sizes="auto, (max-width: 644px) 100vw, 644px" /></a></figure>



<p>The one thing to be aware of is you need to scroll down to the bottom of the EULA, either with the down arrow or Page Down. It will let you proceed to the next screen without doing so, however, that next screens tells you to go back and read the EULA. </p>



<p>I was honestly a bit surprised but this was all this was needed for the installer. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2380" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?resize=1024%2C771&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?resize=768%2C578&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-6.png?w=1218&amp;ssl=1 1218w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>One other issue I had which is probably best mentioned here is I had the installer succeed here a couple times, but then started failing on some of the following configurations. The cause was I didn&#8217;t have the networking plugged in during the installation process. Even though I plugged it in shortly after, it seemed networking was required during the installation or something with the CVM broke. Sure, this seems obvious, but is more due to my homelab being a bit disjointed than not wanting to have it plugged in during the installation. </p>



<h3 class="wp-block-heading">Configuration</h3>



<p>After the reboot, we need to let the first boot processes complete. It is mentioned in the post this can take up to 20 minutes. </p>



<p>First, we log into the Hypervisor IP  as root via ssh.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="733" height="474" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-7.png?resize=733%2C474&#038;ssl=1" alt="" class="wp-image-2381" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-7.png?w=733&amp;ssl=1 733w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-7.png?resize=300%2C194&amp;ssl=1 300w" sizes="auto, (max-width: 733px) 100vw, 733px" /></a></figure>



<p>The default password is &#8220;nutanix/4u&#8221;. </p>



<p>Second, we log into the CVM from the Hypervisor as nutanix via SSH. The IP used here is not the one we previously configured, but the internal IP for the CVM. This is 192.168.5.2. The password is the same. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="690" height="382" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-8.png?resize=690%2C382&#038;ssl=1" alt="" class="wp-image-2382" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-8.png?w=690&amp;ssl=1 690w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-8.png?resize=300%2C166&amp;ssl=1 300w" sizes="auto, (max-width: 690px) 100vw, 690px" /></a></figure>



<p>We run our command to create the cluster. This will be a single node so our command is: </p>



<pre class="wp-block-code"><code>cluster -s cvm_ip --redundancy_factor=1 create</code></pre>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-9.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="341" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-9.png?resize=750%2C341&#038;ssl=1" alt="" class="wp-image-2383" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-9.png?w=881&amp;ssl=1 881w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-9.png?resize=300%2C137&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-9.png?resize=768%2C350&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>There are other options if you are creating a multinode cluster. The documentation for this command and the following commands is <a href="https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started-v2_1:top-cluster-config-ce-t.html" data-type="link" data-id="https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Community-Edition-Getting-Started-v2_1:top-cluster-config-ce-t.html" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p>As the cluster starts creating, we see regular updates as various services are starting. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-10.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="495" height="361" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-10.png?resize=495%2C361&#038;ssl=1" alt="" class="wp-image-2384" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-10.png?w=495&amp;ssl=1 495w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-10.png?resize=300%2C219&amp;ssl=1 300w" sizes="auto, (max-width: 495px) 100vw, 495px" /></a></figure>



<p>Finally, we see the cluster is up. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-11.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="719" height="530" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-11.png?resize=719%2C530&#038;ssl=1" alt="" class="wp-image-2385" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-11.png?w=719&amp;ssl=1 719w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-11.png?resize=300%2C221&amp;ssl=1 300w" sizes="auto, (max-width: 719px) 100vw, 719px" /></a></figure>



<p>Next, we need to name the cluster.</p>



<pre class="wp-block-code"><code>ncli cluster edit-params new-name=cluster_name</code></pre>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-12.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="434" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-12.png?resize=750%2C434&#038;ssl=1" alt="" class="wp-image-2386" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-12.png?w=828&amp;ssl=1 828w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-12.png?resize=300%2C174&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-12.png?resize=768%2C444&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Configure DNS. </p>



<pre class="wp-block-code"><code>ncli cluster add-to-name-servers servers=<var>public_name_server_ip_address</var></code></pre>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-13.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="47" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-13.png?resize=750%2C47&#038;ssl=1" alt="" class="wp-image-2387" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-13.png?w=900&amp;ssl=1 900w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-13.png?resize=300%2C19&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-13.png?resize=768%2C48&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>And create the VIP. This would be more prominently used multinode cluster.</p>



<pre class="wp-block-code"><code>ncli cluster set-external-ip-address external-ip-address=<var>cluster_ip_address</var></code></pre>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="358" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?resize=750%2C358&#038;ssl=1" alt="" class="wp-image-2388" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?resize=1024%2C489&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?resize=300%2C143&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?resize=768%2C367&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-14.png?w=1032&amp;ssl=1 1032w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Once done, you can hit either the CVM IP or the VIP in a browser. Make sure it is HTTP though. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-15.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="604" height="319" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-15.png?resize=604%2C319&#038;ssl=1" alt="" class="wp-image-2389" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-15.png?w=604&amp;ssl=1 604w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-15.png?resize=300%2C158&amp;ssl=1 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a></figure>



<p>Password is again &#8220;nutanix/4u&#8221;. Then there is a prompt to update it. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-16.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="604" height="470" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-16.png?resize=604%2C470&#038;ssl=1" alt="" class="wp-image-2390" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-16.png?w=604&amp;ssl=1 604w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-16.png?resize=300%2C233&amp;ssl=1 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a></figure>



<p>Followed by a prompt to log in with the account you created on the Nutanix site. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-17.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="325" height="254" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-17.png?resize=325%2C254&#038;ssl=1" alt="" class="wp-image-2391" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-17.png?w=325&amp;ssl=1 325w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-17.png?resize=300%2C234&amp;ssl=1 300w" sizes="auto, (max-width: 325px) 100vw, 325px" /></a></figure>



<p></p>



<p>Now we are all done and get into the dashboard. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="261" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?resize=750%2C261&#038;ssl=1" alt="" class="wp-image-2392" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?resize=1024%2C356&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?resize=300%2C104&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?resize=768%2C267&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?resize=1536%2C533&amp;ssl=1 1536w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-18.png?w=1878&amp;ssl=1 1878w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>For me, the first stop is to find Dark Mode. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-19.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="510" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-19.png?resize=750%2C510&#038;ssl=1" alt="" class="wp-image-2393" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-19.png?w=946&amp;ssl=1 946w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-19.png?resize=300%2C204&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/11/image-19.png?resize=768%2C522&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Much better. </p>



<p>Hopefully, this has been helpful. Soon, I will have additional posts exploring the UI and creating VMs among other things. </p>



<p>Thanks!</p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2376</post-id>	</item>
		<item>
		<title>Deploying Linux Containers in Proxmox</title>
		<link>https://www.vnoob.com/2024/10/deploying-linux-containers-in-proxmox/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 19:03:00 +0000</pubDate>
				<category><![CDATA[proxmox]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2345</guid>

					<description><![CDATA[Deploying a LinuX Container(LXC) seemed like the next logical step in this Proxmox journey. The process is fairly quick and straightforward. Before we dig in it should first be noted that although Linux Containers and Docker Containers both have &#8220;container&#8221; in the name, they are very different. I like this [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>Deploying a LinuX Container(LXC) seemed like the next logical step in this Proxmox journey. The process is fairly quick and straightforward.</p>



<p>Before we dig in it should first be noted that although Linux Containers and Docker Containers both have &#8220;container&#8221; in the name, they are very different. I like this <a href="https://blog.purestorage.com/purely-educational/docker-vs-lxc/" data-type="link" data-id="https://blog.purestorage.com/purely-educational/docker-vs-lxc/">Pure blog</a> discussing the differences. </p>



<p></p>



<h2 class="wp-block-heading">Create a Pool </h2>



<p>The first step in deploying LXC is to create a Pool in Proxmox. Click Datacenter in the left-hand pane, then select Pools under permissions, then Create. This is not necessarily an intuitive location so hopefully this screenshot helps. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="676" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image.png?resize=750%2C676&#038;ssl=1" alt="" class="wp-image-2346" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image.png?w=758&amp;ssl=1 758w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image.png?resize=300%2C270&amp;ssl=1 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>I decided to be very original and name it Pool 1. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="308" height="152" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-1.png?resize=308%2C152&#038;ssl=1" alt="" class="wp-image-2347" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-1.png?w=308&amp;ssl=1 308w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-1.png?resize=300%2C148&amp;ssl=1 300w" sizes="auto, (max-width: 308px) 100vw, 308px" /></a></figure>



<p></p>



<h2 class="wp-block-heading">Downloading Templates</h2>



<p>Next, we need to grab a template for use with our LXC. Select the storage device, in my case local, and then CT Templates. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="734" height="200" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-2.png?resize=734%2C200&#038;ssl=1" alt="" class="wp-image-2348" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-2.png?w=734&amp;ssl=1 734w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-2.png?resize=300%2C82&amp;ssl=1 300w" sizes="auto, (max-width: 734px) 100vw, 734px" /></a></figure>



<p>In this screenshot, I already have some from previous efforts, but this will be empty on a fresh Proxmox deployment. Fortunately, if you select the Templates button there are a ton of templates to easily add to Proxmox. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="631" height="300" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-3.png?resize=631%2C300&#038;ssl=1" alt="" class="wp-image-2349" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-3.png?w=631&amp;ssl=1 631w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-3.png?resize=300%2C143&amp;ssl=1 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></a></figure>



<p>And this is only a small handful. Having used Ansible in the past, I was curious how the Ansible template would look. </p>



<p>After choosing to download the template a status screen appears to give updates.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="638" height="460" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-4.png?resize=638%2C460&#038;ssl=1" alt="" class="wp-image-2350" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-4.png?w=638&amp;ssl=1 638w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-4.png?resize=300%2C216&amp;ssl=1 300w" sizes="auto, (max-width: 638px) 100vw, 638px" /></a></figure>



<p></p>



<h2 class="wp-block-heading">Deploy Container</h2>



<p>Finally, we can deploy our container.  You can either right-click the host, then Create CT or select Create CT on the top-right of the window. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="256" height="205" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-5.png?resize=256%2C205&#038;ssl=1" alt="" class="wp-image-2351"/></a></figure>



<p>Choose a name for the container and password. Select the Resource Pool created earlier. The option to proceed won&#8217;t appear until all these fields are complete. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="715" height="529" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-7.png?resize=715%2C529&#038;ssl=1" alt="" class="wp-image-2353" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-7.png?w=715&amp;ssl=1 715w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-7.png?resize=300%2C222&amp;ssl=1 300w" sizes="auto, (max-width: 715px) 100vw, 715px" /></a></figure>



<p>Choose the desired template, in this case the ansible one I just downloaded. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="397" height="189" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-8.png?resize=397%2C189&#038;ssl=1" alt="" class="wp-image-2354" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-8.png?w=397&amp;ssl=1 397w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-8.png?resize=300%2C143&amp;ssl=1 300w" sizes="auto, (max-width: 397px) 100vw, 397px" /></a></figure>



<p>Determine disk size and location.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-9.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="459" height="182" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-9.png?resize=459%2C182&#038;ssl=1" alt="" class="wp-image-2355" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-9.png?w=459&amp;ssl=1 459w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-9.png?resize=300%2C119&amp;ssl=1 300w" sizes="auto, (max-width: 459px) 100vw, 459px" /></a></figure>



<p>For this test, I stuck with defaults for CPU and Memory.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-10.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="375" height="129" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-10.png?resize=375%2C129&#038;ssl=1" alt="" class="wp-image-2356" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-10.png?w=375&amp;ssl=1 375w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-10.png?resize=300%2C103&amp;ssl=1 300w" sizes="auto, (max-width: 375px) 100vw, 375px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-11.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="717" height="533" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-11.png?resize=717%2C533&#038;ssl=1" alt="" class="wp-image-2357" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-11.png?w=717&amp;ssl=1 717w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-11.png?resize=300%2C223&amp;ssl=1 300w" sizes="auto, (max-width: 717px) 100vw, 717px" /></a></figure>



<p>I did however want to use DHCP for the IP address of the container. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-12.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="594" height="263" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-12.png?resize=594%2C263&#038;ssl=1" alt="" class="wp-image-2358" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-12.png?w=594&amp;ssl=1 594w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-12.png?resize=300%2C133&amp;ssl=1 300w" sizes="auto, (max-width: 594px) 100vw, 594px" /></a></figure>



<p>Lastly, enter DNS settings if you like, and finish</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-13.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="717" height="533" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-13.png?resize=717%2C533&#038;ssl=1" alt="" class="wp-image-2359" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-13.png?w=717&amp;ssl=1 717w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-13.png?resize=300%2C223&amp;ssl=1 300w" sizes="auto, (max-width: 717px) 100vw, 717px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-14.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="554" height="501" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-14.png?resize=554%2C501&#038;ssl=1" alt="" class="wp-image-2360" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-14.png?w=554&amp;ssl=1 554w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-14.png?resize=300%2C271&amp;ssl=1 300w" sizes="auto, (max-width: 554px) 100vw, 554px" /></a></figure>



<p>A new task window will appear to give status updates. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-15.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="539" height="285" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-15.png?resize=539%2C285&#038;ssl=1" alt="" class="wp-image-2361" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-15.png?w=539&amp;ssl=1 539w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-15.png?resize=300%2C159&amp;ssl=1 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></a></figure>



<p>In this particular instance, the container failed to start after deployment, so I needed to start it manually which succeeded. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-16.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="79" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-16.png?resize=750%2C79&#038;ssl=1" alt="" class="wp-image-2362" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-16.png?w=878&amp;ssl=1 878w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-16.png?resize=300%2C32&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-16.png?resize=768%2C81&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Once deployed, I try the IP in a browser</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-17.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="419" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-17.png?resize=750%2C419&#038;ssl=1" alt="" class="wp-image-2364" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-17.png?w=944&amp;ssl=1 944w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-17.png?resize=300%2C168&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-17.png?resize=768%2C430&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>It has instructions to console into the container in Proxmox, and login as root, using the password I configured at deployment. </p>



<p>Next, I am instructed to create an admin password:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-18.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="539" height="274" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-18.png?resize=539%2C274&#038;ssl=1" alt="" class="wp-image-2365" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-18.png?w=539&amp;ssl=1 539w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-18.png?resize=300%2C153&amp;ssl=1 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></a></figure>



<p>Then an optional API key, this optional though so I skip it.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-19.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="504" height="364" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-19.png?resize=504%2C364&#038;ssl=1" alt="" class="wp-image-2366" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-19.png?w=504&amp;ssl=1 504w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-19.png?resize=300%2C217&amp;ssl=1 300w" sizes="auto, (max-width: 504px) 100vw, 504px" /></a></figure>



<p>It then asks a few more questions about configuring an email and installing security updates, but I skip those as well as they are optional and this is just a temporary container</p>



<p>Then finally, it is done and I can log in. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-20.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="398" height="367" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-20.png?resize=398%2C367&#038;ssl=1" alt="" class="wp-image-2367" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-20.png?w=398&amp;ssl=1 398w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-20.png?resize=300%2C277&amp;ssl=1 300w" sizes="auto, (max-width: 398px) 100vw, 398px" /></a></figure>



<p>Turns out the Ansible template is for Semaphore, which is a UI for Ansible among other things. I may poke around with it later.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-21.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="435" height="527" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-21.png?resize=435%2C527&#038;ssl=1" alt="" class="wp-image-2368" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-21.png?w=435&amp;ssl=1 435w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/10/image-21.png?resize=248%2C300&amp;ssl=1 248w" sizes="auto, (max-width: 435px) 100vw, 435px" /></a></figure>



<p>That is how to deploy a LXC on Proxmox. Have a great one. </p>



<p></p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2345</post-id>	</item>
		<item>
		<title>Proxmox VE Homelab Standup</title>
		<link>https://www.vnoob.com/2024/09/proxmox-ve-homelab-standup/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Fri, 20 Sep 2024 15:12:24 +0000</pubDate>
				<category><![CDATA[proxmox]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2331</guid>

					<description><![CDATA[After a couple of years of using my beefier NUC to run Ubuntu with VMware Workstation, I decided it was time for a switch. Naturally, this has nothing to do with the current state of VMware/Broadcom. Definitely not. Looking for a switch and wanting to build my homelab out a [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>After a couple of years of using my beefier NUC to run Ubuntu with VMware Workstation, I decided it was time for a switch. Naturally, this has nothing to do with the current state of VMware/Broadcom. Definitely not. </p>



<p>Looking for a switch and wanting to build my homelab out a bit more I thought Proxmox would be a great fit for me. Fortunately, it couldn&#8217;t have been easier. </p>



<p>After <a href="https://www.proxmox.com/en/downloads" data-type="link" data-id="https://www.proxmox.com/en/downloads">downloading</a> and flashing the ISO to a USB, I fired it up.  I also apologe in advance for the photo quality.</p>



<p>Booting to the USB, I see the install screen where I choose I want to GUI based installation.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.jpeg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.jpeg?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2332" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.jpeg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.jpeg?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.jpeg?resize=768%2C578&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>As with most things, the next screen is a EULA:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.png?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2333" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.png?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image.png?resize=768%2C578&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Following the EULA,  Proxmox asks where it should be installed. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="261" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?resize=750%2C261&#038;ssl=1" alt="" class="wp-image-2335" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?resize=1024%2C357&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?resize=300%2C105&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?resize=768%2C268&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-2.png?w=1087&amp;ssl=1 1087w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>This choice is at the bottom in tiny font. It can be easy to miss if you aren&#8217;t looking for it. </p>



<p>Basic geographic and time info is requested next:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-3.png?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2336" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-3.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-3.png?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-3.png?resize=768%2C578&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Next, it wants an admin password and an email for notifications:<br /></p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="388" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-4.png?resize=750%2C388&#038;ssl=1" alt="" class="wp-image-2337" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-4.png?w=847&amp;ssl=1 847w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-4.png?resize=300%2C155&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-4.png?resize=768%2C397&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Networking is next, and it is where I had my only issue. In the screenshot, I chose to use the wifi adapter. Proxmox will install like this, but it won&#8217;t work. After much digging, it seemed the only way to get it to work on wifi was to make several additional networking changes after installation. I ended up going back and reinstalling at this point and chose the ethernet port for ease of use.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="565" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-5.png?resize=750%2C565&#038;ssl=1" alt="" class="wp-image-2338" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-5.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-5.png?resize=300%2C226&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-5.png?resize=768%2C578&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Lastly is the Summary page with all of the input information:<br /></p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="491" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-6.png?resize=750%2C491&#038;ssl=1" alt="" class="wp-image-2339" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-6.png?w=847&amp;ssl=1 847w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-6.png?resize=300%2C196&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-6.png?resize=768%2C502&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>After the installation was completed and my NUC was rebooted, I hit IPAdress:8006 to login. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="397" height="198" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-7.png?resize=397%2C198&#038;ssl=1" alt="" class="wp-image-2340" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-7.png?w=397&amp;ssl=1 397w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-7.png?resize=300%2C150&amp;ssl=1 300w" sizes="auto, (max-width: 397px) 100vw, 397px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="261" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-8.png?resize=750%2C261&#038;ssl=1" alt="" class="wp-image-2341" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-8.png?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-8.png?resize=300%2C105&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/09/image-8.png?resize=768%2C268&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>That&#8217;s it. I was honestly surprised with how simple and quick the installation was. I look forward to adding some VMs and containers to Proxmox and sharing my ongoing homelab updates here. </p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2331</post-id>	</item>
		<item>
		<title>Linux Basics: Searching through logs</title>
		<link>https://www.vnoob.com/2024/09/linux-basics-searching-through-logs/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Wed, 04 Sep 2024 12:01:30 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2313</guid>

					<description><![CDATA[I recently completed my Linux Foundation Certified System Administration certification. Although I have used and managed Linux servers for several years as part of my job and homelab, it wasn&#8217;t my primary responsibility. The certification was a nice way for me to round off and solidify my Linux knowledge. I [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>I recently completed my Linux Foundation Certified System Administration certification. Although I have used and managed Linux servers for several years as part of my job and homelab, it wasn&#8217;t my primary responsibility. The certification was a nice way for me to round off and solidify my Linux knowledge.</p>



<p>I thought it might be helpful to do some posts where I go back to basics with various Linux topics. Where better to start than what everyone needs to do at some point or another&#8230;..LOGS</p>



<p>This will not be an exhaustive guide for navigating and troubleshooting logs. It will be a starting point for those who are stumbling across this post and maybe have a tip or two for those with more experience. </p>



<h2 class="wp-block-heading">Tail</h2>



<p>Ahhhhh Tail! It is one of the first tools most learn when navigating text and log files. Being one of first means it is also very straightforward.</p>



<p>If we look at the man page the syntax for a tail command has this format:</p>



<pre class="wp-block-code"><code>tail &#91;Option]  &#91;File]
</code></pre>



<p>In practice it may look like this:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="164" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image.png?resize=750%2C164&#038;ssl=1" alt="" class="wp-image-2314" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image.png?w=950&amp;ssl=1 950w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image.png?resize=300%2C66&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image.png?resize=768%2C168&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Without any parameters/flags tail will show the ten last or most recent lines in a file. The most common parameter used is probably -n, which changes how many of the most recent lines from a file are shown. In this instance, I am having tail show the most recent 20 lines from this log.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="288" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?resize=750%2C288&#038;ssl=1" alt="" class="wp-image-2315" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?resize=1024%2C393&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?resize=300%2C115&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?resize=768%2C294&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-1.png?w=1093&amp;ssl=1 1093w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>The second parameter for tail to know would be -f, where the f means follow. With this parameter tail will &#8220;follow&#8221; the file and as new lines are added to the file or log, tail will display them on the screen. This is really great for troubleshooting as you can see updates to the log in real time. </p>



<p></p>



<h2 class="wp-block-heading">Grep</h2>



<p>Grep allows us to search through log files for specific text. It is a tool with a LOT of depth to it as well, especially if you can pull out some decent regex skills.</p>



<p>I won&#8217;t be going too deep into it, but there are some basic examples worth sharing.</p>



<p>The syntax for grep is:</p>



<pre class="wp-block-code"><code>grep &#91;OPTION...] PATTERNS &#91;FILE...]</code></pre>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="203" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-2.png?resize=750%2C203&#038;ssl=1" alt="" class="wp-image-2316" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-2.png?w=973&amp;ssl=1 973w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-2.png?resize=300%2C81&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-2.png?resize=768%2C208&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>By default, grep is case sensitive, but if I use the -i flag, it will return entries regardless of case:</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="88" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?resize=750%2C88&#038;ssl=1" alt="" class="wp-image-2320" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?resize=1024%2C120&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?resize=300%2C35&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?resize=768%2C90&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-6.png?w=1143&amp;ssl=1 1143w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>We see that both &#8220;error&#8221; and &#8220;Error&#8221; were returned.</p>



<p>If I want to search through all the syslog files so my command will look like this :</p>



<pre class="wp-block-code"><code>grep "error" /var/log/syslog*</code></pre>



<p>This returns a lot of entries, but I can now see which file each entry corresponds to on the left.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="713" height="169" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-3.png?resize=713%2C169&#038;ssl=1" alt="" class="wp-image-2317" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-3.png?w=713&amp;ssl=1 713w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-3.png?resize=300%2C71&amp;ssl=1 300w" sizes="auto, (max-width: 713px) 100vw, 713px" /></a></figure>



<p>And if I scroll down further, I see the other log file it searched:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="170" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-4.png?resize=750%2C170&#038;ssl=1" alt="" class="wp-image-2318" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-4.png?w=856&amp;ssl=1 856w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-4.png?resize=300%2C68&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-4.png?resize=768%2C174&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>If you use the -c flag it will tell you how many instances were found in each of the files. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="401" height="117" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-7.png?resize=401%2C117&#038;ssl=1" alt="" class="wp-image-2321" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-7.png?w=401&amp;ssl=1 401w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-7.png?resize=300%2C88&amp;ssl=1 300w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a></figure>



<p>This is very helpful if you are trying to determine which log file may have the info you need. </p>



<p></p>



<h2 class="wp-block-heading">Journalctl</h2>



<p>Journalctl is a tool which allows us to query logs from the systemd-journal service. In other words, it has all kinds of logs. </p>



<p>The most basic way is just to enter &#8220;journalctl&#8221; but that will return more than what is easy to parse and read. If we use -r it will return the newest entries first, with a pager, so we can consume the logs without our screen exploding.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="307" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?resize=750%2C307&#038;ssl=1" alt="" class="wp-image-2322" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?resize=1024%2C419&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?resize=300%2C123&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?resize=768%2C314&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-8.png?w=1070&amp;ssl=1 1070w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>And at the bottom, we see this:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-9.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="123" height="45" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-9.png?resize=123%2C45&#038;ssl=1" alt="" class="wp-image-2323"/></a></figure>



<p>This lets us know we can read more lines if we hit the spacebar.</p>



<p>Another option is &#8211;since which lets us define from how long ago we want logs. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-10.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="66" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-10.png?resize=750%2C66&#038;ssl=1" alt="" class="wp-image-2324" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-10.png?w=869&amp;ssl=1 869w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-10.png?resize=300%2C27&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-10.png?resize=768%2C68&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Here I only did &#8220;2 minutes ago&#8221;, but hours, days&#8230;etc will work as well.</p>



<p>We can also use something similar to grep with the journalctl command by using -g. I will also use -n to limit the number of lines(like we did above). </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-11.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="81" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-11.png?resize=750%2C81&#038;ssl=1" alt="" class="wp-image-2325" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-11.png?w=923&amp;ssl=1 923w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-11.png?resize=300%2C33&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-11.png?resize=768%2C83&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Finally, use -u if you are looking for logs from a particular service. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-12.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="709" height="423" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-12.png?resize=709%2C423&#038;ssl=1" alt="" class="wp-image-2326" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-12.png?w=709&amp;ssl=1 709w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/08/image-12.png?resize=300%2C179&amp;ssl=1 300w" sizes="auto, (max-width: 709px) 100vw, 709px" /></a></figure>



<p></p>



<p>This only scratches the surface, but hopefully it will help the next time you need to go diving into logs for troubleshooting. </p>



<p></p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2313</post-id>	</item>
		<item>
		<title>Deploy Harvester on VMware Workstation</title>
		<link>https://www.vnoob.com/2024/04/deploy-harvester-on-vmware-workstation/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 12:28:26 +0000</pubDate>
				<category><![CDATA[harvester]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2281</guid>

					<description><![CDATA[A couple of months ago I was looking around for something new to try in the homelab. Since I had done Kubernetes last year when I was getting certified, I thought it might be a good idea to try out KubeVirt. Kubevirt sits on top of Kubenetes and allows one [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p></p>



<p>A couple of months ago I was looking around for something new to try in the homelab. Since I had done <a href="https://kubernetes.io/" data-type="link" data-id="https://kubernetes.io/" target="_blank" rel="noreferrer noopener">Kubernetes </a>last year when I was getting certified, I thought it might be a good idea to try out <a href="https://kubevirt.io/" data-type="link" data-id="https://kubevirt.io/" target="_blank" rel="noreferrer noopener">KubeVirt</a>. Kubevirt sits on top of Kubenetes and allows one to deploy more traditional VMs. With my existing Kubernetes deployment and my history with VMware, this seemed like a good fit.</p>



<p>That is until my buddy <a href="https://www.linkedin.com/in/ericshanks/" data-type="link" data-id="https://www.linkedin.com/in/ericshanks/" target="_blank" rel="noreferrer noopener">Eric Shanks</a> did a <a href="https://theithollow.com/2024/01/18/harvester-installation/" data-type="link" data-id="https://theithollow.com/2024/01/18/harvester-installation/" target="_blank" rel="noreferrer noopener">blog post</a> about Harvester. After five minutes of researching Harvester, I knew this was what I would do next.</p>



<p></p>



<h2 class="wp-block-heading">What is Harvester?</h2>



<p>Harvester is a virtual machine and container platform built on Kubernetes. From the <a href="https://docs.harvesterhci.io/v1.3" data-type="link" data-id="https://docs.harvesterhci.io/v1.3" target="_blank" rel="noreferrer noopener">website</a>, it is &#8220;a modern, open, interoperable, hyperconverged infrastructure (HCI) solution built on Kubernetes.&#8221;</p>



<p>Harvester uses several open-source products to build its platform. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ul class="wp-block-list">
<li><strong>Linux OS.</strong>&nbsp;<a href="https://github.com/rancher/elemental-toolkit" target="_blank" rel="noreferrer noopener">Elemental for SLE-Micro 5.3</a>&nbsp;is at the core of Harvester and is an immutable Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster.</li>



<li><strong>Built on top of Kubernetes.</strong>&nbsp;<a href="https://kubernetes.io/" target="_blank" rel="noreferrer noopener">Kubernetes</a>&nbsp;has become the predominant infrastructure language across all form factors, and Harvester is an HCI solution with Kubernetes under the hood.</li>



<li><strong>Virtualization management with KubeVirt.</strong>&nbsp;<a href="https://kubevirt.io/" target="_blank" rel="noreferrer noopener">KubeVirt</a>&nbsp;provides virtualization management using KVM on top of Kubernetes.</li>



<li><strong>Storage management with Longhorn.</strong>&nbsp;<a href="https://longhorn.io/" target="_blank" rel="noreferrer noopener">Longhorn</a>&nbsp;provides distributed block storage and tiering.</li>



<li><strong>Observability with Grafana and Prometheus.</strong>&nbsp;<a href="https://grafana.com/" target="_blank" rel="noreferrer noopener">Grafana</a>&nbsp;and&nbsp;<a href="https://prometheus.io/" target="_blank" rel="noreferrer noopener">Prometheus</a>&nbsp;provide robust monitoring and logging.</li>
</ul>
<cite><a href="https://docs.harvesterhci.io/v1.3">https://docs.harvesterhci.io/v1.3</a></cite></blockquote>



<p>This ticks a lot of boxes for me. First, I did a series of <a href="https://www.vnoob.com/2022/12/deploying-kubernetes-kubeadm-on-raspberry-pi-pt1-initial-image-and-setup/" data-type="link" data-id="https://www.vnoob.com/2022/12/deploying-kubernetes-kubeadm-on-raspberry-pi-pt1-initial-image-and-setup/" target="_blank" rel="noreferrer noopener">posts</a> on Kubernetes a bit over a year ago. Second, I was already interested in Kubevirt. Lastly, although I didn&#8217;t make any posts about it, I did a Proof of Concept for a monitoring solution a few years ago which heavily used Grafana and Prometheus. All in all, Harvester seems like a great match for me.</p>



<p>I have some dedicated hardware where I want to deploy Harvester. However, I decided to first deploy it to  VMware Workstation to get a feel for the process and poke at it until I get a more permanent home setup. </p>



<p></p>



<h2 class="wp-block-heading">VM Deployment</h2>



<p>We will start by creating a new VM in Workstation:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="440" height="339" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image.png?resize=440%2C339&#038;ssl=1" alt="" class="wp-image-2282" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image.png?w=440&amp;ssl=1 440w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image.png?resize=300%2C231&amp;ssl=1 300w" sizes="auto, (max-width: 440px) 100vw, 440px" /></a></figure>



<p></p>



<p>Select Custom as we will need to make some changes as we go which are different than just Typical</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="292" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?resize=750%2C292&#038;ssl=1" alt="" class="wp-image-2283" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?resize=1024%2C399&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?resize=768%2C299&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-1.png?w=1056&amp;ssl=1 1056w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>The compatibility will start with one for Workstation, but we need to ESXi. Whenever I did not choose ESXi I had network issues with the VM and could not finish the deployment. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="596" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?resize=750%2C596&#038;ssl=1" alt="" class="wp-image-2284" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?resize=1024%2C814&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?resize=300%2C239&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?resize=768%2C611&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-2.png?w=1064&amp;ssl=1 1064w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Choose the Harvester ISO</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="600" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?resize=750%2C600&#038;ssl=1" alt="" class="wp-image-2285" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?resize=1024%2C819&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?resize=300%2C240&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?resize=768%2C614&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-3.png?w=1073&amp;ssl=1 1073w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>For Operating System, select Linux and OpenSUSE 64bit</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="353" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-4.png?resize=750%2C353&#038;ssl=1" alt="" class="wp-image-2286" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-4.png?w=853&amp;ssl=1 853w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-4.png?resize=300%2C141&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-4.png?resize=768%2C362&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Name the VM and the location it will be stored</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="324" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?resize=750%2C324&#038;ssl=1" alt="" class="wp-image-2287" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?resize=1024%2C442&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?resize=300%2C129&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?resize=768%2C331&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-5.png?w=1052&amp;ssl=1 1052w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>For processors, I found anything less than 4 and the required pods wouldn&#8217;t be able to spin up. The system requirements for Harvester are 8CPU minimum, but I was able to get it deployed with 4. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="321" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-6.png?resize=750%2C321&#038;ssl=1" alt="" class="wp-image-2288" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-6.png?w=876&amp;ssl=1 876w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-6.png?resize=300%2C128&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-6.png?resize=768%2C329&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Memory is similar, the requirements list 32, but my deployment was able to stand up with 8. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="568" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-7.png?resize=750%2C568&#038;ssl=1" alt="" class="wp-image-2289" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-7.png?w=985&amp;ssl=1 985w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-7.png?resize=300%2C227&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-7.png?resize=768%2C582&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Select Bridged Networking for the VM to utilize the host nic. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="413" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-8.png?resize=750%2C413&#038;ssl=1" alt="" class="wp-image-2290" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-8.png?w=850&amp;ssl=1 850w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-8.png?resize=300%2C165&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-8.png?resize=768%2C423&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>SCSI for disk</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-9.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="506" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-9.png?resize=750%2C506&#038;ssl=1" alt="" class="wp-image-2291" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-9.png?w=991&amp;ssl=1 991w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-9.png?resize=300%2C203&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-9.png?resize=768%2C518&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Create a new virtual disk</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="486" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?resize=750%2C486&#038;ssl=1" alt="" class="wp-image-2292" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?resize=1024%2C663&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?resize=300%2C194&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?resize=768%2C498&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-10.png?w=1062&amp;ssl=1 1062w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>I tried to deploy this a few times with less than 250GB of space, but the installer wouldn&#8217;t let me proceed. 250 was the minimum limit for me.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-11.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="539" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-11.png?resize=750%2C539&#038;ssl=1" alt="" class="wp-image-2293" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-11.png?w=1008&amp;ssl=1 1008w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-11.png?resize=300%2C215&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-11.png?resize=768%2C552&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>After this finish up the wizard and boot up the VM to finish the deployment</p>



<p></p>



<h2 class="wp-block-heading">Installing Harvester</h2>



<p>This is a fresh Harvester install so we begin with choosing &#8220;Create a new Harvester cluster&#8221;.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-12.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="451" height="231" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-12.png?resize=451%2C231&#038;ssl=1" alt="" class="wp-image-2294" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-12.png?w=451&amp;ssl=1 451w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-12.png?resize=300%2C154&amp;ssl=1 300w" sizes="auto, (max-width: 451px) 100vw, 451px" /></a></figure>



<p>I only have one disk attached to my VM so I choose the defaults here. Also, this screenshot is from a time I tried the install with a smaller disk size. Just pretend the 50G is 250G.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-13.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="432" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-13.png?resize=750%2C432&#038;ssl=1" alt="" class="wp-image-2295" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-13.png?w=832&amp;ssl=1 832w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-13.png?resize=300%2C173&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-13.png?resize=768%2C442&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Decide on a hostname</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-14.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="358" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-14.png?resize=750%2C358&#038;ssl=1" alt="" class="wp-image-2296" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-14.png?w=859&amp;ssl=1 859w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-14.png?resize=300%2C143&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-14.png?resize=768%2C367&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Configure networking. If you deployed the VM with Workstation compatibility, you may have issues here. When I had select Workstation compatibility, my VM would not recognize the nic and so I could never proceed past this step.</p>



<p>I am choosing a static configuration.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-15.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="536" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-15.png?resize=750%2C536&#038;ssl=1" alt="" class="wp-image-2297" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-15.png?w=843&amp;ssl=1 843w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-15.png?resize=300%2C214&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-15.png?resize=768%2C548&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Enter your DNS settings</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-16.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="261" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-16.png?resize=750%2C261&#038;ssl=1" alt="" class="wp-image-2298" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-16.png?w=894&amp;ssl=1 894w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-16.png?resize=300%2C104&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-16.png?resize=768%2C267&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Configure the Virtual IP</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-17.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="559" height="236" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-17.png?resize=559%2C236&#038;ssl=1" alt="" class="wp-image-2299" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-17.png?w=559&amp;ssl=1 559w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-17.png?resize=300%2C127&amp;ssl=1 300w" sizes="auto, (max-width: 559px) 100vw, 559px" /></a></figure>



<p>Choose a cluster token. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-18.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="714" height="265" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-18.png?resize=714%2C265&#038;ssl=1" alt="" class="wp-image-2300" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-18.png?w=714&amp;ssl=1 714w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-18.png?resize=300%2C111&amp;ssl=1 300w" sizes="auto, (max-width: 714px) 100vw, 714px" /></a></figure>



<p>Create a password for the node.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-19.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="632" height="312" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-19.png?resize=632%2C312&#038;ssl=1" alt="" class="wp-image-2301" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-19.png?w=632&amp;ssl=1 632w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-19.png?resize=300%2C148&amp;ssl=1 300w" sizes="auto, (max-width: 632px) 100vw, 632px" /></a></figure>



<p>NTP Settings</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-20.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="708" height="287" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-20.png?resize=708%2C287&#038;ssl=1" alt="" class="wp-image-2302" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-20.png?w=708&amp;ssl=1 708w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-20.png?resize=300%2C122&amp;ssl=1 300w" sizes="auto, (max-width: 708px) 100vw, 708px" /></a></figure>



<p>The next three screens you are able to leave blank which I did. They are Proxy settings, an option to import SSH keys, and optional Harvester config. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-21.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="743" height="276" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-21.png?resize=743%2C276&#038;ssl=1" alt="" class="wp-image-2303" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-21.png?w=743&amp;ssl=1 743w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-21.png?resize=300%2C111&amp;ssl=1 300w" sizes="auto, (max-width: 743px) 100vw, 743px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-22.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="745" height="328" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-22.png?resize=745%2C328&#038;ssl=1" alt="" class="wp-image-2304" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-22.png?w=745&amp;ssl=1 745w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-22.png?resize=300%2C132&amp;ssl=1 300w" sizes="auto, (max-width: 745px) 100vw, 745px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-23.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="681" height="332" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-23.png?resize=681%2C332&#038;ssl=1" alt="" class="wp-image-2305" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-23.png?w=681&amp;ssl=1 681w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-23.png?resize=300%2C146&amp;ssl=1 300w" sizes="auto, (max-width: 681px) 100vw, 681px" /></a></figure>



<p></p>



<p>Assuming everything looks good your installation should kick off. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="744" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?resize=750%2C744&#038;ssl=1" alt="" class="wp-image-2306" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?w=795&amp;ssl=1 795w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?resize=300%2C298&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?resize=768%2C762&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-24.png?resize=50%2C50&amp;ssl=1 50w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Once it is done your VM should look like this.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-25.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="383" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-25.png?resize=750%2C383&#038;ssl=1" alt="" class="wp-image-2307" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-25.png?w=903&amp;ssl=1 903w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-25.png?resize=300%2C153&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-25.png?resize=768%2C392&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>My installation took somewhere between 15 to 30 minutes before the status changed to &#8220;Ready&#8221;, so patience is important. If it takes too long though, it could be something is wrong and you may need to troubleshoot in the VM.</p>



<p>Hit the Management URL in a browser and choose your password for logging in.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-26.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="443" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-26.png?resize=750%2C443&#038;ssl=1" alt="" class="wp-image-2308" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-26.png?w=871&amp;ssl=1 871w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-26.png?resize=300%2C177&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-26.png?resize=768%2C453&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Now at long last we are done with deployment and in Harvester! Enjoy!!!</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="296" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?resize=750%2C296&#038;ssl=1" alt="" class="wp-image-2309" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?resize=1024%2C404&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?resize=300%2C118&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?resize=768%2C303&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?resize=1536%2C605&amp;ssl=1 1536w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/04/image-27.png?w=1898&amp;ssl=1 1898w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>I will be posting more soon as I mess around with my installation. Thanks!</p>



<p></p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2281</post-id>	</item>
		<item>
		<title>Change VMTools Upgrade Policy with Ansible</title>
		<link>https://www.vnoob.com/2024/04/change-vmtools-upgrade-policy-with-ansible/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Sat, 06 Apr 2024 14:31:14 +0000</pubDate>
				<category><![CDATA[Ansible]]></category>
		<category><![CDATA[vSphere]]></category>
		<category><![CDATA[vsphere]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2276</guid>

					<description><![CDATA[For any familiar with PowerCLI, this is one of the first scripts someone may learn. It is just long enough to need more than one-liner, but short enough to feel like you don&#8217;t need to be an expert. Here is one I posted on this site over a decade ago: [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>For any familiar with PowerCLI, this is one of the first scripts someone may learn. It is just long enough to need more than one-liner, but short enough to feel like you don&#8217;t need to be an expert. Here is one I posted on this site over a <a href="https://www.vnoob.com/2011/12/vmware-tools-upgrade-policy/" target="_blank" rel="noreferrer noopener">decade ago</a>:<br /></p>



<pre class="wp-block-code"><code>param(&#91;string]$servers)
 
$spec= new-object vmware.vim.virtualmachineconfigspec
$spec.tools=new-object vmware.vim.toolsconfiginfo
$spec.tools.toolsupgradepolicy ="upgradeatpowercycle"
 
$vms= get-vm $servers
Foreach($vm in $vms){
$view=$vm|get-view
$view.reconfigvm($spec)
}</code></pre>



<p>I share this so we have a baseline when looking at the Ansible version. </p>



<pre class="wp-block-code"><code>---
- name: Update VMTools Upgrade Policy
  hosts: vcenters
  gather_facts: no
  collections:
    - vmware.vmware_rest
  tasks:
    - name: Get all VMs
      vmware.vmware_rest.vcenter_vm_info:
        vcenter_hostname: "{{ inventory_hostname }}"
        vcenter_username: "{{ vcenter_username }}"
        vcenter_password: "{{ vcenter_passwords&#91;inventory_hostname] }}"
        vcenter_validate_certs: no
      delegate_to: localhost
      register: vms

    - name: Change VMTools upgrade policy to UPGRADE_AT_POWER_CYCLE
      vmware.vmware_rest.vcenter_vm_tools:
        vcenter_hostname: "{{ inventory_hostname }}"
        vcenter_username: "{{ vcenter_username }}"
        vcenter_password: "{{ vcenter_passwords&#91;inventory_hostname] }}"
        vcenter_validate_certs: no
        vm: "{{ item.vm }}"
        upgrade_policy: UPGRADE_AT_POWER_CYCLE
      register: _result
      delegate_to: localhost
      loop:
        "{{vms.value}}"</code></pre>



<p>The two tasks here are straightforward even though they look and feel a more complicated than the PowerCLI version. </p>



<p>The first tasks gathers all the VMs in vCenter, and the second tasks changes the VMtools upgrade policy so VMtools upgrades during a reboot. That&#8217;s it. </p>



<p>Ansible&#8217;s benefit over PowerCLi is it can allow non-technical user to run pre-written playbooks very easily with little knowledge needed. Would I suggest everyone start transcribing all the Powershell/PowerCLI scripts to Ansible? Definitely not! But I do think exercises like this are important for learning Ansible or anything new as when we take a process or a script with which we are already familiar, it makes understanding the new tool or process that much easier. </p>



<p>Enjoy</p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2276</post-id>	</item>
		<item>
		<title>Running Ansible Playbooks against vSphere</title>
		<link>https://www.vnoob.com/2024/03/running-ansible-playbooks-against-vsphere/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Sat, 09 Mar 2024 16:46:00 +0000</pubDate>
				<category><![CDATA[Ansible]]></category>
		<category><![CDATA[vSphere]]></category>
		<category><![CDATA[vsphere]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2258</guid>

					<description><![CDATA[Normally I frequently use Powershell when it comes to vSphere automation, but lately, I have been wanting to develop tools and scripts that are user-friendly and easily reusable. With those objectives in mind, it is hard to find a better tool than Ansible playbooks. Ansible playbooks often use ssh for [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>Normally I frequently use Powershell when it comes to vSphere automation, but lately, I have been wanting to develop tools and scripts that are user-friendly and easily reusable. With those objectives in mind, it is hard to find a better tool than Ansible playbooks. </p>



<p>Ansible playbooks often use ssh for connecting to remote resources to run commands. With vSphere modules for Ansible. the experience is more similar to how powershell connects.</p>



<p>For these ansible playbooks I will be using a play which will grab some basic datacenter info from a vCenter. This module comes from the <a href="https://docs.ansible.com/ansible/latest/collections/vmware/vmware_rest/index.html" data-type="link" data-id="https://docs.ansible.com/ansible/latest/collections/vmware/vmware_rest/index.html" target="_blank" rel="noreferrer noopener">VMware Rest</a> collection. </p>



<p></p>



<h2 class="wp-block-heading">Local Playbook</h2>



<p>The first example will be the simplest as all the info is contained within the playbook and we will not be using an inventory file. This is a &#8220;quick and dirty&#8221; approach as utilizing inventory files/var files is far more in line with the repeatable orchestration for which Ansible is known. </p>



<p>Here is my first playbook gatherinfolocal.yml:</p>



<pre class="wp-block-code"><code>---
- name: Gather Datacenter Information from VMware using REST API
  hosts: localhost
  gather_facts: no
  collections:
    - vmware.vmware_rest
  tasks:
    - name: Get Datacenter information
      vmware.vmware_rest.vcenter_datacenter_info:
        vcenter_hostname: "vnoobcenter.rosalita.lan"
        vcenter_username: "administrator@vsphere.local"
        vcenter_password: "MyPassword"
        vcenter_validate_certs: no
      register: datacenter_info

    - name: Display datacenter information
      debug:
        var: datacenter_info</code></pre>



<p>All of the information for the vCenter, including the password, is in the playbook. I probably don&#8217;t need to mention how this is less than ideal and not secure. </p>



<p>Hosts is defined as localhost as we are not utilizing an inventory. The module is &#8220;vmware.vmware_rest.vcenter_datacenter_info&#8221; which utilizes vCenters REST API to pull some datacenter info back. That information is stored in the datacenter_info variable which is then return with debug. </p>



<p>Running this playbook is also straightforward and easy:</p>



<pre class="wp-block-code"><code>ansible-playbook  gatherinfolocal.yml</code></pre>



<p>Which returns</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="286" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?resize=750%2C286&#038;ssl=1" alt="" class="wp-image-2261" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?resize=1024%2C390&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?resize=300%2C114&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?resize=768%2C293&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image.png?w=1383&amp;ssl=1 1383w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<h2 class="wp-block-heading">Prompt for password</h2>



<p>This second playbook we are going to abstract the info a bit by utilizing some variables in the playbook itself. </p>



<pre class="wp-block-code"><code>---
- name: Gather Datacenter Information from VMware using REST API
  hosts: localhost
  gather_facts: no
  collections:
    - vmware.vmware_rest

  vars:
    vcenter_hostname: 'vnoobcenter.rosalita.local'
    vcenter_username: 'administrator@vsphere.local'
  vars_prompt:
    - name: vcenter_password
      prompt: vCenter Password?

  tasks:
    - name: Get Datacenter information
      vmware.vmware_rest.vcenter_datacenter_info:
        vcenter_hostname: "{{ vcenter_hostname }}"
        vcenter_username: "{{ vcenter_username }}"
        vcenter_password: "{{ vcenter_password }}"
        vcenter_validate_certs: no
      register: datacenter_info

    - name: Display datacenter information
      debug:
        var: datacenter_info</code></pre>



<p>This playbook is virtually the same as the one before except now there are variables in use. vCenter_Hostname and vCenter_username are effectively the same except the are just in a slightly different location in the playbook. These variables are then used during the task. </p>



<p>Next is vars_prompt. This will prompt the user to enter the variable when the playbook is run. In this instance it will be asking for the vCenter password. This is more secure than the first playbook as now password is stored in the playbook. </p>



<p>Running this playbook is exactly the same as the first</p>



<pre class="wp-block-code"><code>ansible-playbook  gatherinfo.yml</code></pre>



<p>But now we are prompted for the password before the play executes:</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="346" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?resize=750%2C346&#038;ssl=1" alt="" class="wp-image-2262" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?resize=1024%2C472&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?resize=300%2C138&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?resize=768%2C354&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-1.png?w=1226&amp;ssl=1 1226w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<h2 class="wp-block-heading">Inventory and Ansible Vault</h2>



<p>For the last example an inventory file and a variable file are created. The folder and file structure look something like</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="362" height="430" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-4.png?resize=362%2C430&#038;ssl=1" alt="" class="wp-image-2265" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-4.png?w=362&amp;ssl=1 362w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-4.png?resize=253%2C300&amp;ssl=1 253w" sizes="auto, (max-width: 362px) 100vw, 362px" /></a></figure>



<ul class="wp-block-list">
<li>vmware folder is arbitrary and where I am storing this work</li>



<li>inv.yml and gatherinfo.yml are the inventory file and the playbook file respectively</li>



<li>group_vars is the default location where variables for groups are stored</li>



<li>vcenters.yml is the group we create in the inventory file</li>
</ul>



<p>The inventory file:</p>



<pre class="wp-block-code"><code>vcenters:
  hosts:
    vnoobcenter.rosalita.lan:
      vcenter_username: administrator@vsphere.local</code></pre>



<p>&#8220;vcenters&#8221; is the Ansible host group for our vCenter, this also correlates to the name of the group variable file vcenters.yml in the file structure. The host is vnoobcenter.rosalita.lan and a variable named vcenter_username is also created. </p>



<p></p>



<p>The playbook file:</p>



<pre class="wp-block-code"><code>---
- name: Gather Datacenter Information from VMware using REST API
  hosts: vcenters
  gather_facts: no
  collections:
    - vmware.vmware_rest
  tasks:
    - name: Get Datacenter information
      vmware.vmware_rest.vcenter_datacenter_info:
        vcenter_hostname: "{{ inventory_hostname }}"
        vcenter_username: "{{ vcenter_username }}"
        vcenter_password: "{{ vcenter_passwords&#91;inventory_hostname] }}"
        vcenter_validate_certs: no
      delegate_to: localhost
      register: datacenter_info

    - name: Display datacenter information
      debug:
        var: datacenter_info</code></pre>



<p>This looks much like the earlier versions, with one main change. For vcenter_password, we are referencing a nested variable. Think of vcenter_passwords as the group of variables and inventory_hostname as which specific variable. Since each host will have a different inventory_hostname, this will allow us to define different passwords for each vCenter.</p>



<p>The nested structure comes together when looking at the variable file vcenters.yml:</p>



<pre class="wp-block-code"><code>vcenter_passwords:
  vnoobcenter.rosalita.lan: MyPassword</code></pre>



<p>This file is placed in the group_vars directory and when the playbook is run the variables are automatically loaded for the playbook to use. </p>



<p>Now we don&#8217;t want this variable to just be in plain text, so we need to use the ansible-vault command to encrypt it. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="65" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?resize=750%2C65&#038;ssl=1" alt="" class="wp-image-2266" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?resize=1024%2C89&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?resize=300%2C26&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?resize=768%2C67&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-5.png?w=1128&amp;ssl=1 1128w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Once encrypted, the file looks like this:</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="169" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-6.png?resize=750%2C169&#038;ssl=1" alt="" class="wp-image-2267" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-6.png?w=970&amp;ssl=1 970w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-6.png?resize=300%2C67&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-6.png?resize=768%2C173&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>When we run the playbook we specify the password we used to encrypt the variable file and Ansible will pull the passwords from the file for each of the hosts. </p>



<pre class="wp-block-code"><code>ansible-playbook  gatherinfoadv.yml -i inv.yml --ask-vault-pass</code></pre>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="365" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?resize=750%2C365&#038;ssl=1" alt="" class="wp-image-2268" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?resize=1024%2C499&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?resize=300%2C146&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?resize=768%2C374&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2024/01/image-7.png?w=1299&amp;ssl=1 1299w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Ignore the dependency warnings <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>With this setup the Ansible playbooks and inventory can be expanded to account for as many vCenters as you like with any tasks. </p>



<p></p>



<p></p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2258</post-id>	</item>
		<item>
		<title>Project Keswick at Home</title>
		<link>https://www.vnoob.com/2023/09/project-keswick-at-home/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Wed, 20 Sep 2023 17:23:49 +0000</pubDate>
				<category><![CDATA[project_keswick]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2218</guid>

					<description><![CDATA[I believe it was last year when I first heard about Project Keswick and how VMware wanted to streamline and change how ESXi hosts are deployed at the edge. It sounded cool and exciting, and I made a note to keep an eye out for it. We fast forward to [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<p>I believe it was last year when I first heard about Project Keswick and how VMware wanted to streamline and change how ESXi hosts are deployed at the edge. It sounded cool and exciting, and I made a note to keep an eye out for it. </p>



<p>We fast forward to this year&#8217;s VMware Explore and Project Keswick is announced as a <a rel="noreferrer noopener" href="https://www.vmware.com/content/microsites/en/showcase" data-type="link" data-id="https://www.vmware.com/content/microsites/en/showcase" target="_blank">VMware Showcase</a>. This allows users to try out the product and tinker all they like. With Project Keswick specifically geared towards edge usage, I knew it was a product I had to test in my homelab.</p>



<p>Let&#8217;s get started with a basic Keswick deployment.</p>



<p>Once in the Keswick portal you are greeted with this screen which pretty clearly lists out the steps one needs to take to setup Keswick. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="371" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?resize=750%2C371&#038;ssl=1" alt="" class="wp-image-2219" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?resize=1024%2C506&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?resize=300%2C148&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?resize=768%2C379&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-5.png?w=1484&amp;ssl=1 1484w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>However, there are a few prereqs we need to complete before we can walk through the steps in the portal.</p>



<p></p>



<h2 class="wp-block-heading">GitHub Configuration</h2>



<p>Following this process let&#8217;s start with the Git Repository. Once logged into github, I proceed to my profile page, the repositories tab, and then select New.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image.png?resize=729%2C166&#038;ssl=1" alt="" class="wp-image-2221" style="width:729px;height:166px" width="729" height="166" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image.png?w=726&amp;ssl=1 726w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image.png?resize=300%2C68&amp;ssl=1 300w" sizes="auto, (max-width: 729px) 100vw, 729px" /></a></figure>



<p></p>



<p>Choose a name for the repository, set it to private, and it doesn&#8217;t hurt to initialize it with a readme file. </p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-1.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-1.png?resize=750%2C666&#038;ssl=1" alt="" class="wp-image-2222" style="width:840px;height:746px" width="750" height="666"/></a></figure>



<p>Next, we need to create a yaml file for our host. This can be done with a text editor and using git commands. For this simple file howerer, I am just going to use the github UI. </p>



<p>Inside the repository, Add file-Create new file. Copy the contents from here</p>



<pre class="wp-block-code"><code>apiVersion: esx.vmware.com/v1alpha1
kind: HostConfiguration
metadata:
  name: keswick-host-config
  namespace: esx-system
spec:
  layertype: Incremental
  profile: |
    {
      "esx": {
        "system": {
          "system_time": {
            "enabled": true,
            "protocol": "NTP",
            "ntp_config": {
              "server": &#91;{
                  "hostname": "0.pool.ntp.org",
                  "command": "SERVER"
                },
                {
                  "hostname": "1.pool.ntp.org",
                  "command": "SERVER"
                }
              ]
            }
          }
        }
      }
    }
</code></pre>



<p>This file was found on the <a href="https://docs.vmware.com/en/VMware-Tech-Showcase/services/project-keswick/GUID-EEFB9B79-FAE5-4C50-8EC3-C6B8855649FD.html" data-type="link" data-id="https://docs.vmware.com/en/VMware-Tech-Showcase/services/project-keswick/GUID-EEFB9B79-FAE5-4C50-8EC3-C6B8855649FD.html" target="_blank" rel="noreferrer noopener">Project Keswick documentation site</a>. </p>



<p>Make sure the filename ends in yaml, and commit the changes.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="665" height="749" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-2.png?resize=665%2C749&#038;ssl=1" alt="" class="wp-image-2223" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-2.png?w=665&amp;ssl=1 665w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-2.png?resize=266%2C300&amp;ssl=1 266w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></figure>



<p>Commit the changes to the main branch</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="484" height="580" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-3.png?resize=484%2C580&#038;ssl=1" alt="" class="wp-image-2224" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-3.png?w=484&amp;ssl=1 484w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-3.png?resize=250%2C300&amp;ssl=1 250w" sizes="auto, (max-width: 484px) 100vw, 484px" /></a></figure>



<p></p>



<p>Because this repository is private, we need to provide a way for Project Keswick to access this repository. Go to your picture in the top right of github, and select Settings. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="293" height="592" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-4.png?resize=293%2C592&#038;ssl=1" alt="" class="wp-image-2225" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-4.png?w=293&amp;ssl=1 293w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-4.png?resize=148%2C300&amp;ssl=1 148w" sizes="auto, (max-width: 293px) 100vw, 293px" /></a></figure>



<p>At the very bottom, we want to select Developer Settings.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-5.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="259" height="290" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-5.png?resize=259%2C290&#038;ssl=1" alt="" class="wp-image-2226"/></a></figure>



<p>Creating and providing a Personal Access token will allow Keswick and the host to pull the newly created yaml file. Under Personal Access Token-Fine-grained token- Generate New Token.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-6.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="809" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-6.png?resize=750%2C809&#038;ssl=1" alt="" class="wp-image-2227" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-6.png?w=846&amp;ssl=1 846w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-6.png?resize=278%2C300&amp;ssl=1 278w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-6.png?resize=768%2C828&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>The token name doesn&#8217;t matter, but we do want to make sure this token only has access to the private repository that was just created. By choosing &#8220;Only select repositories&#8221; and selecting the private repository, we can limit the token&#8217;s access. </p>



<p>Furthermore, under permissions we want this token to have Read-only access for the Contents permission.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-7.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="783" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-7.png?resize=750%2C783&#038;ssl=1" alt="" class="wp-image-2228" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-7.png?w=804&amp;ssl=1 804w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-7.png?resize=287%2C300&amp;ssl=1 287w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-7.png?resize=768%2C801&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Once created, github provides the token. You will never see this token again, so make sure to save it somewhere as you need it for the Project Keswick portion of this configuration. </p>



<p></p>



<h2 class="wp-block-heading">Installing ESXi</h2>



<p>I am installing my Project Keswick ESXi host on VMware Workstation which is located on an Ubuntu server I have here at home. </p>



<p>After downloading the &#8220;ova&#8221; file from the Keswick site, I first needed to extract the ova file as it came as a compressed file. After the extraction, open the file through Workstation. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-8.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="655" height="213" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-8.png?resize=655%2C213&#038;ssl=1" alt="" class="wp-image-2229" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-8.png?w=655&amp;ssl=1 655w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-8.png?resize=300%2C98&amp;ssl=1 300w" sizes="auto, (max-width: 655px) 100vw, 655px" /></a></figure>



<p>Name the VM and select the location of the vmdk. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="576" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?resize=750%2C576&#038;ssl=1" alt="" class="wp-image-2230" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?resize=1024%2C787&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?resize=300%2C230&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?resize=768%2C590&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-9.png?w=1087&amp;ssl=1 1087w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>There are some firstboot and configuration files in the extracted files you can pre-configure for the ESXi host. I wasn&#8217;t doing that this time, so I left those fields blank. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="494" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?resize=750%2C494&#038;ssl=1" alt="" class="wp-image-2231" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?resize=1024%2C674&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?resize=300%2C197&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?resize=768%2C505&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-10.png?w=1079&amp;ssl=1 1079w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>On the other hand, I definitely wanted to set the root password and have SSH enabled from the start.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="374" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?resize=750%2C374&#038;ssl=1" alt="" class="wp-image-2232" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?resize=1024%2C510&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?resize=300%2C149&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?resize=768%2C383&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-11.png?w=1048&amp;ssl=1 1048w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Funny thing, despite the multiple times I tried this deployment, my root password was never applied. The root password was always configured as empty or null. Basically, I would enter root as the user, then just hit enter again on the password field without typing anything. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-13.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="488" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-13.png?resize=750%2C488&#038;ssl=1" alt="" class="wp-image-2235" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-13.png?w=823&amp;ssl=1 823w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-13.png?resize=300%2C195&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-13.png?resize=768%2C500&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>You will need to note the Vendor/Model/Serial on your device in order to configure Keswick</p>



<h2 class="wp-block-heading">Project Keswick</h2>



<p>Start by getting logged into the Keswick <a rel="noreferrer noopener" href="https://keswick.showcase.vmware.com/" data-type="link" data-id="https://keswick.showcase.vmware.com/" target="_blank">site</a>. From here it will present you with steps to get Keswick setup.</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="371" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?resize=750%2C371&#038;ssl=1" alt="" class="wp-image-2236" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?resize=1024%2C506&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?resize=300%2C148&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?resize=768%2C379&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-14.png?w=1484&amp;ssl=1 1484w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Let&#8217;s start at the beginning with Git Repository</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-15.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="597" height="293" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-15.png?resize=597%2C293&#038;ssl=1" alt="" class="wp-image-2237" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-15.png?w=597&amp;ssl=1 597w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-15.png?resize=300%2C147&amp;ssl=1 300w" sizes="auto, (max-width: 597px) 100vw, 597px" /></a></figure>



<p>Enter the basic details about the git repository. The access token we created will be used later. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-16.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="629" height="303" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-16.png?resize=629%2C303&#038;ssl=1" alt="" class="wp-image-2238" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-16.png?w=629&amp;ssl=1 629w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-16.png?resize=300%2C145&amp;ssl=1 300w" sizes="auto, (max-width: 629px) 100vw, 629px" /></a></figure>



<p>That&#8217;s it for Git. Now we need to add a host. We use the the Vendor/Model/Serial earlier for the details. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-19.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="628" height="416" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-19.png?resize=628%2C416&#038;ssl=1" alt="" class="wp-image-2241" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-19.png?w=628&amp;ssl=1 628w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-19.png?resize=300%2C199&amp;ssl=1 300w" sizes="auto, (max-width: 628px) 100vw, 628px" /></a></figure>



<p>Any Keswick host will attempt to check in with the Keswick service. Entering these details informs VMware/Keswick this host is yours. </p>



<p>After a minute or two you will see the host check in. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-18.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="283" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-18.png?resize=750%2C283&#038;ssl=1" alt="" class="wp-image-2240" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-18.png?w=845&amp;ssl=1 845w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-18.png?resize=300%2C113&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-18.png?resize=768%2C290&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Choosing &#8220;Activate Host&#8221; will require the github access token we created earlier.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-21.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="390" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-21.png?resize=750%2C390&#038;ssl=1" alt="" class="wp-image-2243" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-21.png?w=926&amp;ssl=1 926w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-21.png?resize=300%2C156&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-21.png?resize=768%2C400&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Once activated the host will be able to check the git repository and configure itself per the specification yaml.</p>



<p></p>



<p>If you are using the standard config I listed earlier, you probably won&#8217;t see much change to your host. To kick the tires a little more, we will add a basic nginx website. </p>



<h2 class="wp-block-heading">MetalLB/Nginx</h2>



<p>Fortunately for all of us, Alan Renouf has built and shared exactly what we need to quickly set up a simple Nginx page. Check out his repo <a rel="noreferrer noopener" href="https://github.com/alanrenouf/KeswickExample/tree/main" data-type="link" data-id="https://github.com/alanrenouf/KeswickExample/tree/main" target="_blank">here</a>. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-22.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="567" height="310" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-22.png?resize=567%2C310&#038;ssl=1" alt="" class="wp-image-2245" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-22.png?w=567&amp;ssl=1 567w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-22.png?resize=300%2C164&amp;ssl=1 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></a></figure>



<p>We need to copy his hello-keswick.yaml file to our own git hub repo. Then we also need to copy and edit the metallb.yaml file to our repo. The metallb.yaml is very long, but we only need to change some IP addresses at the end. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-23.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="344" height="157" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-23.png?resize=344%2C157&#038;ssl=1" alt="" class="wp-image-2246" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-23.png?w=344&amp;ssl=1 344w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/image-23.png?resize=300%2C137&amp;ssl=1 300w" sizes="auto, (max-width: 344px) 100vw, 344px" /></a></figure>



<p>Adjust this IP range to conform to your own subnet, and you should be good to go. </p>



<p>After the change and placing the file in your own repo you should soon have your own test nginx page running on Keswick. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/Screenshot-2023-09-20-120857.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="316" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/Screenshot-2023-09-20-120857.png?resize=750%2C316&#038;ssl=1" alt="" class="wp-image-2247" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/Screenshot-2023-09-20-120857.png?w=773&amp;ssl=1 773w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/Screenshot-2023-09-20-120857.png?resize=300%2C127&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/09/Screenshot-2023-09-20-120857.png?resize=768%2C324&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>This has been fun getting to know Keswick a bit and its capabilities and limitations. I plan to put out a few more posts in the near future. </p>



<p></p>



<p>Enjoy!!</p>



<p></p>



<p></p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2218</post-id>	</item>
		<item>
		<title>Tanzu Homelab: Final Configurations</title>
		<link>https://www.vnoob.com/2023/08/tanzu-homelab-final-configurations/</link>
		
		<dc:creator><![CDATA[vNoob]]></dc:creator>
		<pubDate>Tue, 15 Aug 2023 19:06:13 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[tanzu]]></category>
		<category><![CDATA[kubernetes]]></category>
		<guid isPermaLink="false">https://www.vnoob.com/?p=2133</guid>

					<description><![CDATA[In the last post, we got Tanzu configured, however, before we can get any services deployed there are a few more items we need set up. The first is getting a Namespace setup, followed by permissions and storage. Fortunately, all of these items are pretty quick to configure. From the [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="wprt-container">
<ul class="wp-block-list">
<li><a rel="noreferrer noopener" href="https://www.vnoob.com/2023/08/tanzu-homelab-overview" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-overview" target="_blank">Tanzu Homelab: Overview</a></li>



<li><a href="https://www.vnoob.com/2023/08/tanzu-homelab-storage-policy-and-content-library" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-storage-policy-and-content-library" target="_blank" rel="noreferrer noopener">Tanzu Homelab: Storage Policy and Content Library</a></li>



<li><a href="https://www.vnoob.com/2023/08/tanzu-homelab-network-planning" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-network-planning" target="_blank" rel="noreferrer noopener">Tanzu Homelab: Network Planning</a></li>



<li><a href="https://www.vnoob.com/2023/08/tanzu-homelab-deploy-pfsense" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-deploy-pfsense" target="_blank" rel="noreferrer noopener">Tanzu Homelab: Deploy pfSense</a></li>



<li><a href="https://www.vnoob.com/2023/08/tanzu-homelab-deploy-haproxy" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-deploy-haproxy" target="_blank" rel="noreferrer noopener">Tanzu Homelab: Deploy HAProxy</a></li>



<li><a href="https://www.vnoob.com/2023/08/tanzu-homelab-deploy-tanzu" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-deploy-tanzu" target="_blank" rel="noreferrer noopener">Tanzu Homelab: Deploy Tanzu</a></li>



<li><a rel="noreferrer noopener" href="https://www.vnoob.com/2023/08/tanzu-homelab-final-configuration" data-type="URL" data-id="https://www.vnoob.com/2023/06/tanzu-homelab-final-configuration" target="_blank">Tanzu Homelab: Final Configurations</a></li>
</ul>



<p>In the last post, we got Tanzu configured, however, before we can get any services deployed there are a few more items we need set up. </p>



<p>The first is getting a Namespace setup, followed by permissions and storage. Fortunately, all of these items are pretty quick to configure. </p>



<p>From the Workload Management page, go to Namespaces and click Create Namespace. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-14.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="585" height="625" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-14.png?resize=585%2C625&#038;ssl=1" alt="" class="wp-image-2134" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-14.png?w=585&amp;ssl=1 585w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-14.png?resize=281%2C300&amp;ssl=1 281w" sizes="auto, (max-width: 585px) 100vw, 585px" /></a></figure>



<p>Choose a name for the namespace and select the network. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-15.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="632" height="507" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-15.png?resize=632%2C507&#038;ssl=1" alt="" class="wp-image-2135" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-15.png?w=632&amp;ssl=1 632w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-15.png?resize=300%2C241&amp;ssl=1 300w" sizes="auto, (max-width: 632px) 100vw, 632px" /></a></figure>



<p>Done! That was quick. Now on the namespace page, we need to choose Add Permissions. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="422" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?resize=750%2C422&#038;ssl=1" alt="" class="wp-image-2136" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-16.png?w=1136&amp;ssl=1 1136w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>I used the devops@vsphere.local account I setup earlier. Because this is a homelab, I went ahead and gave it owner permissions. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-17.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="422" height="265" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-17.png?resize=422%2C265&#038;ssl=1" alt="" class="wp-image-2137" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-17.png?w=422&amp;ssl=1 422w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-17.png?resize=300%2C188&amp;ssl=1 300w" sizes="auto, (max-width: 422px) 100vw, 422px" /></a></figure>



<p>Now we need to Add Storage. </p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="422" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?resize=750%2C422&#038;ssl=1" alt="" class="wp-image-2138" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-18.png?w=1136&amp;ssl=1 1136w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Select the policy you previously created. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-19.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="626" height="455" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-19.png?resize=626%2C455&#038;ssl=1" alt="" class="wp-image-2139" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-19.png?w=626&amp;ssl=1 626w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-19.png?resize=300%2C218&amp;ssl=1 300w" sizes="auto, (max-width: 626px) 100vw, 626px" /></a></figure>



<p>The last thing we want to do is add a VM Class and Content Library. These are in the VM Service block/widget. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="207" height="269" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-2.png?resize=207%2C269&#038;ssl=1" alt="" class="wp-image-2191"/></a></figure>



<p>When we add a VM Class we are basically telling Tanzu what size of VMs it is able to deploy. For my lab, I want it to deploy the smallest possible, so best-effort-xsmall for me. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-3.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="410" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-3.png?resize=750%2C410&#038;ssl=1" alt="" class="wp-image-2192" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-3.png?w=804&amp;ssl=1 804w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-3.png?resize=300%2C164&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-3.png?resize=768%2C420&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>After selecting VM Class let&#8217;s choose a content library. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/Screenshot-2023-08-07-053328.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="674" height="271" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/Screenshot-2023-08-07-053328.png?resize=674%2C271&#038;ssl=1" alt="" class="wp-image-2193" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/Screenshot-2023-08-07-053328.png?w=674&amp;ssl=1 674w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/Screenshot-2023-08-07-053328.png?resize=300%2C121&amp;ssl=1 300w" sizes="auto, (max-width: 674px) 100vw, 674px" /></a></figure>



<p>That&#8217;s it. Although we could have done this before now, let&#8217;s make sure we can access the supervisors.</p>



<p>From the Supervisor page you will see a Control Plane node address. This is actually one of the HAProxy VIPs fronting for the control nodes. Anyway, lets hit that IP in a browser. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-20.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="582" height="637" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-20.png?resize=582%2C637&#038;ssl=1" alt="" class="wp-image-2140" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-20.png?w=582&amp;ssl=1 582w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-20.png?resize=274%2C300&amp;ssl=1 274w" sizes="auto, (max-width: 582px) 100vw, 582px" /></a></figure>



<p>Looks good. Download the CLI plug for your OS of choice. </p>



<p>Next, we need to extract the content of the zip into our PATH. To check your path on Windows, simply type path in a command prompt. You should see something like this. </p>



<pre class="wp-block-code"><code>PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\</code></pre>



<p>You can extract the contents to any of those folders, or potentially add a new folder to your PATH. I just extracted it to an existing folder. </p>



<p>Once that is done you should be able to connect to you supervisor cluster. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-21.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="277" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-21.png?resize=750%2C277&#038;ssl=1" alt="" class="wp-image-2141" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-21.png?w=848&amp;ssl=1 848w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-21.png?resize=300%2C111&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/06/image-21.png?resize=768%2C283&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p></p>



<p>Great! Now we are connected to Tanzu so we should be able to easily deploy some resources/workloads</p>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="64" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?resize=750%2C64&#038;ssl=1" alt="" class="wp-image-2189" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?resize=1024%2C87&amp;ssl=1 1024w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?resize=300%2C26&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?resize=768%2C65&amp;ssl=1 768w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image.png?w=1234&amp;ssl=1 1234w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Unfortunately, after getting vSphere with Tanzu deployed, it seems we still cannot deploy pods or any resources. The reason for this is the vSphere with Tanzu deployment is deploying a Tanzu/K8s management cluster. Being a management cluster, it won&#8217;t let us deploy workloads. Yes, a bit annoying.</p>



<p> We have two options, the first option is we now deploy and <a href="https://github.com/vsphere-tmm/vsphere-with-tanzu-quick-start" data-type="link" data-id="https://github.com/vsphere-tmm/vsphere-with-tanzu-quick-start" target="_blank" rel="noreferrer noopener">Tanzu Kubernetes Cluster</a> to our vSphere with Tanzu. This would create a workload Tanzu cluster where we would be able to deploy pods/services.</p>



<p>The second option is to use William Lam&#8217;s <a rel="noreferrer noopener" href="https://williamlam.com/2023/05/vsphere-pods-using-vds-based-supervisor-in-vsphere-with-tanzu.html" data-type="URL" data-id="https://williamlam.com/2023/05/vsphere-pods-using-vds-based-supervisor-in-vsphere-with-tanzu.html" target="_blank">workaround</a> in order to allow to deploy to the existing Tanzu cluster we just deployed. </p>



<p>In the spirit of trying to do things &#8220;by the book&#8221;, I tried to get TKC deployed. For some reason I have not yet figured out, it would never deploy for me. In the midst of this over several weeks I had some storms and power outages. After each outage, I could not get Tanzu back into a healthy place and ended up needing to start over. </p>



<p>At the end of the day and because of my frustration, I landed on using William Lam&#8217;s method to get resources deployed.</p>



<p>After stepping through William Lam&#8217;s post, I was able to get a small nginx deployment stood up. </p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-4.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" width="750" height="131" src="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-4.png?resize=750%2C131&#038;ssl=1" alt="" class="wp-image-2209" srcset="https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-4.png?w=820&amp;ssl=1 820w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-4.png?resize=300%2C52&amp;ssl=1 300w, https://i0.wp.com/www.vnoob.com/wp-content/uploads/2023/08/image-4.png?resize=768%2C134&amp;ssl=1 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /></a></figure>



<p>Woohoo! If you have stuck with me through all these posts, WOW! Thank You! Hopefully, you were also able to get everything working. Now you should be able to deploy services to Tanzu! Have Fun!</p>
</div>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2133</post-id>	</item>
	</channel>
</rss>
