azure.azcollection.azure_rm_subscriptiondeployment module – Manage Azure Resource Manager template deployments at subscription scope
Note
This module is part of the azure.azcollection collection (version 4.2.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install azure.azcollection.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: azure.azcollection.azure_rm_subscriptiondeployment.
New in azure.azcollection 4.2.0
Synopsis
Create, update and delete an Azure Resource Manager (ARM) template deployment at subscription scope.
Use azure.azcollection.azure_rm_deployment for template deployments scoped to a resource group.
Subscription-scope deployments always use the
Incrementaldeployment mode.Deleting a deployment removes only the deployment record. Resources created by the template are not deleted.
The module waits for the deployment to finish. Use the Ansible
asynckeyword to run long deployments in the background.
Requirements
The below requirements are needed on the host that executes this module.
python >= 2.7
The host that executes this module must have the azure.azcollection collection installed via galaxy
All python packages listed in collection’s requirements.txt must be installed via pip on the host that executes modules from azure.azcollection
Full installation instructions may be found https://galaxy.ansible.com/azure/azcollection
Parameters
Parameter |
Comments |
|---|---|
Active Directory username. Use when authenticating with an Active Directory user rather than service principal. |
|
Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority. |
|
Selects an API profile to use when communicating with Azure services. Default value of Default: |
|
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. Choices:
|
|
Controls the source of the credentials to use for authentication. Can also be set via the When set to When set to When set to When set to When set to The Choices:
|
|
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 Choices:
|
|
Azure client ID. Use when authenticating with a Service Principal or Managed Identity (msi). Can also be set via the |
|
For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, Default: |
|
The debug setting of the deployment. If not set, the existing debug setting of the deployment is kept when it is updated. |
|
The type of information to log for debugging. Permitted values are Azure defaults to Logging request or response content may expose sensitive data retrieved through the deployment operations. |
|
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 Choices:
|
|
Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. Azure defaults to the outer scope when not set. Not returned by Azure, so it cannot be kept from the existing deployment. Set it on every run that relies on it. Changing only this option does not trigger a redeployment. |
|
The scope used to evaluate parameters, variables and functions in a nested template. Choices:
|
|
The location to store the deployment data. Required when state=present. The location of an existing deployment cannot be changed. |
|
Parent argument. |
|
Parent argument. |
|
The name of the deployment. |
|
Direct OpenID Connect (OIDC) token (JWT) used for workload identity authentication. This token is exchanged with Azure AD using OIDC federated identity. Useful in CI systems (for example GitHub Actions, Azure DevOps) where an OIDC token is provided directly by the platform. Can also be set via the |
|
Path to a file containing an OpenID Connect (OIDC) token (JWT) used for workload identity authentication. The file must contain only raw token. This method is commonly used in platforms that materialize OIDC tokens as files Can also be set via the |
|
The deployment to run when this deployment fails. If not set, the existing on error behavior of the deployment is kept when it is updated. Set to an empty dictionary to remove an existing on error behavior. |
|
The deployment to use when type=SpecificDeployment. |
|
The deployment on error behavior. Choices:
|
|
The deployment parameters, as a dictionary of parameter name to parameter definition. A JSON string is also accepted. Each parameter definition is a dictionary with either a A Parameters of type Only parameters set in parameters are compared. Removing a parameter so that the template default applies does not trigger a redeployment. Values are visible in task output and logs. Pass secret values in secure_parameters or as Key Vault references instead. Mutually exclusive with parameters_link. |
|
Reference to a parameters file. Mutually exclusive with parameters. |
|
If set, must match the |
|
The URI of the parameters file. |
|
Active Directory user password. Use when authenticating with an Active Directory user rather than service principal. |
|
Security profile found in ~/.azure/credentials file. |
|
Azure client secret. Use when authenticating with a Service Principal. |
|
Deployment parameters that hold secret values, in the same format as parameters. Merged with parameters when deploying. Values are hidden from task output and logs. Not compared when deciding whether to redeploy for parameters of type A parameter name cannot be set in both parameters and secure_parameters. Mutually exclusive with parameters_link. |
|
Assert the state of the deployment. Use Choices:
|
|
Your Azure subscription Id. |
|
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. |
|
The template content, as a dictionary. A JSON string is also accepted. Mutually exclusive with template_link. One of template or template_link is required when state=present. |
|
Reference to the template to deploy. Mutually exclusive with template. |
|
If set, must match the |
|
The resource ID of a template spec version to deploy. Mutually exclusive with uri. One of uri or id is required. |
|
The query string, for example a SAS token, to use with uri. Not compared when deciding whether to redeploy. |
|
Deploys a linked template at a location relative to the parent template. If the parent template was linked with a template spec, this references an artifact in the template spec. If the parent template was linked with a URI, the child deployment combines the parent URI and relative_path. |
|
The URI of the template to deploy. Mutually exclusive with id. One of uri or id is required. |
|
Azure tenant ID. Use when authenticating with a Service Principal. |
|
The thumbprint of the private key specified in x509_certificate_path. Use when authenticating with a Service Principal. Required if x509_certificate_path is defined. |
|
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. |
Notes
Note
For authentication with Azure you can pass parameters, set environment variables, use a profile stored in ~/.azure/credentials, or log in before you run your tasks or playbook with
az login.Authentication is also possible using a service principal or Active Directory user.
To authenticate via OIDC, pass client_id, tenant and oidc_token or oidc_token_file_path, or set environment variables AZURE_CLIENT_ID, AZURE_TENANT and AZURE_FEDERATED_TOKEN or AZURE_FEDERATED_TOKEN_FILE.
To authenticate via service principal, pass subscription_id, client_id, secret and tenant or set environment variables AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET and AZURE_TENANT.
To authenticate via Active Directory user, pass ad_user and password, or set AZURE_AD_USER and AZURE_PASSWORD in the environment.
Alternatively, credentials can be stored in ~/.azure/credentials. This is an ini file containing a [default] section and the following keys: subscription_id, client_id, secret and tenant or subscription_id, ad_user and password. It is also possible to add additional profiles. Specify the profile by passing profile or setting AZURE_PROFILE in the environment.
See Also
See also
- Sign in with Azure CLI
How to authenticate using the
az logincommand.
Examples
- name: Deploy a subscription-scope template that creates a resource group
azure.azcollection.azure_rm_subscriptiondeployment:
name: create-rg-deployment
location: eastus
template:
$schema: "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#"
contentVersion: "1.0.0.0"
parameters:
rgName:
type: string
resources:
- type: Microsoft.Resources/resourceGroups
apiVersion: "2022-09-01"
name: "[parameters('rgName')]"
location: eastus
parameters:
rgName:
value: myResourceGroup
tags:
environment: test
- name: Deploy a linked template with a Key Vault secret reference parameter
azure.azcollection.azure_rm_subscriptiondeployment:
name: linked-template-deployment
location: eastus
template_link:
uri: https://example.com/templates/azuredeploy.json
parameters:
adminPassword:
reference:
keyVault:
id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myVault
secretName: adminPassword
- name: Delete a subscription-scope deployment
azure.azcollection.azure_rm_subscriptiondeployment:
name: create-rg-deployment
state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
The current state of the deployment. Returned: when state=present and the deployment exists |
|
The resource ID of the deployment. Returned: always Sample: |
|
The location of the deployment data. Returned: always Sample: |
|
The name of the deployment. Returned: always Sample: |
|
The deployment properties. Returned: always |
|
The correlation ID of the deployment. Returned: always Sample: |
|
The debug setting of the deployment. Returned: when set Sample: |
|
The list of deployment dependencies. Returned: always Sample: |
|
The duration of the template deployment. Returned: always Sample: |
|
The deployment error. Returned: when the deployment failed Sample: |
|
The deployment mode. Returned: always Sample: |
|
The deployment on error behavior. Returned: when set Sample: |
|
The list of resources created by the deployment. Returned: always Sample: |
|
The outputs of the deployment. Returned: when the template defines outputs Sample: |
|
The deployment parameters, including their types. Values of secure parameters are not returned. Returned: always Sample: |
|
The reference to the parameters file. Returned: when the deployment uses a parameters file Sample: |
|
The list of resource providers needed for the deployment. Returned: always Sample: |
|
The provisioning state of the deployment. Returned: always Sample: |
|
The hash produced for the template. Returned: always Sample: |
|
The reference to the deployed template. Returned: when the deployment uses a linked template Sample: |
|
The timestamp of the template deployment. Returned: always Sample: |
|
The tags of the deployment. Returned: always Sample: |
|
The resource type. Returned: always Sample: |