Manage Virtual Machines
Manage Virtual Machines
Lab scenario
You were tasked with identifying different options for deploying and configuring Azure
virtual machines. First, you need to determine different compute and storage resiliency
and scalability options you can implement when using Azure virtual machines. Next, you
need to investigate compute and storage resiliency and scalability options that are
available when using Azure virtual machine scale sets. You also want to explore the
ability to automatically configure virtual machines and virtual machine scale sets by
using the Azure Virtual Machine Custom Script extension.
Objectives
In this lab, you will:
Task 1: Deploy zone-resilient Azure virtual machines by using the Azure portal
and an Azure Resource Manager template
Task 2: Configure Azure virtual machines by using virtual machine extensions
Task 3: Scale compute and storage for Azure virtual machines
Task 4: Register the Microsoft.Insights and Microsoft.AlertsManagement resource
providers
Task 5: Deploy zone-resilient Azure virtual machine scale sets by using the Azure
portal
Task 6: Configure Azure virtual machine scale sets by using virtual machine
extensions
Task 7: Scale compute and storage for Azure virtual machine scale sets (optional)
Instructions
Exercise 1
Task 1: Deploy zone-resilient Azure virtual machines by using the Azure portal and
an Azure Resource Manager template
In this task, you will deploy Azure virtual machines into different availability zones by
using the Azure portal and an Azure Resource Manager template.
2. In the Azure portal, search for and select Virtual machines and, on the Virtual
machines blade, click + Add.
3. On the Basics tab of the Create a virtual machine blade, specify the following
settings (leave others with their default values):
Setting Value
Availability zone 1
Username Student
Setting Value
Password Pa55w.rd1234
4. Click Next: Disks > and, on the Disks tab of the Create a virtual machine blade,
specify the following settings (leave others with their default values):
Setting Value
5. Click Next: Networking > and, on the Networking tab of the Create a virtual
machine blade, click Create new below the Virtual network textbox.
6. On the Create virtual network blade, specify the following settings (leave others
with their default values):
Setting Value
Name az104-08-rg01-vnet
Setting Value
Subnet subnet0
Public IP default
8. Click Next: Management > and, on the Management tab of the Create a
virtual machine blade, specify the following settings (leave others with their
default values):
Setting Value
10. Click Next: Advanced >, on the Advanced tab of the Create a virtual
machine blade, review the available settings without modifying any of them, and
click Review + Create.
Note: You will use this option to deploy the second virtual machine with
matching configuration except for the availability zone.
14. On the Custom deployment blade, specify the following settings (leave others
with their default values):
Setting Value
Zone 2
15. Note: You need to modify parameters corresponding to the properties of the
distinct resources you are deploying by using the template, including the virtual
machine and its network interface.
16. Enable the checkbox I agree to the terms and conditions stated above and
click Purchase.
Note: Wait for both deployments to complete before you proceed to the next
task. This might take about 5 minutes.
1. In the Azure portal, search for and select Storage accounts and, on the Storage
accounts blade, click the entry representing the diagnostics storage account you
created in the previous task.
2. On the storage account blade, click Containers and then click + Container.
3. On the New container blade, specify the following settings (leave others with
their default values) and click Create:
Setting Value
Name scripts
4. Back on the storage account blade displaying the list of containers, click scripts.
6. On the Upload blob blade, click the folder icon, in the Open dialog box, navigate
to az104-08-install_IIS.ps1, click Open, and back on the Upload blob blade,
click Upload.
7. In the Azure portal, search for and select Virtual machines and, on the Virtual
machines blade, click az104-08-vm0.
9. On the New resource blade, click Custom Script Extension and then
click Create.
11. On the Storage accounts blade, click the name of the storage account into
which you uploaded the az104-08-install_IIS.ps1 script, on
the Containers blade, click scripts, on the scripts blade, click az104-08-
install_IIS.ps1, and then click Select.
12. Back on the Install extension blade, click OK.
13. In the Azure portal, search for and select Virtual machines and, on the Virtual
machines blade, click az104-08-vm1.
14. On the az104-08-vm1 blade, in the Automation section, click Export template.
17. On the Edit template blade, in the section displaying the content of the
template, insert the following code starting with line 20 (directly underneath
the "resources": [ line):
Note: If you are using a tool that pastes the code in line by line intellisense may add
extra brackets causing validation errors. You may want to paste the code into notepad
first and then paste it into line 20.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "az104-08-vm1/customScriptExtension",
"apiVersion": "2018-06-01",
"location": "[resourceGroup().location]",
"dependsOn": [
"az104-08-vm1"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.7",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "powershell.exe Install-WindowsFeature -name
Web-Server -IncludeManagementTools && powershell.exe remove-item
'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path
'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' +
$env:computername)"
}
}
},
Note: This section of the template defines the same Azure virtual machine custom script
extension that you deployed earlier to the first virtual machine via Azure PowerShell.
1. Click Save and, back on the Custom template blade, enable the checkbox I
agree to the terms and conditions stated above and click Purchase.
Note: Disregard the message stating The resource group is in a location that is
not supported by one or more resources in the template. Please choose a
different resource group. This is expected and can be ignored in this case.
Note: Wait for the template deployment to complete. You can monitor its
progress from the Extensions blade of the az104-08-vm0 and az104-08-
vm1 virtual machines. This should take no more than 3 minutes.
3. On the Run Command Script blade, type the following and click Run to access
the web site hosted on az104-08-vm0:
Note: You can also connect to az104-08-vm0 and run Invoke-WebRequest -URI
http://10.80.0.5 to access the web site hosted on az104-08-vm1.
In this task you will scale compute for Azure virtual machines by changing their size and
scale their storage by attaching and configuring their data disks.
1. In the Azure portal, search for and select Virtual machines and, on the Virtual
machines blade, click az104-08-vm0.
2. On the az104-08-vm0 virtual machine blade, click Size and set the virtual
machine size to Standard DS1_v2 and click Resize
4. Create a managed disk with the following settings (leave others with their default
values):
Setting Value
5. Back on the az104-08-vm0 - Disks blade, Under Data disks click + Create and
attach a new disk.
6. Create a managed disk with the following settings (leave others with their default
values):
Setting Value
9. On the Run Command Script blade, type the following and click Run to create a
drive Z: consisting of the two newly attached disks with the simple layout and
fixed provisioning:
Note: Wait for the confirmation that the commands completed successfully.
16. In the Azure portal, search for and select Virtual machines and, on the Virtual
machines blade, click az104-08-vm1.
17. On the az104-08-vm1 blade, in the Automation section, click Export template.
Note: Disregard the message stating The resource group is in a location that is
not supported by one or more resources in the template. Please choose a
different resource group. This is expected and can be ignored in this case.
20. On the Edit template blade, in the section displaying the content of the
template, replace the line 30 "vmSize": "Standard_D2s_v3" with the following line):
21. "vmSize": "Standard_DS1_v2"
Note: This section of the template defines the same Azure virtual machine size as
the one you specified for the first virtual machine via the Azure portal.
22. On the Edit template blade, in the section displaying the content of the
template, replace line 50 ( "dataDisks": [ ] line) with the following code :
23. "dataDisks": [
24. {
25. "lun": 0,
26. "name": "az104-08-vm1-datadisk0",
27. "diskSizeGB": "1024",
28. "caching": "ReadOnly",
29. "createOption": "Empty"
30. },
31. {
32. "lun": 1,
33. "name": "az104-08-vm1-datadisk1",
34. "diskSizeGB": "1024",
35. "caching": "ReadOnly",
36. "createOption": "Empty"
37. }
]
Note: If you are using a tool that pastes the code in line by line intellisense may
add extra brackets causing validation errors. You may want to paste the code into
notepad first and then paste it into line 49.
Note: This section of the template creates two managed disks and attaches them
to az104-08-vm1, similarly to the storage configuration of the first virtual
machine via the Azure portal.
38. Click Save and, back on the Custom template blade, enable the checkbox I
agree to the terms and conditions stated above and click Purchase.
Note: Wait for the template deployment to complete. You can monitor its
progress from the Extensions blade of the az104-08-vm1 virtual machine. This
should take no more than 3 minutes.
39. Back on the az104-08-vm1 blade, in the Operations section, click Run
command, and, in the list of commands, click RunPowerShellScript.
40. On the Run Command Script blade, type the following and click Run to create a
drive Z: consisting of the two newly attached disks with the simple layout and
fixed provisioning:
Note: Wait for the confirmation that the commands completed successfully.
1. In the Azure portal, open the Azure Cloud Shell by clicking on the icon in the top
right of the Azure Portal.
Note: If this is the first time you are starting Cloud Shell and you are presented
with the You have no storage mounted message, select the subscription you
are using in this lab, and click Create storage.
3. From the Cloud Shell pane, run the following to register the Microsoft.Insights
and Microsoft.AlertsManagement resource providers.
Task 5: Deploy zone-resilient Azure virtual machine scale sets by using the Azure
portal
In this task, you will deploy Azure virtual machine scale set across availability zones by
using the Azure portal.
1. In the Azure portal, search for and select Virtual machine scale sets and, on
the Virtual machine scale sets blade, click + Add.
2. On the Basics tab of the Create a virtual machine scale set blade, specify the
following settings (leave others with their default values) and click Next : Disks >:
Setting Value
Subscription the name of the Azure subscription you are using in this lab
Virtual machine
az10408vmss0
scale set name
Username Student
Password Pa55w.rd1234
Already have a
Windows Server No
license?
3. Note: For the list of Azure regions which support deployment of Windows virtual
machines to availability zones, refer to What are Availability Zones in Azure?
4. On the Disks tab of the Create a virtual machine scale set blade, accept the
default values and click Next : Networking >.
5. On the Networking tab of the Create a virtual machine scale set blade, click
the Create virtual network link below the Virtual network textbox and create a
new virtual network with the following settings (leave others with their default
values):
Setting Value
Name az104-08-rg02-vnet
6. Note: Once you create a new virtual network and return to the Networking tab
of the Create a virtual machine scale set blade, the Virtual network value will
be automatically set to az104-08-rg02-vnet.
7. Back on the Networking tab of the Create a virtual machine scale set blade,
click the Edit network interface icon to the right of the network interface entry.
8. On the Edit network interface blade, in the NIC network security
group section, click Advanced and click Create new under the Configure
network security group drop-down list.
9. On the Create network security group blade, specify the following settings
(leave others with their default values):
Setting Value
Name az10408vmss0-nsg
10. Click Add an inbound rule and add an inbound security rule with the following
settings (leave others with their default values):
Setting Value
Source Any
Destination Any
Protocol TCP
Action Allow
Priority 1010
Name custom-allow-http
11. Click Add and, back on the Create network security group blade, click OK.
12. Back on the Edit network interface blade, in the Public IP address section,
click Enabled and click OK.
13. Back on the Networking tab of the Create a virtual machine scale set blade,
specify the following settings (leave others with their default values) and
click Next : Scaling >:
Setting Value
14. On the Scaling tab of the Create a virtual machine scale set blade, specify the
following settings (leave others with their default values) and click Next :
Management >:
Setting Value
15. On the Management tab of the Create a virtual machine scale set blade,
ensure that the Boot diagnostics opton is enabled, select Create new, on
the Create storage account blade, in the Name text box, type a unique, valid
storage account name, click OK, and click Next : Health >:
Note: You will need the name of this storage account in the next task.
16. On the Health tab of the Create a virtual machine scale set blade, review the
default settings without making any changes and click Next : Advanced >.
17. On the Advanced tab of the Create a virtual machine scale set blade, specify
the following settings (leave others with their default values) and click Review +
create.
Setting Value
19. On the Review + create tab of the Create a virtual machine scale set blade,
ensure that the validation passed and click Create.
Note: Wait for the virtual machine scale set deployment to complete. This should
take about 5 minutes.
Task 6: Configure Azure virtual machine scale sets by using virtual machine
extensions
In this task, you will install Windows Server Web Server role on the instances of the
Azure virtual machine scale set you deployed in the previous task by using the Custom
Script virtual machine extension.
1. In the Azure portal, search for and select Storage accounts and, on the Storage
accounts blade, click the entry representing the diagnostics storage account you
created in the previous task.
2. On the storage account blade, click Containers and then click + Container.
3. On the New container blade, specify the following settings (leave others with
their default values) and click Create:
Setting Value
Name scripts
4. Back on the storage account blade displaying the list of containers, click scripts.
6. On the Upload blob blade, click the folder icon, in the Open dialog box, navigate
to the az104-08-install_IIS.ps1, click Open, and back on the Upload blob blade,
click Upload.
7. In the Azure portal, navigate back to the Virtual machine scale sets blade and
click az10408vmss0.
9. On the New resource blade, click Custom Script Extension and then
click Create.
10. From the Install extension blade, Browse to and Select the az104-08-
install_IIS.ps1 script that was uploaded to the scripts container in the storage
account earlier in this task, and then click OK.
Note: Wait for the installation of the extension to complete before proceeding to
the next step.
11. In the Settings section of the az10408vmss0 blade, click Instances, select the
checkboxes next to the two instances of the virtual machine scale set,
click Upgrade, and then, when prompted for confirmation, click Yes.
Note: Wait for the upgrade to complete before proceeding to the next step.
12. In the Azure portal, search for and select Load balancers and, in the list of load
balancers, click az10408vmss0-lb.
Note: Verify that the browser page displays the name of one of the instances of
the Azure virtual machine scale set az10408vmss0.
Task 7: Scale compute and storage for Azure virtual machine scale sets
In this task, you will change the size of virtual machine scale set instances, configure
their autoscaling settings, and attach disks to them.
1. In the Azure portal, search for and select Virtual machine scale sets and select
the az10408vmss0 scale set
3. In the list of available sizes, select Standard DS1_v2 and click Resize.
4. In the Settings section, click Instances, select the checkboxes next to the two
instances of the virtual machine scale set, click Upgrade, and then, when
prompted for confirmation, click Yes.
5. In the list of instances, click the entry representing the first instance and, on the
scale set instance blade, note its Location (it should be one of the zones in the
target Azure region into which you deployed the Azure virtual machine scale set).
6. Return to the az10408vmss0 - Instances blade, click the entry representing the
second instance and, on the scale set instance blade, note its Location (it should
be one of the other two zones in the target Azure region into which you
deployed the Azure virtual machine scale set).
8. On the az10408vmss0 - Scaling blade, select the Custom autoscale option and
configure autoscale with the following settings (leave others with their default
values):
Setting Value
9. Click the + Add a rule link and, on the Scale rule blade, specify the following
settings (leave others with their default values):
Setting Value
Instance count 1
10. Note: Obviously these values do not represent a realistic configuration, since
their purpose is to trigger autoscaling as soon as possible, without extended wait
period.
11. Click Add and, back on the az10408vmss0 - Scaling blade, specify the following
settings (leave others with their default values):
Setting Value
13. In the Azure portal, open the Azure Cloud Shell by clicking on the icon in the top
right of the Azure Portal.
15. From the Cloud Shell pane, run the following to identify the public IP address of
the load balancer in front of the Azure virtual machine scale set az10408vmss0.
16. $rgName = 'az104-08-rg02'
17.
18. $lbpipName = 'az10408vmss0-ip'
19.
$pip = (Get-AzPublicIpAddress -ResourceGroupName $rgName -Name
$lbpipName).IpAddress
20. From the Cloud Shell pane, run the following to start and infinite loop that sends
the HTTP requests to the web sites hosted on the instances of Azure virtual
machine scale set az10408vmss0.
21. Minimize the Cloud Shell pane but do not close it, switch back to
the az10408vmss0 - Instances blade and monitor the number of instances.
Note: You might need to wait a couple of minutes and click Refresh.
22. Once the third instance is provisioned, navigate to its blade to determine
its Location (it should be different than the first two zones you identified earlier
in this task.
24. On the az10408vmss0 blade, click Disks, click + Add data disk, and attach a
new managed disk with the following settings (leave others with their default
values):
Setting Value
LUN 0
Size 32
25. Save the change, in the Settings section of the az10408vmss0 blade,
click Instances, select the checkboxes next to the two instances of the virtual
machine scale set, click Upgrade, and then, when prompted for confirmation,
click Yes.
Note: The disk attached in the previous step is a raw disk. Before it can be used, it
is necessary to create a partition, create a filesystem, and mount it. To accomplish
this, you will use Azure virtual machine Custom Script extension. First, you will
need to remove the existing Custom Script Extension.
27. In the Azure portal, open the Azure Cloud Shell by clicking on the icon in the top
right of the Azure Portal.
29. In the toolbar of the Cloud Shell pane, click the Upload/Download files icon, in
the drop-down menu, click Upload and upload the file az104-08-
configure_VMSS_disks.ps1 into the Cloud Shell home directory.
30. From the Cloud Shell pane, run the following to display the content of the script:
Note: The script installs a custom script extension that configures the attached
disk.
33. From the Cloud Shell pane, run the following to excecute the script and configure
disks of Azure virtual machine scale set:
./az104-08-configure_VMSS_disks.ps1
35. In the Settings section of the az10408vmss0 blade, click Instances, select the
checkboxes next to the two instances of the virtual machine scale set,
click Upgrade, and then, when prompted for confirmation, click Yes.
Clean up resources
Note: Remember to remove any newly created Azure resources that you no longer use.
Removing unused resources ensures you will not see unexpected charges.
1. In the Azure portal, open the PowerShell session within the Cloud Shell pane.
2. Remove az104-08-configure_VMSS_disks.ps1 by running the following command:
rm ~\az104-08*
3. List all resource groups created throughout the labs of this module by running
the following command:
4. Delete all resource groups you created throughout the labs of this module by
running the following command:
Review
Deployed zone-resilient Azure virtual machines by using the Azure portal and an
Azure Resource Manager template
Configured Azure virtual machines by using virtual machine extensions
Scaled compute and storage for Azure virtual machines
Deployed zone-reslient Azure virtual machine scale sets by using the Azure portal
Configured Azure virtual machine scale sets by using virtual machine extensions
Scaled compute and storage for Azure virtual machine scale sets