(How to prepare a Linux image for Azure template) To create a Linux image compatible with the Azure VM template and meet necessary security and deployment requirements several steps are involved. This process comprises preparing the base Linux, configuring necessary software and utilities, making the image Azure compatible, and finalizing the virtual machine to be a generalized one. Below is a simple illustration of deploying a Linux image on an Azure template:?
1. Choose a Supported Linux Distribution
Azure supports various Linux distributions, including
Ubuntu
CentOS
Debian
Red Hat Enterprise Linux
better known as RHEL SUSE LINUX Enterprise Server
SLES They are as follows: Begin by choosing a distribution keyed to your application and recognized for usage on Azure. This compatibility makes it easier to integrate with various Azure tools and services as is required for effective working.
2. Install and Configure Linux
Install the Linux distribution either on a physical PC or on a virtual host deserving minimal resource usage. Follow these steps to install and configure the necessary components:
Update System Packages: One of the most important requirements implies the necessity of updating the system consistently to provide high results and reliability. Run the following commands to update packages:

Now, try to connect to Azure Linux Agent known as waagent. Azure Linux Agent facilitates features such as provisioning, networking, and resizing of the VM. Most distributions include the agent, but if it’s not available, install it using:

If you need further changes on it you have to edit the /etc/waagent.conf for it after the installation.
Enable Hyper-V Generation 2 Compatibility (Optional)
In case you intend to run Generation 2 VMs let Synergy improve Hyper-V Generation 2 compatibility (Optional). If using Gen 2 VMs on Azure, ensure compatibility by setting up the following:
- Enable UEFI booting.
- Some distributions can support Secure Boot; it is enabled or installed in these distributions.
Set up SSH Access
Allow initial SSH for administration. Open the SSH configuration file at /etc/ssh/sshd_config and configure the following security settings:

Create SSH keys and incorporate into VM avoiding logins with passwords.
3. Prepare the Image for Azure
Remove Local Identifiers
To avoid network conflicts and duplicate SSH keys, clear out local identifiers by removing:

Disable Swap
On VM images, Azure advises against the use of swap files and, if a swap file is used, it should be disabled. Disable swap by running:

Replace swap entries in the /etc/fstab file to avoid swapping’s re-enabling at the next boot.
Setting Network Interfaces to Auto-Obtain IP Address
Introduced in the previous lectures, DHCP is also used by Azure to assign IPs to VMs.
Check that the configured interfaces are set to obtain their configuration via DHCP by using the /etc/network/interfaces file or any distro-specific file.
4. Generalize the Image
Stop the Linux Agent
Before de-provisioning, stop the Azure Linux Agent service:

deprovision the VM
Deprovisioning removes user accounts and temporary files, making the image reusable. Run:

Confirm by typing “Y” when prompted.
Shut Down the VM
Power off the VM to finalize the generalization:

5. Create and Upload the Image to Azure
Capture the VM Image
Copy the Hyper-V image of the VM using your local tool or environment such as Hyper-V or VMware as an image file. For Linux images, the format should be VHD (fixed) as a default rule of thumb as elaborated below. Make sure it fulfills the Azure provisions like the disk 1 TiB in size at most.
Upload to Azure Storage
Use Azure CLI or PowerShell to upload the image to your Azure Storage account:

Create an Image in Azure
Register the uploaded VHD as a custom image in Azure using the following command:

6. Test the Image
Provision a CVM via the Custom Image
After this, create a new image and deploy a VM from this image to confirm it running okay as planned. Use Azure CLI:

Verify Settings and Performance
SSH is the default remote access means to the Linux VM Guest OS so connect to the VM and make sure that SSH is operational to allow incoming traffic on TCP port 22 Check the network connection for the VM Validate the Azure Linux Agent. This is a good time to check various functions of your Microsoft Teams application or configurations to see if everything is working well.
Conclusion
To build the Linux image for the Azure, then the distribution has to be proper and has to be made Azure enabled. After the image is captured or created, tested, or ‘uploaded’ as the Azure vernacular has it, you’re ready for tacos – sorry, constant VM deployments on the Azure. This image can be kept for recurring use that requires less time while bringing uniformity to the Azure infrastructure.

