Terraform 0.11

azurerm_template_deployment




terraform

azurerm_template_deployment

संसाधनों की एक टेम्पलेट परिनियोजन बनाएँ

उदाहरण उपयोग

resource "azurerm_resource_group" "test" {
  name     = "acctestRG-01"
  location = "West US"
}

resource "azurerm_template_deployment" "test" {
  name                = "acctesttemplate-01"
  resource_group_name = "${azurerm_resource_group.test.name}"

  template_body = <<DEPLOY
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    }
  },
  "variables": {
    "location": "[resourceGroup().location]",
    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'storage')]",
    "publicIPAddressName": "[concat('myPublicIp', uniquestring(resourceGroup().id))]",
    "publicIPAddressType": "Dynamic",
    "apiVersion": "2015-06-15",
    "dnsLabelPrefix": "terraform-acctest"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('storageAccountName')]",
      "apiVersion": "[variables('apiVersion')]",
      "location": "[variables('location')]",
      "properties": {
        "accountType": "[parameters('storageAccountType')]"
      }
    },
    {
      "type": "Microsoft.Network/publicIPAddresses",
      "apiVersion": "[variables('apiVersion')]",
      "name": "[variables('publicIPAddressName')]",
      "location": "[variables('location')]",
      "properties": {
        "publicIPAllocationMethod": "[variables('publicIPAddressType')]",
        "dnsSettings": {
          "domainNameLabel": "[variables('dnsLabelPrefix')]"
        }
      }
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}
DEPLOY

  # these key-value pairs are passed into the ARM Template's `parameters` block
  parameters {
    "storageAccountType" = "Standard_GRS"
  }

  deployment_mode = "Incremental"
}

output "storageAccountName" {
  value = "${azurerm_template_deployment.test.outputs["storageAccountName"]}"
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) टेम्पलेट परिनियोजन का नाम निर्दिष्ट करता है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • resource_group_name - (आवश्यक) संसाधन समूह का नाम जिसमें टेम्पलेट परिनियोजन बनाना है।
  • deployment_mode - (आवश्यक) उस मोड को निर्दिष्ट करता है जो संसाधनों को तैनात करने के लिए उपयोग किया जाता है। यह मान Incremental या Complete हो सकता है। ध्यान दें कि आप लगभग हमेशा यह चाहते हैं कि यह Incremental सेट हो जाए अन्यथा तैनाती टेम्पलेट के भीतर निर्दिष्ट सभी बुनियादी ढांचे को नष्ट कर देगी, और टेराफॉर्म को इसकी जानकारी नहीं होगी।
  • template_body - (वैकल्पिक) टेम्पलेट के लिए JSON परिभाषा निर्दिष्ट करता है।
  • parameters - (वैकल्पिक) नाम और मूल्य जोड़े को निर्दिष्ट करता है जो टेम्पलेट के लिए परिनियोजन मापदंडों को परिभाषित करते हैं।

  • parameters_body - (ऑप्शनल) एक मान्य एज़ुर जेन्सन पैरामीटर फ़ाइल निर्दिष्ट करता है जो परिनियोजन मापदंडों को परिभाषित करती है। इसमें KeyVault संदर्भ हो सकते हैं

संदर्भ संदर्भित करता है

निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - टेम्पलेट परिनियोजन आईडी।

  • outputs - समर्थित स्केलर आउटपुट प्रकार का एक नक्शा परिनियोजन (वर्तमान में, Azure टेम्प्लेट परिनियोजन के प्रकार स्ट्रिंग, Int और बूल के आउटपुट समर्थित हैं) से समर्थित हैं, और इसे स्ट्रिंग्स में कनवर्ट किया जाता है - अन्य को अनदेखा किया जाएगा) और .outputs["name"] का उपयोग करके एक्सेस किया जा सकता है। .outputs["name"]

ध्यान दें

टेरफॉर्म, एज़्योर द्वारा परिनियोजित टेम्पलेट का उपयोग करके बनाए गए व्यक्तिगत संसाधनों के बारे में नहीं जानता है और इसलिए इन संसाधनों को नष्ट करने के दौरान नष्ट नहीं कर सकता है। एक टेम्प्लेट परिनियोजन को नष्ट करने से संबद्ध परिनियोजन परिचालनों को हटा दिया जाता है, लेकिन परिनियोजन द्वारा बनाए गए Azure संसाधनों को नहीं हटाएगा। इन संसाधनों को हटाने के लिए, युक्त संसाधन समूह को भी नष्ट करना होगा। अधिक जानकारी