Note

Ce plugin fait partie du programme collection azure.azcollection (version 1.4.0).

Pour l'installer, utilisez : ansible-galaxy collection install azure.azcollection.

Pour l'utiliser dans un playbook, spécifiez : azure.azcollection.azure_rm_deployment.

Nouveau dans la version 0.1.0 : de azure.azcollection

  • Synopsis
  • Exigences
  • Paramètres
  • Notes
  • Voir aussi
  • Exemples
  • Valeurs de retour

Synopsis

Exigences

Les exigences ci-dessous sont nécessaires sur l'hôte qui exécute ce module.

  • python >= 2.7
  • azure >= 2.0.0

Paramètres

Paramètre Choix/par défaut Commentaires
ad_userchaîne de caractères Nom d'utilisateur Active Directory. A utiliser lors de l'authentification avec un utilisateur Active Directory plutôt qu'avec un principal de service.
adfs_authority_urlchaîne de caractères ajouté dans la version 0.0.1 de azure.azcollection Url de l'autorité Azure AD. A utiliser lors de l'authentification avec nom d'utilisateur/mot de passe, et a votre propre autorité ADFS.
api_profilechaîne de caractères ajouté dans la version 0.0.1 de azure.azcollection Par défaut :
"dernier"
Sélectionne un profil d'API à utiliser lors de la communication avec les services Azure. Valeur par défaut de latest est appropriée pour les clouds publics ; les valeurs futures permettront une utilisation avec Azure Stack.
append_tagsbooléen
    Choix :

  • pas de
  • oui
Utiliser pour contrôler si le champ tags est canonique ou s'ajoute simplement aux tags existants.Lorsqu'il est canonique, tous les tags non trouvés dans le paramètre tags seront supprimés des métadonnées de l'objet.
auth_sourcechaîne de caractères ajouté dans la version 0.0.1 de azure.azcollection
    Choix :

  • auto
  • cli
  • fichier d'identification
  • env
  • msi
Contrôle la source des informations d'identification à utiliser pour l'authentification.Peut également être défini via le paramètre ANSIBLE_AZURE_AUTH_SOURCE Lorsqu'elle est définie sur auto (la valeur par défaut), la priorité est accordée aux paramètres du module ->. env -> credential_file -> cliLorsqu'il est réglé sur envles informations d'identification seront lues à partir des variables d'environnement. credential_file, le profil sera lu à partir de ~/.azure/credentials.Lorsqu'il a pour valeur cli, les informations d'identification seront des sources du profil Azure CLI. subscription_id ou de la variable d'environnement AZURE_SUBSCRIPTION_ID peut être utilisée pour identifier l'ID de l'abonnement si plus d'un est présent sinon l'abonnement az cli par défaut est utilisé.Lorsqu'elle est définie sur msi, la machine hôte doit être une ressource azure avec une extension MSI activée. subscription_id ou la variable d'environnement AZURE_SUBSCRIPTION_ID peut être utilisée pour identifier l'ID de l'abonnement si la ressource a accès à plus d'un abonnement, sinon le premier abonnement est choisi.La variable d'environnement msi a été ajouté dans Ansible 2.6.
cert_validation_modechaîne de caractères ajouté dans la version 0.0.1 de azure.azcollection
    Choix :

  • ignorer
  • valider
Contrôle le comportement de validation du certificat pour les points de terminaison Azure. Par défaut, tous les modules valideront le certificat du serveur, mais lorsqu'un proxy HTTPS est utilisé, ou contre Azure Stack, il peut être nécessaire de désactiver ce comportement en passant. ignore. Peut également être défini via le profil du fichier d'accréditation ou l'attribut AZURE_CERT_VALIDATION variable d'environnement.
client_idchaîne de caractères ID du client Azure. À utiliser lors de l'authentification avec un principal de service.
cloud_environnementchaîne de caractères ajouté dans la version 0.0.1 de azure.azcollection Par défaut :
"AzureCloud"
Pour les environnements de cloud autres que le cloud public américain, le nom de l'environnement (tel que défini par Azure Python SDK, par ex, AzureChinaCloud, AzureUSGovernment), ou une URL de point de terminaison de découverte de métadonnées (nécessaire pour Azure Stack). Peut également être défini via le profil du fichier d'accréditation ou le profil de l'utilisateur. AZURE_CLOUD_ENVIRONMENT variable d'environnement.
mode_de_déploiementchaîne de caractères
    Choix :

  • complet
  • incrémentielle
En mode incrémental, les ressources sont déployées sans supprimer les ressources existantes qui ne sont pas incluses dans le modèle.En mode complet, les ressources sont déployées et les ressources existantes du groupe de ressources qui ne sont pas incluses dans le modèle sont supprimées.
emplacementchaîne de caractères Par défaut :
"westus"
Les géolocalisations dans lesquelles le groupe de ressources sera situé.
nomchaîne de caractères Par défaut :
"ansible-arm"
Le nom du déploiement à suivre dans l'historique de déploiement du groupe de ressources.La réutilisation d'un nom de déploiement écrasera la valeur précédente dans l'historique de déploiement du groupe de ressources.
alias : nom_du_déploiement
paramètresdictionnaire Un hachage de toutes les variables de modèle requises pour le modèle de déploiement. Ce paramètre est mutuellement exclusif avec lien_paramètres Soit paramètres_lien ou paramètres est nécessaire si state=présent.
lien_paramètreschaîne de caractères Uri du fichier contenant le corps des paramètres. Ce paramètre est mutuellement exclusif avec paramètres.soit paramètres_lien ou paramètres est nécessaire si state=présent.
mot de passechaîne de caractères Mot de passe de l'utilisateur Active Directory. A utiliser lors de l'authentification avec un utilisateur Active Directory plutôt qu'avec un principal de service.
profilchaîne de caractères Profil de sécurité trouvé dans le fichier ~/.azure/credentials.
groupe_ressourceschaîne de caractères / obligatoire Le nom du groupe de ressources à utiliser ou à créer pour héberger le modèle déployé.
alias : nom_groupe_ressource
secretchaîne de caractères Secret du client Azure. À utiliser lors de l'authentification avec un principal de service.
étatchaîne de caractères
    Choix :

  • présent
  • absent
Si état=présent le modèle sera créé. state=present et que le déploiement existe, il sera mis à jour.Si state=absent, le groupe de ressources sera supprimé.
abonnement_idchaîne de caractères Votre identifiant d'abonnement Azure.
balisesdictionnaire Dictionnaire de paires chaîne:chaîne à affecter comme métadonnées à l'objet.Les balises de métadonnées sur l'objet seront mises à jour avec toutes les valeurs fournies.Pour supprimer les balises, définissez l'option append_tags sur false.
modèledictionnaire Un hachage contenant les modèles en ligne. Ce paramètre est mutuellement exclusif avec modèle_lien.Soit modèle ou modèle_lien est nécessaire si state=present.
lien_modèlechaîne de caractères Uri du fichier contenant le corps du modèle. Ce paramètre est mutuellement exclusif avec modèle.soit modèle ou modèle_lien est nécessaire si state=present.
locatairechaîne de caractères ID du locataire Azure. À utiliser lors de l'authentification avec un principal de service.
attendre_pour_le_déploiement_complémentairebooléen
    Choix :

  • pas de
  • oui
Blocage ou non jusqu'à ce que le déploiement soit terminé.
attente_pour_le_déploiement_période_de_pollingchaîne de caractères Par défaut :
10
Temps (en secondes) à attendre entre les sondages en attendant la fin du déploiement.

Notes

Note

  • Pour l'authentification avec Azure, vous pouvez passer des paramètres, définir des variables d'environnement, utiliser un profil stocké dans ~/.azure/credentials, ou vous connecter avant d'exécuter vos tâches ou votre playbook avec... az login.
  • L'authentification est également possible en utilisant un principal de service ou un utilisateur Active Directory.
  • Pour s'authentifier via un principal de service, passez le subscription_id, le client_id, le secret et le locataire ou définissez les variables d'environnement AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET et AZURE_TENANT.
  • Pour s'authentifier via un utilisateur Active Directory, passez ad_user et password, ou définissez AZURE_AD_USER et AZURE_PASSWORD dans l'environnement.
  • Alternativement, les informations d'identification peuvent être stockées dans ~/.azure/credentials. Il s'agit d'un fichier ini contenant un [default] et les clés suivantes : subscription_id, client_id, secret et tenant ou subscription_id, ad_user et password. Il est également possible d'ajouter des profils supplémentaires. Spécifiez le profil en passant profil ou en définissant AZURE_PROFILE dans l'environnement.

Voir aussi

Voir aussi

Se connecter avec Azure CLI

Comment s'authentifier en utilisant le az login commande.

Exemples

# Destroy a template deployment-name: Destroy Azure Deploy
  azure_rm_deployment:resource_group: myResourceGroup
    name: myDeployment
    state: absent

# Create or update a template deployment based on uris using parameter and template links-name: Create Azure Deploy
  azure_rm_deployment:resource_group: myResourceGroup
    name: myDeployment
    template_link:'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.json'parameters_link:'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.parameters.json'# Create or update a template deployment based on a uri to the template and parameters specified inline.# This deploys a VM with SSH support for a given public key, then stores the result in 'azure_vms'. The result is then# used to create a new host group. This host group is then used to wait for each instance to respond to the public IP SSH.-name: Create Azure Deploy
  azure_rm_deployment:resource_group: myResourceGroup
    name: myDeployment
    parameters:newStorageAccountName:value: devopsclestorage1
      adminUsername:value: devopscle
      dnsNameForPublicIP:value: devopscleazure
      location:value: West US
      vmSize:value: Standard_A2
      vmName:value: ansibleSshVm
      sshKeyData:value: YOUR_SSH_PUBLIC_KEY
    template_link:'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-sshkey/azuredeploy.json'register: azure
-name: Add new instance to host group
  add_host:hostname:"{{ item['ips'][0].public_ip }}"groupname: azure_vms
  loop:"{{ azure.deployment.instances }}"# Deploy an Azure WebApp running a hello world'ish node app-name: Create Azure WebApp Deployment at http://devopscleweb.azurewebsites.net/hello.js
  azure_rm_deployment:resource_group: myResourceGroup
    name: myDeployment
    parameters:repoURL:value:'https://github.com/devigned/az-roadshow-oss.git'siteName:value: devopscleweb
      hostingPlanName:value: someplan
      siteLocation:value: westus
      sku:value: Standard
    template_link:'https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-web-app-github-deploy/azuredeploy.json'# Create or update a template deployment based on an inline template and parameters-name: Create Azure Deploy
  azure_rm_deployment:resource_group: myResourceGroup
    name: myDeployment
    template:$schema:"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#"contentVersion:"1.0.0.0"parameters:newStorageAccountName:type:"string"metadata:description:"Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed."adminUsername:type:"string"metadata:description:"User name for the Virtual Machine."adminPassword:type:"securestring"metadata:description:"Password for the Virtual Machine."dnsNameForPublicIP:type:"string"metadata:description:"Unique DNS Name for the Public IP used to access the Virtual Machine."ubuntuOSVersion:type:"string"defaultValue:"14.04.2-LTS"allowedValues:-"12.04.5-LTS"-"14.04.2-LTS"-"15.04"metadata:description:>
                         The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version.
                         Allowed values: 12.04.5-LTS, 14.04.2-LTS, 15.04."variables:location:"West US"imagePublisher:"Canonical"imageOffer:"UbuntuServer"OSDiskName:"osdiskforlinuxsimple"nicName:"myVMNic"addressPrefix:"192.0.2.0/24"subnetName:"Subnet"subnetPrefix:"10.0.0.0/24"storageAccountType:"Standard_LRS"publicIPAddressName:"myPublicIP"publicIPAddressType:"Dynamic"vmStorageAccountContainerName:"vhds"vmName:"MyUbuntuVM"vmSize:"Standard_D1"virtualNetworkName:"MyVNET"vnetID:"[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]"subnetRef:"[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]"resources:-type:"Microsoft.Storage/storageAccounts"name:"[parameters('newStorageAccountName')]"apiVersion:"2015-05-01-preview"location:"[variables('location')]"properties:accountType:"[variables('storageAccountType')]"-apiVersion:"2015-05-01-preview"type:"Microsoft.Network/publicIPAddresses"name:"[variables('publicIPAddressName')]"location:"[variables('location')]"properties:publicIPAllocationMethod:"[variables('publicIPAddressType')]"dnsSettings:domainNameLabel:"[parameters('dnsNameForPublicIP')]"-type:"Microsoft.Network/virtualNetworks"apiVersion:"2015-05-01-preview"name:"[variables('virtualNetworkName')]"location:"[variables('location')]"properties:addressSpace:addressPrefixes:-"[variables('addressPrefix')]"subnets:-name:"[variables('subnetName')]"properties:addressPrefix:"[variables('subnetPrefix')]"-type:"Microsoft.Network/networkInterfaces"apiVersion:"2015-05-01-preview"name:"[variables('nicName')]"location:"[variables('location')]"dependsOn:-"[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]"-"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"properties:ipConfigurations:-name:"ipconfig1"properties:privateIPAllocationMethod:"Dynamic"publicIPAddress:id:"[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"subnet:id:"[variables('subnetRef')]"-type:"Microsoft.Compute/virtualMachines"apiVersion:"2015-06-15"name:"[variables('vmName')]"location:"[variables('location')]"dependsOn:-"[concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName'))]"-"[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"properties:hardwareProfile:vmSize:"[variables('vmSize')]"osProfile:computername:"[variables('vmName')]"adminUsername:"[parameters('adminUsername')]"adminPassword:"[parameters('adminPassword')]"storageProfile:imageReference:publisher:"[variables('imagePublisher')]"offer:"[variables('imageOffer')]"sku:"[parameters('ubuntuOSVersion')]"version:"latest"osDisk:name:"osdisk"vhd:uri:>
                       [concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',
                       variables('OSDiskName'),'.vhd')]caching:"ReadWrite"createOption:"FromImage"networkProfile:networkInterfaces:-id:"[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"diagnosticsProfile:bootDiagnostics:enabled:"true"storageUri:"[concat('http://',parameters('newStorageAccountName'),'.blob.core.windows.net')]"parameters:newStorageAccountName:value: devopsclestorage
      adminUsername:value: devopscle
      adminPassword:value: Password1!dnsNameForPublicIP:value: devopscleazure

Valeurs de retour

Les valeurs de retour courantes sont documentées ici, les champs suivants sont uniques à ce module :

Clé Renvoyé Description
déploiementcomplexe toujours Détails du déploiement.
nom_du_groupechaîne de caractères toujours Nom du groupe de ressources.
Exemple : monGroupeDeRessources
idchaîne de caractères toujours L'identifiant Azure du déploiement.
Exemple :/subscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myD eployment
instancesliste / elements=chaîne toujours Fournit les adresses IP publiques pour chaque instance de la VM.
ipsliste / elements=string toujours Liste des adresses IP publiques.
dns_settingscomplexe toujours Paramètres DNS.
nom_domaine_labelchaîne de caractères toujours Étiquette du nom de domaine.
Exemple : mavirtualmachine
fqdnchaîne de caractères toujours Nom de domaine entièrement qualifié.
Exemple : mamachinevirtuelle.eastus2.cloudapp.azure.com
idchaîne de caractères toujours Identifiant de la ressource IP publique.
Echantillon :/souscriptions/xxxxxxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/p ublicIPAddresses/myPublicIP.
nomchaîne de caractères toujours Nom de la ressource IP publique.
Exemple : monPublicIP
public_ipchaîne de caractères toujours Valeur de l'adresse IP publique.
Exemple : 104.209.244.123
méthode_public_ip_allocation_méthodechaîne de caractères toujours Méthode d'attribution de l'IP publique.
Exemple : Dynamique
vm_namechaîne de caractères toujours Nom de la machine virtuelle.
Exemple : mavirtualmachine
nomchaîne de caractères toujours Nom du déploiement.
Exemple : monDéploiement
sortiescomplexe toujours Dictionnaire des sorties reçues du déploiement.
Exemple :{'hostname' : {'type' : 'String', 'value' : 'myvirtualmachine.eastus2.cloudapp.azure.com'}}

Auteurs

  • David Justice (@devigned)
  • Laurent Mazuel (@lmazuel)
  • Andre Price (@obsoleted)