<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sankalp's Notes]]></title><description><![CDATA[DevOps Lab &amp; Infra Notes]]></description><link>https://blog.sankalpbais.com</link><image><url>https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/logos/6995a18c50a1f57e3a75a05b/cd4e3fae-a998-4d2f-8ea3-220c6160543a.png</url><title>Sankalp&apos;s Notes</title><link>https://blog.sankalpbais.com</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 04 Jun 2026 00:00:45 GMT</lastBuildDate><atom:link href="https://blog.sankalpbais.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Setting Up an Ansible Control Node Using WSL2]]></title><description><![CDATA[In the previous part of the series, we:

Installed VMware Workstation Pro

Installed Ubuntu and Rocky Linux VMs

Configured internal networking

Setup up static IP addresses

Built a gateway router VM]]></description><link>https://blog.sankalpbais.com/setting-up-an-ansible-control-node-using-wsl2</link><guid isPermaLink="true">https://blog.sankalpbais.com/setting-up-an-ansible-control-node-using-wsl2</guid><category><![CDATA[Linux]]></category><category><![CDATA[wsl2]]></category><category><![CDATA[ansible]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Thu, 26 Mar 2026 15:52:33 GMT</pubDate><content:encoded><![CDATA[<p>In the previous part of the series, we:</p>
<ul>
<li><p>Installed VMware Workstation Pro</p>
</li>
<li><p>Installed Ubuntu and Rocky Linux VMs</p>
</li>
<li><p>Configured internal networking</p>
</li>
<li><p>Setup up static IP addresses</p>
</li>
<li><p>Built a gateway router VM using nftables Now, It's time to level up</p>
</li>
</ul>
<p>Instead of manually SSH-ing into each server, we will use <strong>Ansible</strong>.</p>
<h2>What Is Ansible?</h2>
<p>Ansible is an open-source automation tool for</p>
<ul>
<li><p>Provisioning</p>
</li>
<li><p>Configuration management</p>
</li>
<li><p>Application deployment</p>
</li>
<li><p>Orchestration. It follows an <strong>agentless architecture</strong>, meaning nodes do not need any additional software.</p>
</li>
</ul>
<p>Ansible works over <strong>SSH(Linux)</strong> or <strong>WinRM(Windows)</strong> and uses <strong>human-readable YAML playbooks</strong> to describe desired system state.</p>
<h2>Why Do We Need Ansible?</h2>
<p>So far, we've been managing servers manually using SSH.</p>
<pre><code class="language-shell">ssh aurora@172.29.10.10
</code></pre>
<p>This works for 2-3 machines. But in real environments:</p>
<ul>
<li><p>You might have to manager <strong>10s</strong> or <strong>100s</strong> of servers</p>
</li>
<li><p>You will need <strong>consistency</strong></p>
</li>
<li><p>You will need <strong>repeatability</strong> This is where <strong>Ansible</strong> comes in. With Ansible, You can:</p>
</li>
<li><p>Run commands on multiple servers at once</p>
</li>
<li><p><strong>Enforce</strong> configuration</p>
</li>
<li><p>Automate provisioning and deployments</p>
</li>
</ul>
<p>Consider this scenario:</p>
<p>Imagine you have <strong>50+ VMs</strong>:</p>
<ul>
<li><p>Some running DBs</p>
</li>
<li><p>Some running backend service</p>
</li>
<li><p>Some handling frontend traffic Now a critical patch for OpenSSL or SSH is released.</p>
</li>
</ul>
<p>Are you going to SSH into all 50+ machines manually? No.</p>
<p>With Ansible, you can:</p>
<ul>
<li><p>Run a single command (ad-hoc commands) or playbook</p>
</li>
<li><p>Ensure systems are updated to the required version</p>
</li>
</ul>
<blockquote>
<p>The machine from which Ansible runs is called <strong>Control Node</strong></p>
</blockquote>
<blockquote>
<p>NOTE: This series focuses on building a DevOps Homelab We are using Ansible as an example, so we will not go deep into playbooks and advanced usage here.</p>
</blockquote>
<h2>What is WSL2 and Why Use WSL2 Instead of Another VM or Windows itself?</h2>
<h3>Why Not Windows?</h3>
<p>Ansible is designed for <em>Linux Environments</em> While it can run on Windows via python:</p>
<ul>
<li><p>SSH behavior may be inconsistent</p>
</li>
<li><p>Many modules assume Linux utilities</p>
</li>
<li><p>Debugging becomes painful In short: Its not production aligned.</p>
</li>
</ul>
<h3>Why not another VM?</h3>
<p>This is valid approach. In production, the control node is usually a dedicated Linux Machine. But for a home lab setup:</p>
<ul>
<li><p>It uses additional CPU/RAM</p>
</li>
<li><p>Adds management overhead</p>
</li>
<li><p>Slower Iteration That means: Overkill for a home lab setup</p>
</li>
</ul>
<h3>Why not Docker?</h3>
<p>Docker is great, but Docker containers are meant to be <strong>ephemeral</strong>. And are not good for control node in early stages of learning DevOps.</p>
<ul>
<li><p>SSH key management becomes messy</p>
</li>
<li><p>Container networking adds complexity</p>
</li>
<li><p>Not ideal for persistent configuration Meaning: Unnecessary abstraction headache</p>
</li>
</ul>
<h3>What is WSL2 and Why it's the Best Fit?</h3>
<p>WSL2 or Windows Subsystem for Linux 2 is a compatibility layer for running Linux Distributions directly on Windows 10/11 with a real Linux kernel inside a lightweight VM. WSL2 is best fit for our use case because:</p>
<ul>
<li><p>Native Linux environment</p>
</li>
<li><p>Fast startup</p>
</li>
<li><p>Minimal resource consumption than a VM</p>
</li>
<li><p>Easy Integration with VS Code and most importantly, it can reach our VM via internal network because of the VMware network configuration.</p>
</li>
</ul>
<p>Since we enabled <em>Host-only adapter</em> while creating internal networks:</p>
<ul>
<li><p>Windows host is a part of that internal network</p>
</li>
<li><p>WSL2 shares host network stack That is WSL2 can access the VMs easily</p>
</li>
</ul>
<h2>Architecture Diagram</h2>
<p>Below gives a high level overview of the architecture of the whole Home lab</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/f9a88b0d-057a-4c72-951a-7729edc7ba05.png" alt="" style="display:block;margin:0 auto" />

<blockquote>
<p><strong>Note:</strong> The gateway VM connects both NAT (internet) and internal network, enabling outbound access for all nodes</p>
</blockquote>
<h2>Installing WSL2 + Ubuntu</h2>
<p>If you haven't installed WSL 2 yet, install it by entering the following command in powershell.</p>
<pre><code class="language-shell">wsl --install -d ubuntu
</code></pre>
<p>This will ensure that wsl2 is available and will install Ubuntu. It may ask for UAC and will prompt you to create username and password</p>
<p>To start WSL type:</p>
<pre><code class="language-shell">wsl
</code></pre>
<p>First update the packages using</p>
<pre><code class="language-shell">sudo apt-get update &amp;&amp; sudo apt-get upgrade -y
</code></pre>
<h2>Installing Ansible</h2>
<p>Ansible can be installed using <code>apt</code>.</p>
<p>Inside WSL run</p>
<pre><code class="language-shell">sudo apt-get install ansible -y 
</code></pre>
<p>Verify the installation using</p>
<pre><code class="language-shell">ansible --version
</code></pre>
<h2>Configuring SSH (Password-less Authentication)</h2>
<p>Ansible uses SSH for communication. For this we will enable Password-less authentication with client. For this:</p>
<ul>
<li><p>We need to generate SSH-Keys from WSL (control node)</p>
</li>
<li><p>Transfer generated public key to clients</p>
</li>
</ul>
<p>To generate key, enter below command from WSL:</p>
<pre><code class="language-shell">ssh-keygen -t ed25519 -C 'ansible-control-node'
</code></pre>
<p>Press <code>Enter</code> to accept defaults. Keys will be</p>
<pre><code class="language-shell">~/.ssh
</code></pre>
<p>To transfer keys to target nodes, do the following for all the nodes:</p>
<pre><code class="language-sh">ssh-copy-id &lt;user&gt;@&lt;ip&gt;
</code></pre>
<p>Replace <code>&lt;user&gt;</code> and <code>&lt;ip&gt;</code> with username and IP of your nodes.</p>
<p>Example:</p>
<pre><code class="language-sh">ssh-copy-id aurora@172.29.10.10   # ubuntu VM
ssh-copy-id aurora@172.29.10.20   # rocky VM
</code></pre>
<p>It will ask for the password. To verify try SSH. If no password is asked, that means setup is successful</p>
<h2>Summary so far</h2>
<p>At this point:</p>
<ul>
<li><p>WSL2 can reach VMs</p>
</li>
<li><p>Ansible has been installed in WSL2</p>
</li>
<li><p>Password less authentication has been configured Next we will test ansible.</p>
</li>
</ul>
<h2>Creating an Inventory File</h2>
<p>We will store all files inside a directory in WSL.</p>
<p>Create a directory <code>ansible-tests</code> and cd into it</p>
<pre><code class="language-shell">mkdir ~/ansible-tests &amp;&amp; cd ~/ansible-tests
</code></pre>
<p>Create inventory file <code>inventory.ini</code> with following contents</p>
<pre><code class="language-shell">[ubuntu]
ubuntu1 ansible_host=172.29.10.10 ansible_user=aurora

[rocky]
rocky1 ansible_host=172.29.10.20 ansible_user=aurora

[all:vars]
ansible_python_interpreter=/usr/bin/python3
</code></pre>
<p>Replace <code>aurora</code> with the username inside the VM.</p>
<blockquote>
<p>TIP: Create a dedicated <code>ansible</code> user in real environments</p>
</blockquote>
<h2>Testing Ansible</h2>
<p>The most basic ansible test is checking connectivity to all hosts Use the ansible's ping module to test the connectivity:</p>
<pre><code class="language-shell">ansible all -i inventory.ini -m ping
</code></pre>
<p>the output should be something like :</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/08b5e520-58f4-419e-9ca6-5889233d3f75.png" alt="" style="display:block;margin:0 auto" />

<p>This confirms that the SSH Works and Inventory is correct and ansible control node is functional.</p>
<h2>Whats Next?</h2>
<p>This completes the core DevOps Homelab setup demo. We now have:</p>
<ul>
<li><p>Multiple Linux servers</p>
</li>
<li><p>A segmented network</p>
</li>
<li><p>A gateway router</p>
</li>
<li><p>An Ansible control node</p>
</li>
</ul>
<p>You can now extend your lab with:</p>
<ul>
<li><p>Kubernetes (K8s)</p>
</li>
<li><p>Monitoring (Prometheus + Grafana)</p>
</li>
<li><p>Logging stack (ELK/Loki)</p>
</li>
</ul>
<p>I have personally extended this lab further with additional VMs and Planning to implement Monitoring with it.</p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Creating Your First VM (Ubuntu Server 22.04)</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026">Installing Rocky Linux on VMware</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-set-up-a-host-only-internal-network-in-vmware-workstation">Setting Up Internal Networks</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-configure-static-ip-on-ubuntu-and-rocky-linux">Configuring Static IP on Ubuntu and Rocky</a> ✅</p>
</li>
<li><p><a href="https://blog.sankalpbais.com/linux-gateway-router-vm-ubuntu-nftables">Building a Gateway VM for Multi-VM Lab Architecture</a> ✅</p>
</li>
<li><p>Setting Up an Ansible Control Node Using WSL2 ✅</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Build a Linux Gateway Router VM Using Ubuntu 24.04 and nftables]]></title><description><![CDATA[In previous articles, of this DevOps Home lab Series, we created multiple VMs and configured Static IP addresses so they can communicate reliably within our lab network.However, in real-production env]]></description><link>https://blog.sankalpbais.com/linux-gateway-router-vm-ubuntu-nftables</link><guid isPermaLink="true">https://blog.sankalpbais.com/linux-gateway-router-vm-ubuntu-nftables</guid><category><![CDATA[Devops]]></category><category><![CDATA[networking]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[nftables]]></category><category><![CDATA[iptables]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Mon, 09 Mar 2026 10:43:24 GMT</pubDate><content:encoded><![CDATA[<p>In previous articles, of this <strong>DevOps Home lab Series</strong>, we created multiple VMs and configured <strong>Static IP addresses</strong> so they can communicate reliably within our lab network.<br />However, in real-production environments, services are very rarely exposed directly to the internet.<br />Instead, traffic typically flows through an intermediate system such as a <strong>gateway or router</strong>, which controls how these internal machines will access the external network.<br />In this article, we will build a Linux Gateway Router VM that connects our internal lab network to the outside network.</p>
<h2>Why not iptables?</h2>
<p>Historically, Linux systems used <strong>iptables</strong> to configure firewalls and NAT rules.<br />Many production environments still use iptables today, especially in older infrastructure.</p>
<p>However, modern Linux distributions such as <strong>Ubuntu 22.04 and Ubuntu 24.04</strong> now use <strong>nftables</strong> as the default packet filtering framework.</p>
<p>In fact, many systems that appear to use iptables today are actually using <strong>iptables-nft</strong>, which translates iptables commands into nftables rules internally.</p>
<p>Compared to iptables,nftables offers:</p>
<ul>
<li><p>Cleaner and more consistent syntax</p>
</li>
<li><p>Better performance with large rule sets</p>
</li>
<li><p>Unified IPv4 and IPv6 support</p>
</li>
<li><p>Improved maintainability</p>
</li>
</ul>
<p>For this reason, in this homelab we will use <strong>nftables</strong>, which represents the modern Linux firewall system.</p>
<h2>Network Design</h2>
<p>The Gateway VM will have two network interfaces<br /><strong>Interface 1: External Network</strong></p>
<ul>
<li><p>Connected to <code>NAT (vnet8)</code></p>
</li>
<li><p>Receives IP from <em>DHCP</em> in range <code>172.18.18.0/24</code><br /><strong>Interface 2: Internal Network</strong></p>
</li>
<li><p>Connected to <code>devops network (vnet2)</code></p>
</li>
<li><p>Static IP: <code>172.29.10.254/24</code></p>
</li>
</ul>
<p>All the machine in the internal devops network will use:<br /><code>172.29.10.254</code> as their <strong>default gateway</strong></p>
<h2>Step 1: Create The Gateway VM</h2>
<p>Create a new VM with following configurations</p>
<ul>
<li><p><strong>Name:</strong> ubuntu24gw</p>
</li>
<li><p><strong>CPU:</strong> 1 processors, 2 cores</p>
</li>
<li><p><strong>Memory:</strong> 1 GB (2 GB Recommended)</p>
</li>
<li><p><strong>Disk</strong>: 10 GB (20 GB Recommended)</p>
</li>
<li><p><strong>Network Adapters:</strong> Two network adapters are required.</p>
<ul>
<li><p>Keep default adapter to <code>NAT</code></p>
</li>
<li><p>After creating the VM add a second adapter via <code>VM &gt; Setting &gt; Add... &gt; Network Adapter</code> and select <code>Custom &gt; devops(host-only)</code></p>
</li>
</ul>
</li>
</ul>
<h2>Step 2: Configure Static IP For Internal Interface</h2>
<p>Refer to the <a href="https://blog.sankalpbais.com/how-to-configure-static-ip-on-ubuntu-and-rocky-linux">previous post</a>, and setup static IP <code>172.29.10.254/24</code> on 2nd interface</p>
<blockquote>
<p><strong>TIP:</strong> Instead of creating new YAML as shown in previous article, you may directly modify <code>50-cloud-init.yaml</code></p>
</blockquote>
<ul>
<li><p>Edit <code>/etc/netplan/50-cloud-init.yaml</code> and enter the following content and ensure the interface names match with actual interface names which can be seen using <code>ip a</code></p>
<pre><code class="language-yaml">network:
version: 2
ethernets:
  ens33:
    dhcp4: true

  ens34:
    addresses:
      - 172.29.10.254/24
</code></pre>
</li>
<li><p>Run <code>sudo netplan try</code> and check if you can ping <code>172.29.10.254</code> from host or any other VM. It may take about 20 to 40 seconds for the first successful ping</p>
</li>
<li><p>Once sure apply the settings using <code>sudo netplan apply</code></p>
</li>
</ul>
<h2>Step 3: Enable IP Forwarding</h2>
<p>For any Linux system to work as a router, <em>IP Forwarding</em> must be enabled</p>
<ul>
<li>We can enable it temporarily:</li>
</ul>
<pre><code class="language-sh">sudo sysctl -w net.ipv4.ip_forward=1
</code></pre>
<ul>
<li><p>To make changes permanent, edit <code>/etc/sysctl.conf</code> and edit the following line</p>
<pre><code class="language-sh">net.ipv4.ip_forward=1
</code></pre>
</li>
<li><p>And apply the changes using <code>sudo sysctl -p</code></p>
</li>
</ul>
<h2>Step 4: Install nftables</h2>
<p>Ubuntu server version &gt; 22 are shipped with nftables by default. But if not you can install and enable it by following commands:</p>
<pre><code class="language-sh">sudo apt-get update
sudo apt-get -y install nftables

sudo systemctl enable nftables
sudo systemctl start nftables
</code></pre>
<h2>Step 5: Configure NAT (Masquerading)</h2>
<blockquote>
<p><strong>Masquerading</strong> changes the source IP address of outgoing packets from a private IP to a public IP , so that internal devices can communicate with external networks, like the Internet, while hiding their private IP addresses</p>
</blockquote>
<ul>
<li><p>Edit nftables configuration file</p>
<pre><code class="language-sh">sudo nano /etc/nftables.conf
</code></pre>
</li>
<li><p>Add below contents inside it</p>
<pre><code class="language-text">flush ruleset
</code></pre>
</li>
</ul>
<p>table ip nat {<br />chain postrouting {<br />type nat hook postrouting priority 100;<br />oifname "ens33" masquerade<br />}<br />}</p>
<p>table ip filter {<br />chain forward {<br />type filter hook forward priority 0;<br />policy accept;<br />}<br />}</p>
<pre><code class="language-plaintext">- The above configuration does following things:
	- Removes default configuration
	- Enables *NAT Masquerading*
	- Allows traffic forwarding between interfaces
- Restart nftables to apply the configuration
	```sh
	sudo systemctl restart nftables
	```
- Verify the rules:
```sh
sudo nft list ruleset
</code></pre>
<blockquote>
<p><strong>NOTE:</strong><br />In this lab we allow all forwarded traffic using <code>policy accept</code> for simplicity<br />In real production environments, firewall policies usually default to <code>DROP</code> and only explicitly allowed traffic is permitted</p>
</blockquote>
<h2>Step 6: Updating VMs Network and Verifying</h2>
<p>Finally, ensure that all machines on internal network has their <em>default gateway</em> set to : <code>172.29.10.254</code> and then try to ping <code>www.google.com</code><br />If everything is configured correctly, the ping should succeed. Meaning machines on internal network can access the internet.</p>
<h2>What's Next?</h2>
<p>In the next article, we will set up our <strong>host machine as an Ansible control node using WSL2</strong>.<br />This controller will be responsible for managing and automating the configuration of all servers inside our DevOps homelab.<br />With this final step, we will complete the core architecture of our DevOps homelab environment.</p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Creating Your First VM (Ubuntu Server 22.04)</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026">Installing Rocky Linux on VMware</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-set-up-a-host-only-internal-network-in-vmware-workstation">Setting Up Internal Networks</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-configure-static-ip-on-ubuntu-and-rocky-linux">Configuring Static IP on Ubuntu and Rocky</a> ✅</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture ✅</p>
</li>
<li><p>Setting Up an Ansible Control Node Using WSL2 and Final Lab Architecture Overview</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Configure Static IP on Ubuntu and Rocky Linux]]></title><description><![CDATA[In real production environments, servers do not rely on DHCP.They use static IP addresses so services like SSH, Ansible, Node Exporter, and databases remain consistently reachable.
In this article, we]]></description><link>https://blog.sankalpbais.com/how-to-configure-static-ip-on-ubuntu-and-rocky-linux</link><guid isPermaLink="true">https://blog.sankalpbais.com/how-to-configure-static-ip-on-ubuntu-and-rocky-linux</guid><category><![CDATA[Devops]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[Linux]]></category><category><![CDATA[VMware Workstation]]></category><category><![CDATA[Ubuntu]]></category><category><![CDATA[#rocky-linux]]></category><category><![CDATA[netplan]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Tue, 03 Mar 2026 15:40:33 GMT</pubDate><content:encoded><![CDATA[<p>In real production environments, servers do not rely on DHCP.<br />They use <strong>static IP addresses</strong> so services like SSH, Ansible, Node Exporter, and databases remain consistently reachable.</p>
<p>In this article, we will configure static IP addresses on:</p>
<ul>
<li><p>Ubuntu Server 22.04</p>
</li>
<li><p>Rocky Linux 9</p>
</li>
</ul>
<h2>Network Architecture</h2>
<p>In the last article, we created an internal network in the range <code>172.29.10.0/24</code>.<br />Now, we will configure the VMs with the following IP addresses:</p>
<ul>
<li><p>Ubuntu: <code>172.29.10.10</code></p>
</li>
<li><p>Rocky: <code>172.29.10.20</code><br />Both machines will use <code>172.29.10.254</code> as the gateway IP. We will introduce a dedicated router VM later in the series. For now, we reserve <code>.254</code> as the gateway address</p>
</li>
</ul>
<blockquote>
<p>⚠️<strong>Tip:</strong> Never change the gateway or primary IP remotely without console access.</p>
</blockquote>
<h2>Configure Static IP on Ubuntu Server (Netplan)</h2>
<p>Modern Ubuntu Server (including 22.04 and 24.04) uses <strong>Netplan</strong> for network configuration.</p>
<ol>
<li><p>First, we need to identify the <em>network interface</em>. Run <code>ip a</code> and look for something like <code>ens33</code></p>
</li>
<li><p>The netplan files are located in <code>/etc/netplan</code>.<br />In a fresh Ubuntu Server installation, you will see <code>50-cloud-init.yaml</code>.<br />When you open it, you will see that it configures <code>ens33</code> using DHCP. To prevent cloud-init from overwriting our static configuration, we need to disable its network management.  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/acc0fc22-efc1-421f-822e-899b7f5a0da2.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>We can disable cloud-init by creating a file <code>/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg</code> with <code>network: {config: disabled}</code><br />You can use the below one-liner to do it</p>
<pre><code class="language-shell">echo 'network: {config: disabled}' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
</code></pre>
<p>After the reboot, the cloud-init will be disabled. But don't reboot yet.</p>
</li>
<li><p>Now to configure static IP, we have to create a file inside <code>/etc/netplan</code> similar to the <code>50-cloud-init.yaml</code><br />Open a new YAML file:</p>
<pre><code class="language-shell">sudo nano /etc/netplan/01-static-ip.yaml
</code></pre>
<p>Enter the following content into this file and save it:</p>
<pre><code class="language-yaml">network:
version: 2
renderer: networkd
ethernets:
 ens33:
   dhcp4: no
   addresses:
     - 172.29.10.10/24
   routes:
     - to: default
       via: 172.29.10.254
   nameservers:
     addresses:
       - 172.29.10.254
       - 1.1.1.1
</code></pre>
</li>
<li><p>Now, first we should check the changes. Run <code>sudo netplan try</code>.<br />This step is significant, especially when configuring networking over SSH.<br />This gives 120 seconds to try the new changes.<br />If new configurations are not accepted within the 120-second window, the changes are automatically reverted.  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/52923e88-ed15-491b-867f-ee902f13445d.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>In the previous step, you may have seen a <strong>file permissions too open</strong> warning. Let's fix it. Run the following commands.</p>
<pre><code class="language-shell">sudo chmod 600 /etc/netplan/01-static-ip.yaml
sudo chown root:root /etc/netplan/01-static-ip.yaml
sudo netplan try
</code></pre>
<p>The warning should now be gone  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/216cb7df-8db8-4605-afa3-c5c0f862c233.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>To verify the configuration, let's try to SSH on the new IP using our host machine.  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/912af05b-fd8b-4e4b-aac0-7c4e1a3091a4.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>SSH connection was successful; that means our configuration is working. Now, to save the configuration, just run <code>sudo netplan apply</code>. You can do it from within the SSH.<br />After running <code>ip a</code>, you should see the new IP address <code>172.29.10.10</code>.  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/4174812a-bed9-4382-9afd-e3129c4b02e7.png" alt="" style="display:block;margin:0 auto" />

  
<p>The DHCP-assigned IP may still appear temporarily.</p>
</li>
</ol>
<h2>Configuring Static IP on Rocky Linux</h2>
<p>Rocky Linux uses <strong>NetworkManager</strong>, which can be managed via the <code>nmcli</code> command-line tool. Using <code>nmcli</code> is straightforward and efficient.</p>
<ol>
<li><p>First, let's identify the interface name using <code>sudo nmcli con show</code> and check the current IP with <code>ip a</code>  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/bd587bb6-24d2-4021-8069-aa7cf48b3c9e.png" alt="" style="display:block;margin:0 auto" />

  
<p>As you can see above, the interface name is <code>ens160</code>. Do not confuse <code>NAME</code> with <code>DEVICE</code> in nmcli output. <code>NAME</code> can be <em>Wired Connection x</em> or <em>sankalp</em> too, whereas <code>DEVICE</code> will match what's shown in the output of <code>ip a</code>.</p>
</li>
<li><p>Run the below command to set a static IP for the <em>interface name</em> you obtained above</p>
<pre><code class="language-shell">sudo nmcli con mod '&lt;NAME&gt;' ipv4.method manual ipv4.addresses '172.29.10.20/24' ipv4.gateway '172.29.10.254' ipv4.dns '172.29.10.254,1.1.1.1' connection.autoconnect yes
</code></pre>
</li>
<li><p>Now, run <code>sudo nmcli dev reapply '&lt;DEVICE&gt;'</code>, use the <code>DEVICE</code> name here. This will apply the new changes instantly.</p>
<blockquote>
<p><code>nmcli</code> does not provide an automatic rollback mechanism like <code>netplan try</code></p>
</blockquote>
</li>
<li><p>Check with <code>ip a</code>, and you should see a new IP in your interface.  </p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/78f57e70-2f2b-4658-add6-be6ef4a91e68.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>What's Next?</h2>
<p>Now that our Ubuntu and Rocky Linux VMs have static IPs, the network is stable and predictable.<br />In the next article, we will build a dedicated gateway VM at <code>172.29.10.254</code>, configure IP forwarding, and provide internet access to our internal machines.<br />This will evolve our setup into a structured multi-VM lab architecture, similar to real production environments.</p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Creating Your First VM (Ubuntu Server 22.04)</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026">Installing Rocky Linux on VMware</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-set-up-a-host-only-internal-network-in-vmware-workstation">Setting up Internal Networks</a> ✅</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky ✅</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Set Up a Host-Only Internal Network in VMware Workstation]]></title><description><![CDATA[In the previous articles, we installed Rocky Linux and Ubuntu Server as a VM in VMware Workstation Pro in Windows 11.
Now it's time to connect them properly, similar to how servers are connected in re]]></description><link>https://blog.sankalpbais.com/how-to-set-up-a-host-only-internal-network-in-vmware-workstation</link><guid isPermaLink="true">https://blog.sankalpbais.com/how-to-set-up-a-host-only-internal-network-in-vmware-workstation</guid><category><![CDATA[VMware Workstation]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Linux]]></category><category><![CDATA[virtual-network]]></category><category><![CDATA[virtual machine]]></category><category><![CDATA[linux for devops]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Mon, 02 Mar 2026 19:38:22 GMT</pubDate><content:encoded><![CDATA[<p>In the previous articles, we installed <strong>Rocky Linux</strong> and <strong>Ubuntu Server</strong> as a VM in VMware Workstation Pro in Windows 11.</p>
<p>Now it's time to connect them properly, similar to how servers are connected in real production environment.</p>
<p>In this article, we will create a similar network architecture.</p>
<p>For now</p>
<ul>
<li><p>All machines will be connected internally</p>
</li>
<li><p>They will be able to communicate with each other</p>
</li>
<li><p>They won't have internet access. Later in the series, we will introduce a dedicated router/firewall VM that will control outbound internet access when required.</p>
</li>
</ul>
<h2>Why Internal Network?</h2>
<p>In a real production environment:</p>
<ul>
<li><p>The application servers don't have direct internet access</p>
</li>
<li><p>Database servers are isolated</p>
</li>
<li><p>Internal communications are done via private IP addresses</p>
</li>
<li><p>Only bastion hosts have internet access</p>
</li>
</ul>
<p>In VMware Workstation, this can be achieved using:</p>
<ul>
<li><p>A <strong>host-only network</strong>, or</p>
</li>
<li><p>A custom <strong>VMNet configured as host-only</strong></p>
</li>
</ul>
<h2>Creating Custom Virtual Network</h2>
<p>Let's create our Custom Virtual Network</p>
<ol>
<li><p>Open the Start Menu, search for <code>Virtual Network Editor</code>, and open it</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/093eac4c-8ab0-4c8c-8f9d-bdd0215c78d5.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Once opened, you will see two VMnets already present. If you recall, during VM creation, we selected <strong>NAT</strong> in the network setup step; we chose <code>NAT</code>. That NAT configuration is linked to the NAT adapter shown in this screen. You may notice that none of the settings are editable; click <code>Change Settings</code> button on the bottom right to enable modifications</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/e1ce4290-8bab-4b59-b218-3f351a327bc3.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>You may also see <code>VMnet0</code> of type <code>Bridged</code>. We are not concerned with this as of now. Click <code>Add Network...</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/a991dfa5-07a0-4ce9-bbd1-7e25b2fbb5b0.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Proceed with the default options and click OK</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/8bb160b1-6804-4338-b948-6e35c081e87c.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>A new VMnet will be created with the following default configurations</p>
<ul>
<li><p><strong>NAME</strong>: VMnet2</p>
</li>
<li><p><strong>Type</strong>: Host-only</p>
</li>
<li><p><strong>Subnet Address</strong>: 192.168.x.x</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/a81508ff-8f8d-4376-b12d-96f4709809ad.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Select the newly created <code>VMnet2</code>, and modify the following:</p>
<ul>
<li><p><strong>Subnet IP</strong>: 172.29.10.0</p>
</li>
<li><p><strong>Subnet mask</strong>: 255.255.255.0 Optionally, click <strong>Rename Network...</strong> and set name to <em>devops</em>, this will be useful later</p>
</li>
</ul>
<p>Ensure the following options are selected</p>
<ul>
<li><p>Host-only</p>
</li>
<li><p>Connect a host virtual adapter to this network</p>
</li>
<li><p>Use local DHCP service to distribute IP address to VMs</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0ae355df-4d56-428c-9058-290b8b3f1736.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Next, modify the default NAT adapter:</p>
<ul>
<li><p>Select the adapter with the type <strong>NAT</strong> (typically <code>VMnet8</code>)</p>
</li>
<li><p>Set the <strong>Subnet IP</strong> to <code>172.18.18.0</code> Ensure the <code>NAT</code> option remains selected; otherwise, the internet connectivity will break.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/6d80ce47-4dd7-41bf-88aa-681db31df5f8.png" alt="" style="display:block;margin:0 auto" /></li>
</ul>
</li>
<li><p>Once configured, click⁣ <code>Apply</code> and then <code>OK</code></p>
</li>
</ol>
<h2>Why I Chose Those IP Ranges</h2>
<p>Even in a home lab, proper IP planning prevents future conflicts and builds production-ready habits.</p>
<p>For this lab I chose:</p>
<ul>
<li><p><code>172.29.10.0/24</code> for Internal Network - devops (VMnet2)</p>
</li>
<li><p><code>172.18.18.0/24</code> for Default NAT Network - VMnet8</p>
</li>
</ul>
<p>Most enterprise networks commonly use <code>10.0.0.0/8</code> or subnets of <code>172.16.0.0/16</code>, while home routers typically operate within <code>192.168.0.0/16</code>. Choosing these ranges would increase the risk of conflicts when connected to the office networks via VPN or within the corporate environments.</p>
<p>I also avoided the <code>172.17.0.0/16</code> range because Docker uses it for its default bridge network (<code>docker0</code>). If we install Docker inside any of these VMs in the future, overlapping of subnets might introduce routing problems.</p>
<p>By selecting less commonly used private IP ranges, we are reducing the likelihood of future conflicts.</p>
<h2>Configuring New Network Adapter in Our VMs</h2>
<p>Now, let's configure our VMs to use this network adapter instead of the default NAT adapter.</p>
<ol>
<li><p>Power off the VM (if it's running).</p>
</li>
<li><p>Navigate to <code>VM &gt; Settings</code> or press <strong>Ctrl + D</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0cafd5cf-9bab-434e-a38f-9f189ebd72ba.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Select <code>Network Adapter</code>, Choose <code>Custom</code>, and select <code>devops (Host-only)</code> from the dropdown. Click OK</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/1df9d268-fc21-4cf7-be13-b839844d8919.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Do the same for both the VMs we have created until now and start both the VMs.</p>
</li>
</ol>
<h2>Verifying New Network Configuration and Connectivity</h2>
<ol>
<li><p>Log in to each VM and note their IPs. You should now see that the IPs are now in range <code>172.29.10.x/24</code>.</p>
<p>For example:</p>
<ul>
<li><p>Ubuntu: 172.29.10.130</p>
</li>
<li><p>Rocky: 172.29.10.129</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/979aa927-b0eb-49d6-8ef8-d605e590a61a.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/5f1fce59-fba3-4009-83bf-ffe4f4445c6f.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Try pining <code>www.google.com</code> from either VM, - it will fail. However,</p>
<ul>
<li><p>The VMs should be able to ping each other</p>
</li>
<li><p>The host machine should be able to ping both VMs</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/36b70415-4f81-4d25-8d1b-695ff496129f.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/09df1ebc-98a1-4581-8749-26837257bc31.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/852719d0-9b5d-43b9-b92d-a9c8b691f924.png" alt="" style="display:block;margin:0 auto" /></li>
</ul>
</li>
</ol>
<h2>What's Next??</h2>
<p>In the next article I will show you how to configure a static IP address in both Ubuntu and Rocky Linux.</p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Creating Your First VM (Ubuntu Server 22.04)</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026">Installing Rocky Linux on VMware</a> ✅</p>
</li>
<li><p>Setting up Internal Networks ✅</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Install Rocky Linux 9 on VMware Workstation Pro (Step-by-Step Guide - 2026)]]></title><description><![CDATA[In this guide, we'll install Rocky Linux on VMware Workstation Pro to use it in a DevOps home lab environment.
What is Rocky Linux, and why is it in this series?
Rocky Linux is a community-driven ente]]></description><link>https://blog.sankalpbais.com/install-rocky-linux-9-vmware-workstation-pro-2026</link><guid isPermaLink="true">https://blog.sankalpbais.com/install-rocky-linux-9-vmware-workstation-pro-2026</guid><category><![CDATA[Devops]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[#rocky-linux]]></category><category><![CDATA[RHEL]]></category><category><![CDATA[vmware]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Sun, 01 Mar 2026 09:06:07 GMT</pubDate><content:encoded><![CDATA[<p>In this guide, we'll install <strong>Rocky Linux</strong> on VMware Workstation Pro to use it in a DevOps home lab environment.</p>
<h2>What is Rocky Linux, and why is it in this series?</h2>
<p>Rocky Linux is a community-driven enterprise Linux distribution that works the same as Red Hat Enterprise Linux (RHEL). It's designed for servers and business use, and runs the same software ecosystem as RHEL while being fully open-source. Think of it as a stable, no-cost replacement for CentOS.<br />Ubuntu Server is widely used, especially in cloud environments, startups, DevOps teams, and container-based workloads.<br />However, Rocky Linux is strongly preferred in organizations that require RHEL compatibility. It's often chosen as a CentOS replacement. So, it's a good idea to have hands-on experience with RHEL-based systems.</p>
<h2>What to Expect from This Article</h2>
<ul>
<li><p>Downloading Rocky Linux ISO from its official website</p>
</li>
<li><p>Installing Rocky Linux inside VMware Workstation Pro</p>
</li>
<li><p>Testing connection to the Rocky VM from the host system using SSH</p>
</li>
</ul>
<h2>Before You Begin</h2>
<p>Make sure you have:</p>
<ul>
<li><p>Installed VMware Workstation Pro</p>
</li>
<li><p>At least 20 GB of free storage</p>
</li>
<li><p>At least 2 GB of free RAM</p>
</li>
</ul>
<h2>Downloading Rocky Linux ISO</h2>
<p>For downloading Rocky Linux:</p>
<ol>
<li><p>Head over to the official Rocky Linux <a href="https://rockylinux.org/download">Download Page</a></p>
</li>
<li><p>Select your system architecture.</p>
</li>
<li><p>Select <code>Rocky Linux 9</code> under <code>Default Images</code></p>
</li>
</ol>
<p>Finally, click <code>Minimal ISO</code>. The download should begin in a few seconds. It's about 2.4 GB in size</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/9e87aa2a-ca04-4699-aeab-95b62ca07b89.png" alt="" style="display:block;margin:0 auto" />

<h2>Creating A New VM Inside VMware For Rocky</h2>
<p>The VM creation process is the same as shown in the <a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026#creating-a-new-vm-inside-vmware-for-ubuntu">last article</a>. The things that you have to change are</p>
<ul>
<li><p><em>Installer Disk Image File</em> - Select this Rocky Linux 9 ISO</p>
</li>
<li><p><em>Machine Name</em></p>
</li>
<li><p><em>User Profile</em> - username, password, hostname</p>
</li>
</ul>
<p>Once the VM has been created, boot it up.</p>
<h2>Rocky Linux Installation Procedure</h2>
<blockquote>
<p>Unless mentioned otherwise, you can safely proceed with the default settings throughout the installation.</p>
</blockquote>
<p>Unlike the Ubuntu Server installer, the Rocky Linux 9 installer is GUI-based. Thus, navigation can be done with a mouse.</p>
<ol>
<li><p>After selecting <code>Install Rocky Linux Minimal 9.7</code>, The installer will load</p>
</li>
<li><p>After selecting your language, you will be taken to a page like the one shown below<br />Here we need to configure 3 things:</p>
<ul>
<li><p>Installation Destination</p>
</li>
<li><p>Root Password</p>
</li>
<li><p>User Account<br />Optionally, you can configure your date/time and keyboard layout</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/344c1da1-44bf-4f73-9834-d618d3fece4c.png" alt="" style="display:block;margin:0 auto" /></li>
</ul>
</li>
<li><p>First, we will configure the installation destination, which is disk partitions. Click on <code>Installation Destination</code>. We won't be doing manual partitioning here. Make sure <code>Storage Configuration</code> is set to <code>Automatic</code> and click <code>Done</code> in the top left corner. That's it for the storage part</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/cc2a8031-03e1-4f9a-b10d-3746d34a2b21.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Now click on <code>Root Password</code> and create a password for root. Keep <code>Allow root SSH Login</code> and <code>Lock root account</code> unchecked</p>
</li>
<li><p>Now click on the <code>User Account</code> and enter details for the new user.<br />Check both the checkboxes and then click done</p>
<blockquote>
<p>If you have username in your password too. You will have to click Done Twice</p>
</blockquote>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/505ce058-ffd2-4a39-a52c-8d2ace4a208c.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Great! Now just click <code>Begin Installation</code> and let the installer run. This should take about 3 to 8 minutes, depending on your system.</p>
</li>
<li><p>Once the installation completes, click <code>Reboot System</code></p>
</li>
<li><p>After reboot, in case you don't see any login prompt, just press <code>ENTER</code> once. Log in with your user. You should be logged in</p>
</li>
<li><p>For a quick network check, run <code>ping www.google.com</code> and it should succeed</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/c4291b1d-56cd-4e60-a38f-54f14ad1fe12.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>Accessing From Host Machine</h2>
<p>Here we will access the VM from the host machine via SSH.<br />This will confirm two things:</p>
<ul>
<li><p>SSH inside the VM is working, and</p>
</li>
<li><p>The host can access the VM</p>
</li>
</ul>
<ol>
<li><p>So log in to the VM and get its IP using <code>ip a</code><br />My Rocky has IP as: <code>172.17.18.128</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/e3ba5e0c-c40b-4c02-9c40-923d8cf3ef0b.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Now launch a terminal on your host machine and try SSH to this IP using <code>ssh &lt;username&gt;@&lt;ip&gt;</code> where, <code>&lt;username&gt;</code> is the username you created and <code>&lt;ip&gt;</code> is the IP you obtained above</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/84d72afe-029e-4883-ae87-06861e26b243.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>Quick Recap</h2>
<p>In this article, we:</p>
<ul>
<li><p>Downloaded Rocky Linux ISO</p>
</li>
<li><p>Installed it inside a new VMware Virtual Machine</p>
</li>
<li><p>Connected to the Rocky VM from the host machine using SSH</p>
</li>
</ul>
<p>Next, we will leverage <code>Virtual Network Editor</code> of VMware and will create a new virtual network, which will be used for host-to-host communication only. Connection to the internet will be blocked.</p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Creating Your First VM (Ubuntu Server 22.04)</a> ✅</p>
</li>
<li><p>Installing Rocky Linux on VMware ✅</p>
</li>
<li><p>Setting up Internal Networks</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Install Ubuntu 22.04 Server on VMware Workstation Pro (Step-by-Step Guide – 2026)]]></title><description><![CDATA[In the previous article, we installed VMware Workstation Pro 25H2 on Windows. Now it's time to create our first virtual machine. Since this article is part of the DevOps Home Lab series, we will insta]]></description><link>https://blog.sankalpbais.com/install-ubuntu-22-04-server-vmware-workstation-pro-2026</link><guid isPermaLink="true">https://blog.sankalpbais.com/install-ubuntu-22-04-server-vmware-workstation-pro-2026</guid><category><![CDATA[Homelab]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Ubuntu]]></category><category><![CDATA[Ubuntu 22.04]]></category><category><![CDATA[vmware]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Fri, 27 Feb 2026 16:57:35 GMT</pubDate><content:encoded><![CDATA[<p>In the <a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">previous article</a>, we installed VMware Workstation Pro 25H2 on Windows. Now it's time to create our first virtual machine. Since this article is part of the DevOps Home Lab series, we will install Ubuntu Server instead of Ubuntu Desktop.</p>
<h2>What to Expect from This Article</h2>
<ul>
<li><p>Downloading Ubuntu Server 22.04 ISO from the official website</p>
</li>
<li><p>Installing Ubuntu Server 22.04 inside VMware Workstation Pro</p>
</li>
<li><p>Installing Apache2 and accessing its hosted webpage from the host machine</p>
</li>
</ul>
<h2>Before You Begin</h2>
<p>Make sure you have:</p>
<ul>
<li><p>Installed VMware Workstation Pro</p>
</li>
<li><p>At least 20 GB of free storage</p>
</li>
<li><p>At least 2 GB of free RAM</p>
</li>
</ul>
<blockquote>
<p>Unless mentioned otherwise, you can safely proceed with the default settings throughout the installation.</p>
</blockquote>
<h2>Downloading Ubuntu Server ISO</h2>
<p>Before installing Ubuntu Server, we need to download its ISO. Downloading it is straightforward.</p>
<ol>
<li><p>Head over to the official Ubuntu <a href="https://ubuntu.com/download">Download Page</a></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/bfc81a6a-a51b-4e4b-bab6-58e445ffc398.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Click on <code>Get Ubuntu Server</code>. You should see the latest available LTS Ubuntu Server, which is <strong>24.04.4 LTS</strong>. But we are going with <strong>22.04 LTS</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/ea7e9f6f-f820-4836-9274-e68e4416b1e8.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Scroll down until you see⁣. <code>ALTERNATIVE DOWNLOADS</code>. Click <code>Download 22.04.x LTS</code> or <a href="https://releases.ubuntu.com/22.04.5/ubuntu-22.04.5-live-server-amd64.iso">click here</a> for the direct download</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/07830725-bbb6-4469-838c-31cb86b847cd.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>The ISO download should begin automatically and may take a few minutes depending on your internet speed.</p>
</li>
</ol>
<h2>Creating a New VM Inside VMware For Ubuntu</h2>
<ol>
<li><p>Open VMware Workstation Pro and navigate to <code>File &gt; New Virtual Machine</code> or click <code>Ctrl + N</code>. This will launch <code>New Virtual Machine Wizard</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/a0391cfe-fc16-4500-91be-ed6c15081943.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Here choose <code>Custom (advanced)</code> and click <code>Next &gt;</code> This will allow us to configure most of the hardware</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/72230019-e163-441e-8b1f-dfd76c70d222.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Now it will ask to choose VM Hardware Compatibility. Leave it to <code>Workstation 25H2</code></p>
</li>
<li><p>Choose <code>Installer disc image file (iso)</code>, click <code>Browse...</code> and choose the ISO file we downloaded, and click <code>Next &gt;</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/c1b4c64a-3922-4184-aa9f-00af25e27393.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Name the virtual machine. I have named it <em>ubuntu2204</em> and optionally choose where to store all of its files. You may leave it at the default location</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/ba5e749f-b9e2-4c10-bbee-d099f3017dd2.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Set <code>Number of processors</code> to <code>1</code> and <code>Number of cores per processor</code> to <code>2</code>. I have 8-core processor in my system, so I am allocating two cores from it. You may keep it to 1 too, but I found 2 to be optimal for me</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/722fdc73-5604-4734-8796-a965ed5f104f.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Make sure to allocate at least <code>2GB</code> memory in this step. In my tests, when I allocated it memory less than 2GB, the installer always got stuck at some place. Later, when the installation is completed, you may drop it to as low as <code>512MB</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/1fc58133-5200-4e66-b2ff-4d9400cafbdd.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Keep <code>Network Type</code> as <code>NAT</code>. (We are using NAT for now so the VM can access the internet for updates. In upcoming articles, we’ll introduce host-only networking and a router VM for internal segmentation)</p>
</li>
<li><p>Select <code>LSI Logic</code> in <code>Select I/O Controller Types</code> window</p>
</li>
<li><p>Select <code>SCSI</code> as Disk Type</p>
</li>
<li><p>Choose <code>Create a new virtual disk</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/b771aa79-90cc-403f-a7fd-608ab105e3b4.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Allocate at least <code>20GB</code> and leave all options to default. However, if you have an HDD, I would recommend checking <code>Allocate all disk space now</code> and choose <code>Store virtual disk as a single file</code>. This literally improves performance significantly on HDD</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/612740f9-ec60-46da-ac3f-8be03d7e8fc2.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Leave the next window to default value</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/ceef3d86-1b1f-4ab5-bacb-cee19e07532c.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Finally click <code>Finish</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0c2ff65f-4d24-4d56-abcc-599c8e0af2fd.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Yay! Our first VM instance has been created. Next, we will power it on and see how to install Ubuntu</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/11c40348-9ea6-4f05-a66c-20ea20e11f17.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>Ubuntu Server 22.04 Installation Procedure</h2>
<p>Power on the virtual machine. Click either of the green play buttons to start the VM</p>
<ol>
<li><p>After selecting <code>Try or Install Ubuntu Server</code>, the installer will load</p>
</li>
<li><p>Go through the initial setup screens:</p>
<ul>
<li><p>Most of the settings not mentioned should be left as default</p>
</li>
<li><p>Select your preferred language</p>
</li>
<li><p>If asked to update the installer, <code>Continue without updating</code></p>
</li>
<li><p>Select keyboard layout</p>
</li>
<li><p>Leave proxy empty</p>
</li>
</ul>
</li>
<li><p>Once you get through the initial setup screens, you will be presented with <code>Guided storage configuration</code> ⁣Proceed with the default options on this page, which is <code>Use an entire disk</code> and <code>Setup this disk as an LVM group</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/e6d4fde0-c10f-4a22-b322-91bf820d6265.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>If you remember, we provisioned 20 GB of disk space, out of which 1.7 GB is being used for /boot and only 10 GB is being used for the root (/) partition. So we will increase its size</p>
<ol>
<li><p>Highlight the <code>/</code> partition &gt; press <code>ENTER</code> &gt; select <code>unmount</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/c6eb4ff7-8e33-4002-856b-4e6e22e02ab4.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>You will see <code>ubuntu-lv</code> as unmounted with a current size of <code>10GB</code> and free space as <code>8.222GB</code>. So highlight the <code>ubuntu-lv</code> partition &gt; choose <code>edit</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0a3178dd-0c41-4e0c-9b50-78fe36e940d3.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>You should see the max size that we can configure as <code>18.222G</code> so enter that value in <code>Size</code> field, choose <code>Save</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/0e98f384-9141-4c5f-a4a4-eac803135f2f.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>And then choose 'Continue'</p>
</li>
</ol>
</li>
<li><p>Now configure your profile. Enter your name, a name for this Ubuntu server, a username, and a password</p>
</li>
<li><p>Skip Ubuntu Pro when asked</p>
</li>
<li><p>Make sure <code>Install OpenSSH Server</code> is selected</p>
</li>
<li><p>Skip additional software recommendation</p>
</li>
<li><p>The installation will start now</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/97afe63b-09d2-4e57-9f02-afac98109e2d.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Once the installation finishes, choose <code>Reboot Now</code>.</p>
<blockquote>
<p>If you see error stating <code>Failed unmount /cdrom</code>, don't worry, just press <code>Enter</code> a few times and it will reboot</p>
</blockquote>
</li>
<li><p>After reboot, you should see an option to log in; enter the username and password you set earlier</p>
</li>
<li><p>Congratulations, you have successfully installed Ubuntu Server inside a Virtual Machine</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/5ba1df08-5854-4b40-aab4-b8871455e7a1.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>Installing Apache2 and Accessing the Webpage From the Host Machine</h2>
<p>Installing Apache here is simply to verify that:</p>
<ul>
<li><p>The VM networking is working correctly</p>
</li>
<li><p>Services inside the VM are reachable from the host</p>
</li>
</ul>
<ol>
<li>Run the below command to update package mirrors and install apache2. The Apache2 service is automatically started after its installation</li>
</ol>
<pre><code class="language-shell">sudo apt-get update &amp;&amp; sudo apt-get install -y apache2
</code></pre>
<ol>
<li><p>Now, to access it from the host machine, we need to know the IP of this Ubuntu VM. So, run <code>ip a</code> in the terminal and check the value of <code>inet</code> within <code>ensXX</code> where <code>XX</code> will be some number. In my case the IP is <code>172.17.18.135</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/fb2637c1-8962-4671-b9f1-464bd5d54714.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Now open a browser on your host machine and enter <code>http://&lt;ip&gt;</code> where <code>&lt;ip&gt;</code> is what you obtained above. You should see a default Apache2 page in your browser. Now, you may change this page if you like; the instructions are already available on this page.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6995a18c50a1f57e3a75a05b/2a9eb15e-6bdd-4ff9-a220-2dce786949c6.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<h2>What Did We Do?</h2>
<p>Just now we:</p>
<ol>
<li><p>Created a new virtual machine within VMware Workstation Pro</p>
</li>
<li><p>Installed Ubuntu Server 22.04 LTS inside this VM</p>
</li>
<li><p>Installed Apache2 within this VM and accessed it from our host machine</p>
</li>
</ol>
<h2>What's Next?</h2>
<p>In the next article, we will download and install Rocky Linux inside another VM.<br />Link to Next Article: <a href="https://bash-sanka1p.hashnode.dev/install-rocky-linux-9-vmware-workstation-pro-2026">Install Rocky Linux 9 on VMware Workstation Pro (2026 Guide)</a></p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p>Creating Your First VM (Ubuntu Server 22.04) ✅</p>
</li>
<li><p>Installing Rocky Linux on VMware</p>
</li>
<li><p>Setting up Internal Networks</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Install VMware Workstation Pro 25H2 on Windows (Step-by-Step Guide – 2026)]]></title><description><![CDATA[In the previous article, we downloaded VMware Workstation Pro 25H2 from the official portal. If you haven’t done that yet, you can read it here: How to Download VMware Workstation Pro on Windows
Now i]]></description><link>https://blog.sankalpbais.com/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026</link><guid isPermaLink="true">https://blog.sankalpbais.com/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026</guid><category><![CDATA[vmware]]></category><category><![CDATA[VMware Workstation Pro]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Windows]]></category><category><![CDATA[windows 11]]></category><category><![CDATA[hypervisor]]></category><category><![CDATA[beginner]]></category><category><![CDATA[Homelab]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Sun, 22 Feb 2026 13:06:06 GMT</pubDate><content:encoded><![CDATA[<p>In the previous article, we downloaded VMware Workstation Pro 25H2 from the official portal. If you haven’t done that yet, you can read it here: <a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">How to Download VMware Workstation Pro on Windows</a></p>
<p>Now it's time to install it properly before we start creating a virtual machine.<br />In this guide, I'll walk you through the installation process on Windows.</p>
<h2>Before You Begin</h2>
<p>Make sure you have:</p>
<ul>
<li><p>The installer file (downloaded in previous article)</p>
</li>
<li><p>64-bit Windows 10 or Windows 11</p>
</li>
<li><p>Virtualization is enabled in BIOS (Intel VT-x / AMD-V)</p>
</li>
<li><p>At least 8 GB of RAM (16 GB Recommended for lab setups)</p>
</li>
</ul>
<h2>Installation Step</h2>
<p>Installing VMware Workstation Pro is straightforward — just like installing any other Windows application.</p>
<ol>
<li><p>Double-click the installer to launch the installation window</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/8242d68e-90e0-4b1d-926b-4deafcf5b6b0.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Accept the terms and conditions</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/9ebf2fde-6ee4-4f3c-a0f9-353c417e9d36.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Click <code>Install</code></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/4a556713-72d9-40b1-a1ac-d9ea408ec2eb.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>In next step, VMware will detect whether <strong>Hyper-V</strong> is enabled on your systems</p>
<ul>
<li><p>If Hyper-V is enabled, VMware will use it.</p>
</li>
<li><p>Otherwise, VMware will use its own hypervisor (as shown below)</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/7575dc3c-0f7f-42f3-9dba-df640690d003.png" alt="" style="display:block;margin:0 auto" />

<p>Click <code>Next</code></p>
</li>
</ul>
</li>
<li><p>Installation will begin. It may take about a minute for to complete</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/dbae4f6c-3467-4d51-864d-3fc05753c291.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Once the installation is completed you will see VMware Workstation Pro icon on your Desktop and in the Start Menu.</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/66e26919-60ae-4c3d-9c73-7bd24a2d7460.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Double-click desktop icon to launch VMware</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/ceffc951-0e04-4dbf-ad4f-9309fe1e925b.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<p>And that’s it - VMware Workstation Pro 25H2 is now successfully installed on your Windows system.<br />Now its time to set up our first Virtual Machine.<br />In the next article, we'll download and install Ubuntu 22.04 Server as our first VM</p>
<p>👉🏻 Next Article: <a href="https://bash-sanka1p.hashnode.dev/install-ubuntu-22-04-server-vmware-workstation-pro-2026">Install Ubuntu Server 22.04 On VMware Workstation Pro 2026</a></p>
<h2>Series Roadmap</h2>
<ol>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026">Download VMware Workstation Pro</a> ✅</p>
</li>
<li><p>Installation Guide ✅</p>
</li>
<li><p>Creating Your First VM (Ubuntu Server 22.04)</p>
</li>
<li><p>Installing Rocky Linux on VMware</p>
</li>
<li><p>Setting up Internal Networks</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[How to Download VMware Workstation Pro on Windows (Step-by-Step Guide – 2026)]]></title><description><![CDATA[Why this guide?
If you're trying to download VMware Workstation Pro for the first time, the process can feel a bit confusing. I initially found it confusing too, so I decided to document the exact ste]]></description><link>https://blog.sankalpbais.com/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026</link><guid isPermaLink="true">https://blog.sankalpbais.com/how-to-download-vmware-workstation-pro-on-windows-step-by-step-guide-2026</guid><category><![CDATA[Devops]]></category><category><![CDATA[vmware]]></category><category><![CDATA[virtualization]]></category><category><![CDATA[virtual machine]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[Windows]]></category><category><![CDATA[beginner]]></category><dc:creator><![CDATA[Sankalp Singh Bais]]></dc:creator><pubDate>Thu, 19 Feb 2026 14:14:57 GMT</pubDate><content:encoded><![CDATA[<h2>Why this guide?</h2>
<p>If you're trying to download VMware Workstation Pro for the first time, the process can feel a bit confusing. I initially found it confusing too, so I decided to document the exact steps. This is also the first article of my <em>DevOps Home Lab Setup with VMware Workstation Pro</em> series</p>
<h2>What is VMware Workstation?</h2>
<p>VMware Workstation Pro is a desktop virtualization application that lets you run multiple virtual machines (VMs) on a single physical PC. In other words, you can run different Operating Systems (like Ubuntu or Windows 10) on top of your current OS (for example, Windows 11). Each VM has its own:</p>
<ul>
<li><p>Virtual CPU</p>
</li>
<li><p>Virtual Memory</p>
</li>
<li><p>Virtual Storage</p>
</li>
<li><p>Virtual Network Adapters</p>
</li>
</ul>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/248fc4b3-bd0e-453a-b47e-1d777e83efbe.png" alt="" style="display:block;margin:0 auto" />

<blockquote>
<p>Image source: <a href="https://www.researchgate.net/figure/OS-Layer-Virtualization-18_fig2_350400540">2: OS Layer Virtualization [18] | Download Scientific Diagram</a></p>
</blockquote>
<p>Think of it like having multiple computers inside one machine. You can test, break, experiment, and learn inside this VM, and you don't have to worry about affecting your real system. No dual boot. No extra hardware. No reboot required.</p>
<p>Since late 2024, VMware Workstation Pro is license-free for personal use. You can read about it <a href="https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/">here</a></p>
<h2>Why I chose VMware Workstation instead of VirtualBox?</h2>
<p>I actually like the UI of VirtualBox more. However, my decision was mainly performance-based.</p>
<p>Earlier, my system had only an HDD (even the boot drive). On the same hardware, VMware Workstation performed better for me compared to VirtualBox. Now my OS runs on SSD, but I still store my VM files on HDD, and I'm satisfied with the performance I get from VMware.</p>
<p>Another feature I really like is Virtual Network Editor. It allows me to create multiple isolated virtual networks. I can create multiple VMs, attach multiple network adapters, and practice routing between networks.</p>
<p>If you're using VirtualBox or any other Type-2 hypervisor, I'd suggest trying VMware Workstation, especially since it's license-free now.</p>
<h2>Download steps</h2>
<ol>
<li><p>Go to <a href="https://www.vmware.com/">https://www.vmware.com</a></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/cb3f142b-6534-49ef-aae5-81b28df847cb.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Click on <code>Products</code> then scroll and click on <code>See Desktop Hypervisors</code></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/a3b14b65-a230-406d-8406-e7c9f9d087a6.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Click on <code>Download Now</code> and it should redirect you to the Broadcom login</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/f810b267-4b55-4dd9-98d4-6bd8abea5511.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Since we don't have an account, we need to register first</p>
<ul>
<li><p>Click <code>LOGIN</code> on the top right</p>
</li>
<li><p>Click on the greyed out <code>REGISTER</code> button</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/dc6fd024-a336-470d-90ba-ec7ca098a711.png" alt="" style="display:block;margin:0 auto" /></li>
</ul>
</li>
<li><p>Enter your email ID and answer the captcha</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/30675047-4577-471f-b2c5-b364ee7432c0.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Enter the 6-digit OTP you received in your mail and click <code>Verify &amp; Continue</code></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/d46c71f8-1b17-46c1-afc5-d9df8ad7edfe.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Fill in the required details on the final page to complete the registration process</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/d1eddba5-13c5-4719-999c-ef72240b95e1.png" alt="" style="display:block;margin:0 auto" />

<img src="broadcom_registration.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Click on <code>LOGIN</code> on the top right, and log in with your newly created account</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/fd955042-173b-4b98-8217-186ba868b01c.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>After successful login, you will be taken to your dashboard. You may choose to close the navigation tutorial</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/6484b51f-d308-4f66-aae4-61052e1c00e3.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Next</p>
<ul>
<li><p>Click <code>My Downloads</code> on the left side</p>
</li>
<li><p>Click <code>HERE</code> in front of <code>"Free Software Downloads Available HERE"</code></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/1dca05bb-6cea-46c7-b0c8-3f50fb87f3f5.png" alt="" style="display:block;margin:0 auto" /></li>
</ul>
</li>
<li><p>Search for VMware Workstation and click <code>VMware Workstation Pro</code></p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/d9e67dc9-e305-4ccf-8395-4a0ac0cd3fb5.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>Expand <code>VMware Workstation Pro 25H2 for Windows</code> and click <code>25H2</code> under releases</p>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/37620365-d6e9-45ef-ac2f-ed260aca0781.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>To accept the terms and conditions:</p>
<ul>
<li><p>Click on <strong>Terms and Conditions</strong> (blue text)</p>
</li>
<li><p>It will open in a new tab</p>
</li>
<li><p>Close that tab</p>
</li>
<li><p>The check box will now become active</p>
</li>
<li><p>Tick it and click the download icon next to the MD5 checksum</p>
</li>
<li><p>On hover, it will show "Screening Required"</p>
</li>
</ul>
</li>
</ol>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/21f117f4-9d10-4fb6-8f3b-ad6536f26bb8.png" alt="" style="display:block;margin:0 auto" />

<ol>
<li>Click <code>Yes</code></li>
</ol>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/d5aa7594-fcee-450f-bad5-e3244268dbdc.png" alt="" style="display:block;margin:0 auto" />

<ol>
<li>Fill in your address and submit</li>
</ol>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/c683f6a7-d5a1-4d96-8211-3be2c9bd3e04.png" alt="" style="display:block;margin:0 auto" />

<ol>
<li>Click the download button again. This time, on hovering, it will say HTTPS Download</li>
</ol>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/6af20c32-5aa6-4d5e-a9fd-5bce977f3376.png" alt="" style="display:block;margin:0 auto" />

<ol>
<li>This should start the download</li>
</ol>
<img src="https://cloudmate-test.s3.us-east-1.amazonaws.com/uploads/covers/6995a18c50a1f57e3a75a05b/64586082-423c-4ac1-a552-114506846475.png" alt="" style="display:block;margin:0 auto" />

<p>If this helped you, follow the series — next, we’ll install VMware on Windows 11</p>
<p>Click here for the next part : <a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">How To Install VMware Workstation Pro 25H2 On Windows</a></p>
<h2>Series Roadmap</h2>
<ol>
<li><p>Download VMware Workstation Pro ✅</p>
</li>
<li><p><a href="https://bash-sanka1p.hashnode.dev/how-to-install-vmware-workstation-pro-25h2-on-windows-step-by-step-guide-2026">Installation Guide</a> ✅</p>
</li>
<li><p>Creating Your First VM (Ubuntu Server 22.04)</p>
</li>
<li><p>Installing Rocky Linux on VMware</p>
</li>
<li><p>Setting up Internal Networks</p>
</li>
<li><p>Configuring Static IP on Ubuntu and Rocky</p>
</li>
<li><p>Building a Gateway VM for Multi-VM Lab Architecture</p>
</li>
<li><p>Multi-VM DevOps Lab Architecture</p>
</li>
</ol>
]]></content:encoded></item></channel></rss>