azure.azcollection.azure_rm_storageaccount (2.3.0) — module

Manage Azure storage accounts

| "added in version" 0.1.0 of azure.azcollection"

Authors: Chris Houseknecht (@chouseknecht), Matt Davis (@nitzmahone)

Install collection

Install with ansible-galaxy collection install azure.azcollection:==2.3.0


Add to requirements.yml

  collections:
    - name: azure.azcollection
      version: 2.3.0

Description

Create, update or delete a storage account.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: remove account, if it exists
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: clh0002
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: create an account
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: clh0002
    type: Standard_RAGRS
    tags:
      testing: testing
      delete: on-exit
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create an account with kind of FileStorage
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: c1h0002
    type: Premium_LRS
    kind: FileStorage
    tags:
      testing: testing
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create storage account with I(enable_nfs_v3=false)
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: c1h0002
    account_type: Premium_LRS
    kind: FileStorage
    enable_nfs_v3: false
    static_website:
      enabled: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: configure firewall and virtual networks
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: clh0002
    type: Standard_RAGRS
    network_acls:
      bypass: AzureServices,Metrics
      default_action: Deny
      virtual_network_rules:
        - id: /subscriptions/mySubscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet
          action: Allow
      ip_rules:
        - value: 1.2.3.4
          action: Allow
        - value: 123.234.123.0/24
          action: Allow
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: create an account with blob CORS
  azure_rm_storageaccount:
    resource_group: myResourceGroup
    name: clh002
    type: Standard_RAGRS
    blob_cors:
      - allowed_origins:
          - http://www.example.com/
        allowed_methods:
          - GET
          - POST
        allowed_headers:
          - x-ms-meta-data*
          - x-ms-meta-target*
          - x-ms-meta-abc
        exposed_headers:
          - x-ms-meta-*
        max_age_in_seconds: 200

Inputs

    
kind:
    choices:
    - Storage
    - StorageV2
    - BlobStorage
    - BlockBlobStorage
    - FileStorage
    default: Storage
    description:
    - The kind of storage.
    - The C(FileStorage) and (BlockBlobStorage) only used when I(account_type=Premium_LRS)
      or I(account_type=Premium_ZRS).
    type: str

name:
    description:
    - Name of the storage account to update or create.
    required: true
    type: str

tags:
    description:
    - Dictionary of string:string pairs to assign as metadata to the object.
    - Metadata tags on the object will be updated with any provided values.
    - To remove tags set append_tags option to false.
    - Currently, Azure DNS zones and Traffic Manager services also don't allow the use
      of spaces in the tag.
    - Azure Front Door doesn't support the use of
    - Azure Automation and Azure CDN only support 15 tags on resources.
    type: dict

state:
    choices:
    - absent
    - present
    - failover
    default: present
    description:
    - State of the storage account. Use C(present) to create or update a storage account
      and use C(absent) to delete an account.
    - C(failover) is used to failover the storage account to its secondary. This process
      can take up to a hour.
    type: str

secret:
    description:
    - Azure client secret. Use when authenticating with a Service Principal.
    type: str

tenant:
    description:
    - Azure tenant ID. Use when authenticating with a Service Principal.
    type: str

ad_user:
    description:
    - Active Directory username. Use when authenticating with an Active Directory user
      rather than service principal.
    type: str

profile:
    description:
    - Security profile found in ~/.azure/credentials file.
    type: str

location:
    description:
    - Valid Azure location. Defaults to location of the resource group.
    type: str

log_mode:
    description:
    - Parent argument.
    type: str

log_path:
    description:
    - Parent argument.
    type: str

password:
    description:
    - Active Directory user password. Use when authenticating with an Active Directory
      user rather than service principal.
    type: str

blob_cors:
    description:
    - Specifies CORS rules for the Blob service.
    - You can include up to five CorsRule elements in the request.
    - If no blob_cors elements are included in the argument list, nothing about CORS will
      be changed.
    - If you want to delete all CORS rules and disable CORS for the Blob service, explicitly
      set I(blob_cors=[]).
    elements: dict
    suboptions:
      allowed_headers:
        description:
        - A list of headers allowed to be part of the cross-origin request.
        elements: str
        required: true
        type: list
      allowed_methods:
        description:
        - A list of HTTP methods that are allowed to be executed by the origin.
        elements: str
        required: true
        type: list
      allowed_origins:
        description:
        - A list of origin domains that will be allowed via CORS, or "*" to allow all
          domains.
        elements: str
        required: true
        type: list
      exposed_headers:
        description:
        - A list of response headers to expose to CORS clients.
        elements: str
        required: true
        type: list
      max_age_in_seconds:
        description:
        - The number of seconds that the client/browser should cache a preflight response.
        required: true
        type: int
    type: list

client_id:
    description:
    - Azure client ID. Use when authenticating with a Service Principal or Managed Identity
      (msi).
    - Can also be set via the C(AZURE_CLIENT_ID) environment variable.
    type: str

encryption:
    description:
    - The encryption settings on the storage account.
    suboptions:
      key_source:
        choices:
        - Microsoft.Storage
        - Microsoft.Keyvault
        default: Microsoft.Storage
        description:
        - The encryption keySource (provider).
        type: str
      require_infrastructure_encryption:
        description:
        - A boolean indicating whether or not the service applies a secondary layer of
          encryption with platform managed keys for data at rest.
        type: bool
      services:
        description:
        - List of services which support encryption.
        suboptions:
          blob:
            description:
            - The encryption function of the blob storage service.
            suboptions:
              enabled:
                description:
                - Whether to encrypt the blob type.
                type: bool
            type: dict
          file:
            description:
            - The encryption function of the file storage service.
            suboptions:
              enabled:
                description:
                - Whether to encrypt the file type.
                type: bool
            type: dict
          queue:
            description:
            - The encryption function of the queue storage service.
            suboptions:
              enabled:
                description:
                - Whether to encrypt the queue type.
                type: bool
            type: dict
          table:
            description:
            - The encryption function of the table storage service.
            suboptions:
              enabled:
                description:
                - Whether to encrypt the table type.
                type: bool
            type: dict
        type: dict
    type: dict

https_only:
    description:
    - Allows https traffic only to storage service when set to C(True).
    - If omitted, new account creation will default to True, while existing accounts will
      not be change.
    type: bool

thumbprint:
    description:
    - The thumbprint of the private key specified in I(x509_certificate_path).
    - Use when authenticating with a Service Principal.
    - Required if I(x509_certificate_path) is defined.
    type: str
    version_added: 1.14.0
    version_added_collection: azure.azcollection

access_tier:
    choices:
    - Hot
    - Cool
    description:
    - The access tier for this storage account. Required when I(kind=BlobStorage).
    type: str

api_profile:
    default: latest
    description:
    - Selects an API profile to use when communicating with Azure services. Default value
      of C(latest) is appropriate for public clouds; future values will allow use with
      Azure Stack.
    type: str
    version_added: 0.0.1
    version_added_collection: azure.azcollection

append_tags:
    default: true
    description:
    - Use to control if tags field is canonical or just appends to existing tags.
    - When canonical, any tags not found in the tags parameter will be removed from the
      object's metadata.
    type: bool

auth_source:
    choices:
    - auto
    - cli
    - credential_file
    - env
    - msi
    default: auto
    description:
    - Controls the source of the credentials to use for authentication.
    - Can also be set via the C(ANSIBLE_AZURE_AUTH_SOURCE) environment variable.
    - When set to C(auto) (the default) the precedence is module parameters -> C(env)
      -> C(credential_file) -> C(cli).
    - When set to C(env), the credentials will be read from the environment variables
    - When set to C(credential_file), it will read the profile from C(~/.azure/credentials).
    - When set to C(cli), the credentials will be sources from the Azure CLI profile.
      C(subscription_id) or the environment variable C(AZURE_SUBSCRIPTION_ID) can be used
      to identify the subscription ID if more than one is present otherwise the default
      az cli subscription is used.
    - When set to C(msi), the host machine must be an azure resource with an enabled MSI
      extension. C(subscription_id) or the environment variable C(AZURE_SUBSCRIPTION_ID)
      can be used to identify the subscription ID if the resource is granted access to
      more than one subscription, otherwise the first subscription is chosen.
    - The C(msi) was added in Ansible 2.6.
    type: str
    version_added: 0.0.1
    version_added_collection: azure.azcollection

account_type:
    aliases:
    - type
    choices:
    - Premium_LRS
    - Standard_GRS
    - Standard_LRS
    - Standard_RAGRS
    - Standard_ZRS
    - Premium_ZRS
    - Standard_RAGZRS
    - Standard_GZRS
    description:
    - Type of storage account. Required when creating a storage account.
    - C(Standard_ZRS) and C(Premium_LRS) accounts cannot be changed to other account types.
    - Other account types cannot be changed to C(Standard_ZRS) or C(Premium_LRS).
    type: str

network_acls:
    description:
    - Manages the Firewall and virtual networks settings of the storage account.
    suboptions:
      bypass:
        default: AzureServices
        description:
        - When I(default_action=Deny) this controls which Azure components can still reach
          the Storage Account.
        - The list is comma separated.
        - It can be any combination of the example C(AzureServices), C(Logging), C(Metrics).
        - If no Azure components are allowed, explicitly set I(bypass="").
        type: str
      default_action:
        choices:
        - Allow
        - Deny
        default: Allow
        description:
        - Default firewall traffic rule.
        - If I(default_action=Allow) no other settings have effect.
        type: str
      ip_rules:
        description:
        - A list of IP addresses or ranges in CIDR format.
        elements: dict
        suboptions:
          action:
            default: Allow
            description:
            - The only logical I(action=Allow) because this setting is only accessible
              when I(default_action=Deny).
            type: str
          value:
            description:
            - The IP address or range.
            type: str
        type: list
      virtual_network_rules:
        description:
        - A list of subnets and their actions.
        elements: dict
        suboptions:
          action:
            default: Allow
            description:
            - The only logical I(action=Allow) because this setting is only accessible
              when I(default_action=Deny).
            type: str
          id:
            description:
            - The complete path to the subnet.
            type: str
        type: list
    type: dict

custom_domain:
    aliases:
    - custom_dns_domain_suffix
    description:
    - User domain assigned to the storage account.
    - Must be a dictionary with I(name) and I(use_sub_domain) keys where I(name) is the
      CNAME source.
    - Only one custom domain is supported per storage account at this time.
    - To clear the existing custom domain, use an empty string for the custom domain name
      property.
    - Can be added to an existing storage account. Will be ignored during storage account
      creation.
    type: dict

enable_nfs_v3:
    description:
    - NFS 3.0 protocol.
    type: bool

is_hns_enabled:
    description:
    - Account HierarchicalNamespace enabled if sets to true.
    - When I(is_hns_enabled=True), I(kind) cannot be C(Storage).
    type: bool

resource_group:
    aliases:
    - resource_group_name
    description:
    - Name of the resource group to use.
    required: true
    type: str

static_website:
    description:
    - Manage static website configuration for the storage account.
    suboptions:
      enabled:
        default: false
        description:
        - Indicates whether this account is hosting a static website.
        type: bool
      error_document404_path:
        description:
        - The absolute path of the custom 404 page.
        type: str
      index_document:
        description:
        - The default name of the index page under each directory.
        type: str
    type: dict
    version_added: 1.13.0
    version_added_collection: azure.azcollection

subscription_id:
    description:
    - Your Azure subscription Id.
    type: str

cloud_environment:
    default: AzureCloud
    description:
    - For cloud environments other than the US public cloud, the environment name (as
      defined by Azure Python SDK, eg, C(AzureChinaCloud), C(AzureUSGovernment)), or a
      metadata discovery endpoint URL (required for Azure Stack). Can also be set via
      credential file profile or the C(AZURE_CLOUD_ENVIRONMENT) environment variable.
    type: str
    version_added: 0.0.1
    version_added_collection: azure.azcollection

adfs_authority_url:
    description:
    - Azure AD authority url. Use when authenticating with Username/password, and has
      your own ADFS authority.
    type: str
    version_added: 0.0.1
    version_added_collection: azure.azcollection

minimum_tls_version:
    choices:
    - TLS1_0
    - TLS1_1
    - TLS1_2
    description:
    - The minimum required version of Transport Layer Security (TLS) for requests to a
      storage account.
    - If omitted, new account creation will default to null which is currently interpreted
      to TLS1_0. Existing accounts will not be modified.
    type: str
    version_added: 1.0.0
    version_added_collection: azure.azcollection

cert_validation_mode:
    choices:
    - ignore
    - validate
    description:
    - Controls the certificate validation behavior for Azure endpoints. By default, all
      modules will validate the server certificate, but when an HTTPS proxy is in use,
      or against Azure Stack, it may be necessary to disable this behavior by passing
      C(ignore). Can also be set via credential file profile or the C(AZURE_CERT_VALIDATION)
      environment variable.
    type: str
    version_added: 0.0.1
    version_added_collection: azure.azcollection

force_delete_nonempty:
    aliases:
    - force
    default: false
    description:
    - Attempt deletion if resource already exists and cannot be updated.
    type: bool

public_network_access:
    choices:
    - Enabled
    - Disabled
    description:
    - Allow or disallow public network access to Storage Account.
    type: str
    version_added: 1.12.0
    version_added_collection: azure.azcollection

x509_certificate_path:
    description:
    - Path to the X509 certificate used to create the service principal in PEM format.
    - The certificate must be appended to the private key.
    - Use when authenticating with a Service Principal.
    type: path
    version_added: 1.14.0
    version_added_collection: azure.azcollection

large_file_shares_state:
    choices:
    - Enabled
    - Disabled
    description:
    - Allow large file shares if sets to Enabled.
    type: str

allow_blob_public_access:
    description:
    - Allows blob containers in account to be set for anonymous public access.
    - If set to false, no containers in this account will be able to allow anonymous public
      access.
    - If omitted, new account creation will default to null which is currently interpreted
      to True. Existing accounts will not be modified.
    type: bool
    version_added: 1.1.0
    version_added_collection: azure.azcollection

disable_instance_discovery:
    default: false
    description:
    - Determines whether or not instance discovery is performed when attempting to authenticate.
      Setting this to true will completely disable both instance discovery and authority
      validation. This functionality is intended for use in scenarios where the metadata
      endpoint cannot be reached such as in private clouds or Azure Stack. The process
      of instance discovery entails retrieving authority metadata from https://login.microsoft.com/
      to validate the authority. By setting this to **True**, the validation of the authority
      is disabled. As a result, it is crucial to ensure that the configured authority
      host is valid and trustworthy.
    - Set via credential file profile or the C(AZURE_DISABLE_INSTANCE_DISCOVERY) environment
      variable.
    type: bool
    version_added: 2.3.0
    version_added_collection: azure.azcollection

Outputs

state:
  contains:
    account_type:
      description:
      - Type of storage account.
      returned: always
      sample: Standard_RAGRS
      type: str
    allow_blob_public_access:
      description:
      - Public access to all blobs or containers in the storage account allowed or
        disallowed.
      returned: always
      sample: true
      type: bool
    custom_domain:
      contains:
        name:
          description:
          - CNAME source.
          returned: always
          sample: testaccount
          type: str
        use_sub_domain:
          description:
          - Whether to use sub domain.
          returned: always
          sample: true
          type: bool
      description:
      - User domain assigned to the storage account.
      returned: always
      type: complex
    enable_nfs_v3:
      description:
      - NFS 3.0 protocol.
      returned: always
      sample: false
      type: bool
    encryption:
      contains:
        key_source:
          description:
          - The encryption keySource (provider).
          returned: always
          sample: Microsoft.Storage
          type: str
        require_infrastructure_encryption:
          description:
          - A boolean indicating whether or not the service applies a secondary layer
            of encryption with platform managed keys for data at rest.
          returned: always
          sample: false
          type: bool
        services:
          contains:
            blob:
              description:
              - The encryption function of the blob storage service.
              returned: always
              sample:
                enabled: true
              type: dict
            file:
              description:
              - The encryption function of the file storage service.
              returned: always
              sample:
                enabled: true
              type: dict
            queue:
              description:
              - The encryption function of the queue storage service.
              returned: always
              sample:
                enabled: true
              type: dict
            table:
              description:
              - The encryption function of the table storage service.
              returned: always
              sample:
                enabled: true
              type: dict
          description:
          - List of services which support encryption.
          returned: always
          type: dict
      description:
      - The encryption settings on the storage account.
      returned: always
      type: complex
    failover_in_progress:
      description:
      - Status indicating the storage account is currently failing over to its secondary
        location.
      returned: always
      sample: false
      type: bool
    https_only:
      description:
      - Allows https traffic only to storage service when set to C(true).
      returned: always
      sample: false
      type: bool
    id:
      description:
      - Resource ID.
      returned: always
      sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/clh0003
      type: str
    is_hns_enabled:
      description:
      - Account HierarchicalNamespace enabled if sets to true.
      returned: always
      sample: true
      type: bool
    large_file_shares_state:
      description:
      - Allow large file shares if sets to Enabled.
      returned: always
      sample: Enabled
      type: str
    location:
      description:
      - Valid Azure location. Defaults to location of the resource group.
      returned: always
      sample: eastus2
      type: str
    minimum_tls_version:
      description:
      - The minimum TLS version permitted on requests to storage.
      returned: always
      sample: TLS1_2
      type: str
    name:
      description:
      - Name of the storage account to update or create.
      returned: always
      sample: clh0003
      type: str
    network_acls:
      description:
      - A set of firewall and virtual network rules
      returned: always
      sample:
        bypass: AzureServices
        default_action: Deny
        ip_rules:
        - action: Allow
          value: 1.2.3.4
        - action: Allow
          value: 123.234.123.0/24
        virtual_network_rules:
        - action: Allow
          id: /subscriptions/mySubscriptionId/resourceGroups/myResourceGroup/                                    providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet
      type: dict
    primary_endpoints:
      description:
      - The URLs to retrieve the public I(blob), I(queue), or I(table) object from
        the primary location.
      returned: always
      sample:
        blob: https://clh0003.blob.core.windows.net/
        queue: https://clh0003.queue.core.windows.net/
        table: https://clh0003.table.core.windows.net/
      type: dict
    primary_location:
      description:
      - The location of the primary data center for the storage account.
      returned: always
      sample: eastus2
      type: str
    provisioning_state:
      description:
      - The status of the storage account.
      - Possible values include C(Creating), C(ResolvingDNS), C(Succeeded).
      returned: always
      sample: Succeeded
      type: str
    public_network_access:
      description:
      - Public network access to Storage Account allowed or disallowed.
      returned: always
      sample: Enabled
      type: str
    resource_group:
      description:
      - The resource group's name.
      returned: always
      sample: Testing
      type: str
    secondary_endpoints:
      description:
      - The URLs to retrieve the public I(blob), I(queue), or I(table) object from
        the secondary location.
      returned: always
      sample:
        blob: https://clh0003-secondary.blob.core.windows.net/
        queue: https://clh0003-secondary.queue.core.windows.net/
        table: https://clh0003-secondary.table.core.windows.net/
      type: dict
    secondary_location:
      description:
      - The location of the geo-replicated secondary for the storage account.
      returned: always
      sample: centralus
      type: str
    static_website:
      contains:
        enabled:
          description:
          - Whether this account is hosting a static website.
          returned: always
          sample: true
          type: bool
        error_document404_path:
          description:
          - The absolute path of the custom 404 page.
          returned: always
          sample: error.html
          type: str
        index_document:
          description:
          - The default name of the index page under each directory.
          returned: always
          sample: index.html
          type: str
      description:
      - Static website configuration for the storage account.
      returned: always
      type: complex
      version_added: 1.13.0
      version_added_collection: azure.azcollection
    status_of_primary:
      description:
      - The status of the primary location of the storage account; either C(available)
        or C(unavailable).
      returned: always
      sample: available
      type: str
    status_of_secondary:
      description:
      - The status of the secondary location of the storage account; either C(available)
        or C(unavailable).
      returned: always
      sample: available
      type: str
    tags:
      description:
      - Resource tags.
      returned: always
      sample:
        tags1: value1
      type: dict
    type:
      description:
      - The storage account type.
      returned: always
      sample: Microsoft.Storage/storageAccounts
      type: str
  description:
  - Current state of the storage account.
  returned: always
  type: complex

See also