Professional Documents
Culture Documents
Tutorial - Create and Manage Linux VMs With The Azure CLI - Microsoft Docs
Tutorial - Create and Manage Linux VMs With The Azure CLI - Microsoft Docs
In this article
Open Azure Cloud Shell
Create resource group
Create virtual machine
Connect to VM
Understand VM images
Understand VM sizes
VM power states
Management tasks
Next steps
Azure virtual machines provide a fully configurable and flexible computing environment. This
tutorial covers basic Azure virtual machine deployment items such as selecting a VM size,
selecting a VM image, and deploying a VM. You learn how to:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 1/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
If you choose to install and use the CLI locally, this tutorial requires that you are running the
Azure CLI version 2.0.30 or later. Run az --version to find the version. If you need to install or
upgrade, see Install Azure CLI 2.0.
An Azure resource group is a logical container into which Azure resources are deployed and
managed. A resource group must be created before a virtual machine. In this example, a
resource group named myResourceGroupVM is created in the eastus region.
The resource group is specified when creating or modifying a VM, which can be seen throughout
this tutorial.
When you create a virtual machine, several options are available such as operating system image,
disk sizing, and administrative credentials. The following example creates a VM named myVM
that runs Ubuntu Server. A user account named azureuser is created on the VM, and SSH keys
are generated if they do not exist in the default key location (~/.ssh):
az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 2/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
It may take a few minutes to create the VM. Once the VM has been created, the Azure CLI
outputs information about the VM. Take note of the publicIpAddress , this address can be used
to access the virtual machine..
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceG
"location": "eastus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}
Connect to VM
You can now connect to the VM with SSH in the Azure Cloud Shell or from your local computer.
Replace the example IP address with the publicIpAddress noted in the previous step.
bash Copy
ssh azureuser@52.174.34.95
Once logged in to the VM, you can install and configure applications. When you are finished, you
close the SSH session as normal:
bash Copy
exit
Understand VM images
The Azure marketplace includes many images that can be used to create VMs. In the previous
steps, a virtual machine was created using an Ubuntu image. In this step, the Azure CLI is used to
search the marketplace for a CentOS image, which is then used to deploy a second virtual
machine.
To see a list of the most commonly used images, use the az vm image list command.
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 3/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
bash Copy
A full list can be seen by adding the --all argument. The image list can also be filtered by
--publisher or –-offer . In this example, the list is filtered for all images with an offer that
matches CentOS.
Partial output:
To deploy a VM using a specific image, take note of the value in the Urn column, which consists
of the publisher, offer, SKU, and optionally a version number to identify the image. When
specifying the image, the image version number can be replaced with “latest”, which selects the
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 4/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
latest version of the distribution. In this example, the --image argument is used to specify the
latest version of a CentOS 6.5 image.
Understand VM sizes
A virtual machine size determines the amount of compute resources such as CPU, GPU, and
memory that are made available to the virtual machine. Virtual machines need to be sized
appropriately for the expected work load. If workload increases, an existing virtual machine can
be resized.
VM Sizes
General Dsv3, Dv3, DSv2, Balanced CPU-to-memory. Ideal for dev / test and small to
purpose Dv2, DS, D, Av2, A0-7 medium applications and data solutions.
Memory Esv3, Ev3, M, GS, G, High memory-to-core. Great for relational databases,
optimized DSv2, DS, Dv2, D medium to large caches, and in-memory analytics.
Storage Ls High disk throughput and IO. Ideal for Big Data, SQL, and
optimized NoSQL databases.
GPU NV, NC Specialized VMs targeted for heavy graphic rendering and
video editing.
High H, A8-11 Our most powerful CPU VMs with optional high-throughput
performance network interfaces (RDMA).
To see a list of VM sizes available in a particular region, use the az vm list-sizes command.
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 5/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
Partial output:
In the previous VM creation example, a size was not provided, which results in a default size. A
VM size can be selected at creation time using az vm create and the --size argument.
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image UbuntuLTS \
--size Standard_F4s \
--generate-ssh-keys
Resize a VM
After a VM has been deployed, it can be resized to increase or decrease resource allocation. You
can view the current of size of a VM with az vm show:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 6/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
Before resizing a VM, check if the desired size is available on the current Azure cluster. The az vm
list-vm-resize-options command returns the list of sizes.
If the desired size is available, the VM can be resized from a powered-on state, however it is
rebooted during the operation. Use the az vm resize command to perform the resize.
If the desired size is not on the current cluster, the VM needs to be deallocated before the resize
operation can occur. Use the az vm deallocate command to stop and deallocate the VM. Note,
when the VM is powered back on, any data on the temp disk may be removed. The public IP
address also changes unless a static IP address is being used.
VM power states
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 7/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
An Azure VM can have one of many power states. This state represents the current state of the
VM from the standpoint of the hypervisor.
Power states
Stopped Indicates that the virtual machine is stopped. Virtual machines in the stopped state still
incur compute charges.
Deallocated Indicates that the virtual machine is removed from the hypervisor but still available in
the control plane. Virtual machines in the Deallocated state do not incur compute
charges.
To retrieve the state of a particular VM, use the az vm get-instance-view command. Be sure to
specify a valid name for a virtual machine and resource group.
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table
Output:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 8/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
Management tasks
During the life-cycle of a virtual machine, you may want to run management tasks such as
starting, stopping, or deleting a virtual machine. Additionally, you may want to create scripts to
automate repetitive or complex tasks. Using the Azure CLI, many common management tasks
can be run from the command line or in scripts.
Get IP address
This command returns the private and public IP addresses of a virtual machine.
Deleting a resource group also deletes all resources contained within, such as the VM, virtual
network, and disk. The --no-wait parameter returns control to the prompt without waiting for
the operation to complete. The --yes parameter confirms that you wish to delete the resources
without an additional prompt to do so.
Next steps
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 9/10
2/5/2018 Tutorial - Create and manage Linux VMs with the Azure CLI | Microsoft Docs
In this tutorial, you learned about basic VM creation and management such as how to:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm 10/10