# salt.states.azurearm_compute

Azure (ARM) Compute State Module

New in version 2019.2.0.

Warning

This cloud provider will be removed from Salt in version 3007 in favor of the saltext.azurerm Salt Extension

maintainer:

  <devops@eitr.tech>

maturity:

  new

depends:

  - azure >= 2.0.0

  - azure-common >= 1.1.8

  - azure-mgmt >= 1.0.0

  - azure-mgmt-compute >= 1.0.0

  - azure-mgmt-network >= 1.7.1

  - azure-mgmt-resource >= 1.1.0

  - azure-mgmt-storage >= 1.0.0

  - azure-mgmt-web >= 0.32.0

  - azure-storage >= 0.34.3

  - msrestazure >= 0.4.21

platform:

  linux

configuration:

  This module requires Azure Resource Manager credentials to be passed as a dictionary of keyword arguments to the `connection_auth` parameter in order to work properly. Since the authentication parameters are sensitive, it's recommended to pass them to the states via pillar.

  Required provider parameters:

  if using username and password:

    - `subscription_id`

    - `username`

    - `password`

  if using a service principal:

    - `subscription_id`

    - `tenant`

    - `client_id`

    - `secret`

  Optional provider parameters:

  cloud_environment: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:

    - `AZURE_PUBLIC_CLOUD` (default)

    - `AZURE_CHINA_CLOUD`

    - `AZURE_US_GOV_CLOUD`

    - `AZURE_GERMAN_CLOUD`

  Example Pillar for Azure Resource Manager authentication:

      azurearm:
          user_pass_auth:
              subscription_id: 3287abc8-f98a-c678-3bde-326766fd3617
              username: fletch
              password: 123pass
          mysubscription:
              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_PUBLIC_CLOUD

  Example states using Azure Resource Manager authentication:

      {% set profile = salt['pillar.get']('azurearm:mysubscription') %}
      Ensure availability set exists:
          azurearm_compute.availability_set_present:
              - name: my_avail_set
              - resource_group: my_rg
              - virtual_machines:
                  - my_vm1
                  - my_vm2
              - tags:
                  how_awesome: very
                  contact_name: Elmer Fudd Gantry
              - connection_auth: {{ profile }}

      Ensure availability set is absent:
          azurearm_compute.availability_set_absent:
              - name: other_avail_set
              - resource_group: my_rg
              - connection_auth: {{ profile }}

salt.states.azurearm_compute.availability_set_absent(name, resource_group, connection_auth=None)

  New in version 2019.2.0.

  Ensure an availability set does not exist in a resource group.

  Parameters:

    - name -- Name of the availability set.

    - resource_group -- Name of the resource group containing the availability set.

    - connection_auth -- A dict with subscription and authentication parameters to be used in connecting to the Azure Resource Manager API.

salt.states.azurearm_compute.availability_set_present(name, resource_group, tags=None, platform_update_domain_count=None, platform_fault_domain_count=None, virtual_machines=None, sku=None, connection_auth=None, **kwargs)

  New in version 2019.2.0.

  Ensure an availability set exists.

  Parameters:

    - name -- Name of the availability set.

    - resource_group -- The resource group assigned to the availability set.

    - tags -- A dictionary of strings can be passed as tag metadata to the availability set object.

    - platform_update_domain_count -- An optional parameter which indicates groups of virtual machines and underlying physical hardware that can be rebooted at the same time.

    - platform_fault_domain_count -- An optional parameter which defines the group of virtual machines that share a common power source and network switch.

    - virtual_machines -- A list of names of existing virtual machines to be included in the availability set.

    - sku -- The availability set SKU, which specifies whether the availability set is managed or not. Possible values are 'Aligned' or 'Classic'. An 'Aligned' availability set is managed, 'Classic' is not.

    - connection_auth -- A dict with subscription and authentication parameters to be used in connecting to the Azure Resource Manager API.

  Example usage:

      Ensure availability set exists:
          azurearm_compute.availability_set_present:
              - name: aset1
              - resource_group: group1
              - platform_update_domain_count: 5
              - platform_fault_domain_count: 3
              - sku: aligned
              - tags:
                  contact_name: Elmer Fudd Gantry
              - connection_auth: {{ profile }}
              - require:
                - azurearm_resource: Ensure resource group exists