Terraform 0.11

azurerm_virtual_machine_extension




terraform

azurerm_virtual_machine_extension

पोस्ट तैनाती कॉन्फ़िगरेशन प्रदान करने और स्वचालित कार्यों को चलाने के लिए एक वर्चुअल मशीन एक्सटेंशन का प्रबंधन करता है।

उदाहरण उपयोग

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

resource "azurerm_virtual_network" "test" {
  name                = "acctvn"
  address_space       = ["10.0.0.0/16"]
  location            = "West US"
  resource_group_name = "${azurerm_resource_group.test.name}"
}

resource "azurerm_subnet" "test" {
  name                 = "acctsub"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_network_name = "${azurerm_virtual_network.test.name}"
  address_prefix       = "10.0.2.0/24"
}

resource "azurerm_network_interface" "test" {
  name                = "acctni"
  location            = "West US"
  resource_group_name = "${azurerm_resource_group.test.name}"

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = "${azurerm_subnet.test.id}"
    private_ip_address_allocation = "dynamic"
  }
}

resource "azurerm_storage_account" "test" {
  name                     = "accsa"
  resource_group_name      = "${azurerm_resource_group.test.name}"
  location                 = "westus"
  account_tier             = "Standard"
  account_replication_type = "LRS"

  tags {
    environment = "staging"
  }
}

resource "azurerm_storage_container" "test" {
  name                  = "vhds"
  resource_group_name   = "${azurerm_resource_group.test.name}"
  storage_account_name  = "${azurerm_storage_account.test.name}"
  container_access_type = "private"
}

resource "azurerm_virtual_machine" "test" {
  name                  = "acctvm"
  location              = "West US"
  resource_group_name   = "${azurerm_resource_group.test.name}"
  network_interface_ids = ["${azurerm_network_interface.test.id}"]
  vm_size               = "Standard_A0"

  storage_image_reference {
    publisher = "Canonical"
    offer     = "UbuntuServer"
    sku       = "16.04-LTS"
    version   = "latest"
  }

  storage_os_disk {
    name          = "myosdisk1"
    vhd_uri       = "${azurerm_storage_account.test.primary_blob_endpoint}${azurerm_storage_container.test.name}/myosdisk1.vhd"
    caching       = "ReadWrite"
    create_option = "FromImage"
  }

  os_profile {
    computer_name  = "hostname"
    admin_username = "testadmin"
    admin_password = "Password1234!"
  }

  os_profile_linux_config {
    disable_password_authentication = false
  }

  tags {
    environment = "staging"
  }
}

resource "azurerm_virtual_machine_extension" "test" {
  name                 = "hostname"
  location             = "West US"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_machine_name = "${azurerm_virtual_machine.test.name}"
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"

  settings = <<SETTINGS
    {
        "commandToExecute": "hostname && uptime"
    }
SETTINGS

  tags {
    environment = "Production"
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) वर्चुअल मशीन एक्सटेंशन peering का नाम। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • location - (आवश्यक) वह स्थान जहाँ एक्सटेंशन बनाया जाता है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • resource_group_name - (आवश्यक) वर्चुअल नेटवर्क बनाने के लिए संसाधन समूह का नाम। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • virtual_machine_name - (आवश्यक) वर्चुअल मशीन का नाम। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • publisher - (आवश्यक) विस्तार के प्रकाशक, उपलब्ध प्रकाशकों को एज़्योर सीएलआई का उपयोग करके पाया जा सकता है।

  • type - (आवश्यक) किसी प्रकाशक के लिए उपलब्ध एक्सटेंशन का प्रकार, एज़्योर सीएलआई का उपयोग करके पाया जा सकता है।

  • type_handler_version - (आवश्यक) एक्सटेंशन के संस्करण का उपयोग करने के लिए निर्दिष्ट करता है, उपलब्ध संस्करण type_handler_version CLI का उपयोग करके पाया जा सकता है।

  • auto_upgrade_minor_version - (वैकल्पिक) निर्दिष्ट करता है कि क्या प्लेटफ़ॉर्म नवीनतम मामूली संस्करण अद्यतन को type_handler_version निर्दिष्ट करता है।

  • settings - (आवश्यक) सेटिंग्स एक्सटेंशन में चली गईं, ये एक स्ट्रिंग में JSON ऑब्जेक्ट के रूप में निर्दिष्ट हैं।

  • protected_settings - (वैकल्पिक) रक्षित_सुविधाएँ एक्सटेंशन में पास हो जाती हैं, सेटिंग्स की तरह, ये एक स्ट्रिंग में JSON ऑब्जेक्ट के रूप में निर्दिष्ट की जाती हैं।

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

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

  • id - वर्चुअल मशीन एक्सटेंशन आईडी।

आयात

वर्चुअल मशीन एक्सटेंशन का उपयोग resource id का उपयोग करके किया जा सकता है, जैसे

terraform import azurerm_virtual_machine_extension.test /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/myVM/extensions/hostname