page_type | description | languages | products | |||
---|---|---|---|---|---|---|
sample |
How to perform common management tasks with Microsoft Azure Virtual Machines using the Azure SDK for Python. |
|
|
Azure Virtual Machines Management Samples - Python
These samples demonstrate how to perform common management tasks with Microsoft Azure Virtual Machines using the Azure SDK for Python. The code provided shows how to do the following:
- Create virtual machines:
- Create a Linux virtual machine
- Create a Windows virtual machine
- Update a virtual machine:
- Expand a drive
- Tag a virtual machine
- Attach data disks
- Detach data disks
- Operate a virtual machine:
- Start a virtual machine
- Stop a virtual machine
- Restart a virtual machine
- List virtual machines
- Delete a virtual machine
To see the code to perform these operations,
check out the run_example()
function in example.py.
Each operation is clearly labeled with a comment and a print function.
The examples are not necessarily in the order shown in the above list.
Running this sample
-
If you don't already have it, install Python.
This sample (and the SDK) is compatible with Python 2.7, 3.4, 3.5, 3.6 and 3.7.
-
General recommendation for Python development is to use a Virtual Environment. For more information, see https://docs.python.org/3/tutorial/venv.html
Install and initialize the virtual environment with the "venv" module on Python 3 (you must install virtualenv for Python 2.7):
python -m venv mytestenv # Might be "python3" or "py -3.6" depending on your Python installation cd mytestenv source bin/activate # Linux shells (Bash, ZSH, etc.) scripts\activate # Windows shells (PowerShell, CMD)
-
Clone the repository.
git clone https://github.com/Azure-Samples/virtual-machines-python-manage.git
-
Install the dependencies using pip.
cd virtual-machines-python-manage pip install -r requirements.txt
-
Create an Azure service principal either through Azure CLI, PowerShell or the portal.
Retrieve the application ID (a.k.a. client ID), authentication key (a.k.a. client secret), tenant ID and subscription ID from the Azure portal for use in the next step. This document describes where to find them (besides the subscription ID, which is in the "Overview" section of the "Subscriptions" blade.)
-
Fill in and export these environment variables into your current shell.
export AZURE_TENANT_ID={your tenant id} export AZURE_CLIENT_ID={your client id} export AZURE_CLIENT_SECRET={your client secret} export AZURE_SUBSCRIPTION_ID={your subscription id}
-
Run the sample.
python example.py
Notes
Retrieving a VM's OS disk
You may be tempted to try to retrieve a VM's OS disk by using
virtual_machine.storage_profile.os_disk
.
In some cases, this may do what you want,
but be aware that it gives you an OSDisk
object.
In order to update the OS Disk's size, as example.py
does,
you need not an OSDisk
object but a Disk
object.
example.py
gets the Disk
object with the following:
os_disk_name = virtual_machine.storage_profile.os_disk.name
os_disk = compute_client.disks.get(GROUP_NAME, os_disk_name)
More information
Here are some helpful links:
- Azure Python Development Center
- Azure Virtual Machines documentation
- Learning Path for Virtual Machines
If you don't have a Microsoft Azure subscription you can get a FREE trial account here.
Azure Stack Sample
The Azure Stack sample under Hybrid folder has moved to https://github.com/Azure-Samples/Hybrid-Compute-Python-Manage-VM
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.