New in version 2016.11.0.
Changed in version 2019.2.0.
The Azure ARM cloud module is used to control access to Microsoft Azure Resource Manager
| depends: |
|
|---|---|
| configuration: | Required provider parameters:
Optional provider parameters:
|
Example /etc/salt/cloud.providers or
/etc/salt/cloud.providers.d/azure.conf configuration:
my-azure-config with username and password:
driver: azurearm
subscription_id: 3287abc8-f98a-c678-3bde-326766fd3617
username: larry
password: 123pass
Or my-azure-config with service principal:
driver: azurearm
subscription_id: 3287abc8-f98a-c678-3bde-326766fd3617
tenant: ABCDEFAB-1234-ABCD-1234-ABCDEFABCDEF
client_id: ABCDEFAB-1234-ABCD-1234-ABCDEFABCDEF
secret: XXXXXXXXXXXXXXXXXXXXXXXX
cloud_environment: AZURE_US_GOV_CLOUD
The Service Principal can be created with the new Azure CLI (https://github.com/Azure/azure-cli) with:
az ad sp create-for-rbac -n "http://<yourappname>" --role <role> --scopes <scope>
For example, this creates a service principal with 'owner' role for the whole subscription:
az ad sp create-for-rbac -n "http://mysaltapp" --role owner --scopes /subscriptions/3287abc8-f98a-c678-3bde-326766fd3617
*Note: review the details of Service Principals. Owner role is more than you normally need, and you can restrict
scope to a resource group or individual resources.
salt.cloud.clouds.azurearm.avail_images(call=None)¶Return a dict of all available images on the provider
salt.cloud.clouds.azurearm.avail_locations(call=None)¶Return a dict of all available regions.
salt.cloud.clouds.azurearm.avail_sizes(call=None)¶Return a list of sizes available from the provider
salt.cloud.clouds.azurearm.create(vm_)¶Create a single VM from a data dict.
salt.cloud.clouds.azurearm.create_network_interface(call=None, kwargs=None)¶Create a network interface.
salt.cloud.clouds.azurearm.create_or_update_vmextension(call=None, kwargs=None)¶New in version 2019.2.0.
Create or update a VM extension object "inside" of a VM object.
extension_name: myvmextension
virtual_machine_name: myvm
settings: {"commandToExecute": "hostname"}
resource_group: < inferred from cloud configs >
location: < inferred from cloud configs >
publisher: < default: Microsoft.Azure.Extensions >
virtual_machine_extension_type: < default: CustomScript >
type_handler_version: < default: 2.0 >
auto_upgrade_minor_version: < default: True >
protected_settings: < default: None >
salt.cloud.clouds.azurearm.delete_blob(call=None, kwargs=None)¶Delete a blob from a container.
salt.cloud.clouds.azurearm.delete_interface(call=None, kwargs=None)¶Delete a network interface.
salt.cloud.clouds.azurearm.delete_managed_disk(call=None, kwargs=None)¶Delete a managed disk from a resource group.
salt.cloud.clouds.azurearm.destroy(name, call=None, kwargs=None)¶Destroy a VM.
CLI Examples:
salt-cloud -d myminion
salt-cloud -a destroy myminion service_name=myservice
salt.cloud.clouds.azurearm.get_api_versions(call=None, kwargs=None)¶Get a resource type api versions
salt.cloud.clouds.azurearm.get_configured_provider()¶Return the first configured provider instance.
salt.cloud.clouds.azurearm.get_conn(client_type)¶Return a connection object for a client type.
salt.cloud.clouds.azurearm.get_dependencies()¶Warn if dependencies aren't met.
salt.cloud.clouds.azurearm.get_location(call=None, kwargs=None)¶Return the location that is configured for this provider
salt.cloud.clouds.azurearm.get_resource_by_id(resource_id, api_version, extract_value=None)¶Get an AzureARM resource by id
salt.cloud.clouds.azurearm.list_blobs(call=None, kwargs=None)¶List blobs.
salt.cloud.clouds.azurearm.list_nodes(call=None)¶List VMs on this Azure account
salt.cloud.clouds.azurearm.list_nodes_full(call=None)¶List all VMs on the subscription with full information
salt.cloud.clouds.azurearm.list_resource_groups(call=None)¶List resource groups associated with the subscription
salt.cloud.clouds.azurearm.list_storage_accounts(call=None)¶List storage accounts within the subscription.
salt.cloud.clouds.azurearm.list_subnets(call=None, kwargs=None)¶List subnets in a virtual network.
salt.cloud.clouds.azurearm.list_virtual_networks(call=None, kwargs=None)¶List virtual networks.
salt.cloud.clouds.azurearm.request_instance(vm_)¶Request a VM from Azure.
salt.cloud.clouds.azurearm.show_instance(name, call=None)¶Show the details from AzureARM concerning an instance
salt.cloud.clouds.azurearm.start(name, call=None)¶New in version 2019.2.0.
Start a VM
CLI Examples:
salt-cloud -a start myminion
salt.cloud.clouds.azurearm.stop(name, call=None)¶New in version 2019.2.0.
Stop (deallocate) a VM
CLI Examples:
salt-cloud -a stop myminion