az vm extension

Manage extensions on VMs.

Extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines. For example, if a virtual machine requires software installation, anti-virus protection, or Docker configuration, a VM extension can be used to complete these tasks. Extensions can be bundled with a new virtual machine deployment or run against any existing system.

Commands

Name Description Type Status
az vm extension delete

Delete operation to delete the extension.

Core GA
az vm extension image

Find the available VM extensions for a subscription and region.

Core GA
az vm extension image list

List the information on available extensions.

Core GA
az vm extension image list-names

List the names of available extensions.

Core GA
az vm extension image list-versions

List the versions for available extensions.

Core GA
az vm extension image show

Display information for an extension.

Core GA
az vm extension list

List the extensions attached to a VM.

Core GA
az vm extension set

Set extensions for a VM.

Core GA
az vm extension show

Display information about extensions attached to a VM.

Core GA
az vm extension wait

Place the CLI in a waiting state until a condition of a virtual machine extension is met.

Core GA

az vm extension delete

Delete operation to delete the extension.

az vm extension delete [--ids]
                       [--name]
                       [--no-wait {0, 1, f, false, n, no, t, true, y, yes}]
                       [--resource-group]
                       [--subscription]
                       [--vm-name]

Examples

Use a VM name and extension to delete an extension from a VM.

az vm extension delete -g MyResourceGroup --vm-name MyVm -n MyExtensionName

Delete extensions with IDs containing the string "MyExtension" from a VM.

az vm extension delete --ids $(az resource list --query "[?contains(name, 'MyExtension')].id" -o tsv)

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name --vm-extension-name -n

The name of the virtual machine extension.

--no-wait

Do not wait for the long-running operation to finish.

accepted values: 0, 1, f, false, n, no, t, true, y, yes
--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--vm-name

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm extension list

List the extensions attached to a VM.

az vm extension list [--ids]
                     [--resource-group]
                     [--subscription]
                     [--vm-name]

Examples

List attached extensions to a named VM.

az vm extension list -g MyResourceGroup --vm-name MyVm

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--vm-name

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm extension set

Set extensions for a VM.

Get extension details from az vm extension image list.

az vm extension set --name
                    --publisher
                    [--enable-auto-upgrade {false, true}]
                    [--extension-instance-name]
                    [--force-update]
                    [--ids]
                    [--no-auto-upgrade {false, true}]
                    [--no-auto-upgrade-minor-version {false, true}]
                    [--no-wait]
                    [--protected-settings]
                    [--resource-group]
                    [--settings]
                    [--subscription]
                    [--version]
                    [--vm-name]

Examples

Add a user account to a Linux VM.

az vm extension set -n VMAccessForLinux --publisher Microsoft.OSTCExtensions --version 1.4 \
    --vm-name MyVm --resource-group MyResourceGroup \
    --protected-settings '{"username":"user1", "ssh_key":"ssh_rsa ..."}'

Add a customScript extension to VM(s) specified by --ids.

az vm extension set -n customScript --publisher Microsoft.Azure.Extensions --ids {vm_id}

Add an extension and enable automatic upgrade by the platform if there is a newer version of the extension available.

az vm extension set -n extName --publisher publisher --vm-name MyVM -g MyResourceGroup \
--enable-auto-upgrade true

Required Parameters

--name -n

Name of the extension.

value from: az vm extension image list
--publisher

The name of the extension publisher.

Optional Parameters

--enable-auto-upgrade

Indicate the extension should be automatically upgraded by the platform if there is a newer version of the extension available.

accepted values: false, true
--extension-instance-name

Name of extension instance, which can be customized. Default: name of the extension.

--force-update

Force to update even if the extension configuration has not changed.

default value: False
--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--no-auto-upgrade
Deprecated

Option '--no-auto-upgrade' has been deprecated and will be removed in a future release. Use '--no-auto-upgrade-minor-version' instead.

If set, the extension service will not automatically pick or upgrade to the latest minor version, even if the extension is redeployed.

accepted values: false, true
default value: False
--no-auto-upgrade-minor-version

If set, the extension service will not automatically pick or upgrade to the latest minor version, even if the extension is redeployed.

accepted values: false, true
default value: False
--no-wait

Do not wait for the long-running operation to finish.

default value: False
--protected-settings

Protected settings in JSON format for sensitive information like credentials. A JSON file path is also accepted.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--settings

Extension settings in JSON format. A JSON file path is also accepted.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--version

The version of the extension. To pin extension version to this value, please specify --no-auto-upgrade-minor-version.

--vm-name

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm extension show

Display information about extensions attached to a VM.

az vm extension show [--ids]
                     [--instance-view]
                     [--name]
                     [--resource-group]
                     [--subscription]
                     [--vm-name]

Examples

Use VM name and extension name to show the extensions attached to a VM.

az vm extension show -g MyResourceGroup --vm-name MyVm -n extension_name

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--instance-view

The instance view of a virtual machine extension.

default value: False
--name -n

Name of the extension.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--vm-name

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm extension wait

Place the CLI in a waiting state until a condition of a virtual machine extension is met.

az vm extension wait [--created]
                     [--custom]
                     [--deleted]
                     [--exists]
                     [--ids]
                     [--interval]
                     [--name]
                     [--resource-group]
                     [--subscription]
                     [--timeout]
                     [--updated]
                     [--vm-name]

Examples

Place the CLI in a waiting state until a condition of a virtual machine extension is met. (autogenerated)

az vm extension wait --created --name MyExtension --resource-group MyResourceGroup --vm-name MyVm

Place the CLI in a waiting state until a condition of a virtual machine extension is met. (autogenerated)

az vm extension wait --exists --name MyExtension --resource-group MyResourceGroup --vm-name MyVm

Place the CLI in a waiting state until a condition of a virtual machine extension is met. (autogenerated)

az vm extension wait --ids @- --name MyExtension --subscription MySubscription --updated --vm-name MyVm

Optional Parameters

--created

Wait until created with 'provisioningState' at 'Succeeded'.

default value: False
--custom

Wait until the condition satisfies a custom JMESPath query. E.g. provisioningState!='InProgress', instanceView.statuses[?code=='PowerState/running'].

--deleted

Wait until deleted.

default value: False
--exists

Wait until the resource exists.

default value: False
--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--interval

Polling interval in seconds.

default value: 30
--name -n

Name of the extension.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--timeout

Maximum wait in seconds.

default value: 3600
--updated

Wait until updated with provisioningState at 'Succeeded'.

default value: False
--vm-name

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.