Provisioning Linux Virtual Machine With Sample Post Configuration






Provisioning Linux Virtual Machine With Sample Post Configuration


In Last Post We Provisioned Windows Server , Today we are going to create Linux Virtual machine using existing Resource Group, Virtual Network , Network Security Group, Public IP and NIC Card

Here is the Code:



# First Step is to login using Login-AzureRmAccount
Login-AzureRmAccount

# Variables declaration Area Now lets See the Resource Group Present
$Rg="Osgroup"
$Vnet="OsgroupVnet"
$VmName="osgroup"
$Location="South Central US"
$Cred=Get-Credential
$Nsg="sylesh-nsg"
$Nic="osgroupNIC"
$Pip="PIPOSGRP"
$LinuxPublisher="Canonical"
$LinuxOffer="UbuntuServer"
$Skus="16.04-LTS"
$VmSize="Standard_D1_v2"
# Getting the Vnet/Nsg and Nic Information existing in my account
$VirtualNetwork=Get-AzureRmVirtualNetwork -ResourceGroupName $Rg -Name $Vnet
$VirtualNetwork
$NetworkSecurityGroup=Get-AzureRmNetworkSecurityGroup -ResourceGroupName $Rg -Name $Nsg
$NetworkSecurityGroup
$NetwokInterfaceCard=Get-AzureRmNetworkInterface -ResourceGroupName $Rg -Name $Nic
$NetwokInterfaceCard
$PublicIp=Get-AzureRmPublicIpAddress -ResourceGroupName $Rg -Name $Pip
$PublicIp
Get-AzureRmVMSize -Location $Location
# First Lets See the Publisher Name
Get-AzureRmVMImagePublisher -Location $Location | select PublisherName
#Lets See the Offer for that publisher at that location
Get-AzureRMVMImageOffer -Location $Location -PublisherName $LinuxPublisher
#Now Lets Check $SKU for that offer
Get-AzureRmVMImageSku -PublisherName $LinuxPublisher -Location $Location -Offer $LinuxOffer
#Now lets Configure VMConfig using
$VmConfig=New-AzureRmVMConfig -VMName $VmName -VMSize $VmSize |`
Set-AzureRmVMOperatingSystem -Linux -ComputerName $VmName -Credential $Cred | `
Set-AzureRmVMSourceImage -PublisherName $LinuxPublisher -Offer $LinuxOffer -Skus $Skus -Version latest | `
Add-AzureRmVMNetworkInterface -Id $NetwokInterfaceCard.id
# Creating New Virtual Machine
New-AzureRmVM -ResourceGroupName $Rg -Location $Location -VM $VmConfig
# ExtensionScript
$PublicSettings = '{"commandToExecute":"useradd ramu"}'
# Executing Extension Script
Set-AzureRmVMExtension -Name "USERADD" -Publisher "Microsoft.Azure.Extensions" -ExtensionType "CustomScript" -TypeHandlerVersion 2.0 `
-VMName $VmName -SettingString $PublicSettings -Location $Location -ResourceGroupName $Rg
# Getting Public Ip address to Connect to the VM $PublicIp=Get-AzureRmPublicIpAddress -ResourceGroupName $Rg -Name $Pip
#Getting VM status
Get-AzureRmVM -Status
# Getting Detailed Information
Get-AzureRmVM -Name osgroup -ResourceGroupName Osgroup -DisplayHint Expand -Status
# Stopping Virtual Machine
Stop-AzureRmVM -Name $VmName -ResourceGroupName $Rg -Confirm -Force




Description:
 We login to Azure portal using Login-AzureRmAccount,we are prompted for the credentials
 We Define Variables We also Set $Cred to Store the Credentials for VM


 Now Getting the Existing VNETS/NSG/NIC/PUBLICIP


$VirtualNetwork=Get-AzureRmVirtualNetwork -ResourceGroupName $Rg -Name $Vnet
$VirtualNetwork
$NetworkSecurityGroup=Get-AzureRmNetworkSecurityGroup -ResourceGroupName $Rg -Name $Nsg
$NetworkSecurityGroup
$NetwokInterfaceCard=Get-AzureRmNetworkInterface -ResourceGroupName $Rg -Name $Nic
$NetwokInterfaceCard
$PublicIp=Get-AzureRmPublicIpAddress -ResourceGroupName $Rg -Name $Pip
$PublicIp



NSG:


NIC:

Public IP

We Setup the Variables Depending upon the Output we get 


Get-AzureRmVMSize -Location $Location




Get-AzureRmVMImagePublisher -Location $Location | select PublisherName




Get-AzureRMVMImageOffer -Location $Location -PublisherName $LinuxPublisher





Get-AzureRmVMImageSku -PublisherName $LinuxPublisher -Location $Location -Offer $LinuxOffer


And then Finally We See the Status of VM



Get-AzureRmVM -Status


Connect to VM and Check if User has been created mentioned in Vm Extension


   THANK YOU !!! PLEASE DROP FEEDBACK/QUESTION I WILL BE MORE THAN HAPPY LOOK INTO QUESTION AND TRY MY BEST TO GET THE SOLUTION




Popular posts from this blog

What Happens Under the Hood of SSH Connections? Analyzing SSH Packets with Wireshark.

Certification for Kubernetes? I got it covered.

Continuous Integrations Concepts and Demo