Terraform 0.11

google_compute_instance_group_manager




terraform

google_compute_instance_group_manager

Google कंप्यूट इंजन इंस्टेंस ग्रुप मैनेजर API बनाता है और एक सामान्य इंस्टेंस टेम्पलेट से सजातीय कंप्यूटर इंजन वर्चुअल मशीन इंस्टेंस के पूल का प्रबंधन करता है। अधिक जानकारी के लिए, आधिकारिक दस्तावेज और API

उदाहरण शीर्ष स्तर के उदाहरण टेम्पलेट के साथ उपयोग

resource "google_compute_health_check" "autohealing" {
  name                = "autohealing-health-check"
  check_interval_sec  = 5
  timeout_sec         = 5
  healthy_threshold   = 2
  unhealthy_threshold = 10                         # 50 seconds

  http_health_check {
    request_path = "/healthz"
    port         = "8080"
  }
}

resource "google_compute_instance_group_manager" "appserver" {
  name = "appserver-igm"

  base_instance_name = "app"
  instance_template  = "${google_compute_instance_template.appserver.self_link}"
  update_strategy    = "NONE"
  zone               = "us-central1-a"

  target_pools = ["${google_compute_target_pool.appserver.self_link}"]
  target_size  = 2

  named_port {
    name = "customHTTP"
    port = 8888
  }

  auto_healing_policies {
    health_check      = "${google_compute_health_check.autohealing.self_link}"
    initial_delay_sec = 300
  }
}

उदाहरण कई संस्करणों के साथ उपयोग

resource "google_compute_instance_group_manager" "appserver" {
  name = "appserver-igm"

  base_instance_name = "app"
  update_strategy    = "NONE"
  zone               = "us-central1-a"

  target_size  = 5

  version {
    instance_template  = "${google_compute_instance_template.appserver.self_link}"
  }

  version {
    instance_template  = "${google_compute_instance_template.appserver-canary.self_link}"
    target_size {
      fixed = 1
    }
  }
}

तर्क संदर्भ

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

  • base_instance_name - (आवश्यक) इस समूह में इंस्टेंस के लिए उपयोग करने के लिए आधार इंस्टेंस नाम। मान एक मान्य RFC1035 नाम होना चाहिए। समर्थित वर्ण लोअरकेस अक्षर, संख्याएँ, और हाइफ़न (-) हैं। उदाहरणों को आधार उदाहरण के नाम पर एक हाइफ़न और एक यादृच्छिक चार-वर्ण स्ट्रिंग जोड़कर नाम दिया गया है।

  • instance_template - (वैकल्पिक) एक उदाहरण टेम्पलेट का पूरा URL जिसमें से सभी नए उदाहरण बनाए जाएंगे। version साथ संघर्ष ( documentation देखें)

  • version - (वैकल्पिक) इस उदाहरण समूह द्वारा प्रबंधित अनुप्रयोग संस्करण। प्रत्येक संस्करण एक विशिष्ट उदाहरण टेम्पलेट से संबंधित है, जो कैनरी रिलीज़ परिदृश्यों की अनुमति देता है। Inst_template के साथ विरोध। संरचना नीचे प्रलेखित है। सावधान रहें कि ठीक एक संस्करण में लक्ष्य आकार निर्दिष्ट नहीं होना चाहिए। इसका मतलब है कि लक्ष्य आकार वाले संस्करण सेटिंग का सम्मान करेंगे, और लक्ष्य आकार के बिना एक को सभी शेष इंस्टेंस (शीर्ष स्तर target_size - प्रत्येक संस्करण target_size) पर लागू किया जाएगा।

  • name - (आवश्यक) उदाहरण समूह प्रबंधक का नाम। 1-63 वर्ण लंबा होना चाहिए और RFC1035 का अनुपालन करना RFC1035 । समर्थित पात्रों में लोअरकेस अक्षर, संख्या और हाइफ़न शामिल हैं।

  • zone - (आवश्यक) वह ज़ोन जो इस समूह में इंस्टेंसेस में बनाया जाना चाहिए।

  • description - (वैकल्पिक) उदाहरण समूह प्रबंधक का एक वैकल्पिक पाठ्य विवरण।

  • named_port - (वैकल्पिक) नामित पोर्ट कॉन्फ़िगरेशन। कॉन्फ़िगरेशन पर विवरण के लिए नीचे दिया गया अनुभाग देखें।

  • project - (वैकल्पिक) उस परियोजना की आईडी जिसमें संसाधन है। यदि यह प्रदान नहीं किया जाता है, तो प्रदाता परियोजना का उपयोग किया जाता है।

  • update_strategy - (वैकल्पिक, डिफ़ॉल्ट "RESTART" ) यदि "RESTART" संसाधन को संशोधित किया गया है, तो "NONE" का मान किसी भी प्रबंधित इंस्टेंसेस को Terraform द्वारा पुनरारंभ होने से रोक देगा। "RESTART" का एक मान सभी उदाहरणों को एक साथ पुनः आरंभ करेगा। "ROLLING_UPDATE" को [बीटा सुविधा] के रूप में समर्थित किया गया है। "ROLLING_UPDATE" मान को सेट करने के लिए rolling_update_policy ब्लॉक की आवश्यकता होती है

  • target_size - (वैकल्पिक) इस प्रबंधित उदाहरण समूह के लिए चल रहे इंस्टेंस की लक्ष्य संख्या। इस मान को हमेशा स्पष्ट रूप से सेट किया जाना चाहिए जब तक कि यह संसाधन एक ऑटोस्कोलर से जुड़ा न हो, जिस स्थिति में इसे कभी सेट नहीं किया जाना चाहिए। चूक 0

  • target_pools - (वैकल्पिक) सभी लक्षित पूलों का पूरा URL जिसमें समूह में नए उदाहरण जोड़े गए हैं। लक्ष्य पूल विशेषता को अद्यतन करने से मौजूदा आवृत्तियों पर कोई प्रभाव नहीं पड़ता है।

  • wait_for_instances - (वैकल्पिक) लौटने से पहले सभी उदाहरणों को बनाने या अद्यतन करने के लिए प्रतीक्षा करें। ध्यान दें कि यदि यह सही पर सेट है और ऑपरेशन सफल नहीं होता है, तो Terraform तब तक कोशिश करता रहेगा जब तक कि यह समाप्त नहीं हो जाता।

  • auto_healing_policies - (वैकल्पिक, Beta ) इस प्रबंधित उदाहरण समूह के लिए ऑटोहलिंग नीतियां। आप केवल एक मान निर्दिष्ट कर सकते हैं। संरचना नीचे प्रलेखित है। अधिक जानकारी के लिए, आधिकारिक दस्तावेज देखें।

  • rolling_update_policy - (वैकल्पिक, Beta ) इस प्रबंधित उदाहरण समूह के लिए अद्यतन नीति। संरचना नीचे प्रलेखित है। अधिक जानकारी के लिए, आधिकारिक दस्तावेज और API

रोलिंग_अपडेट_पोलिश ब्लॉक सपोर्ट करता है:

rolling_update_policy{
  type = "PROACTIVE"
  minimal_action = "REPLACE"
  max_surge_percent = 20
  max_unavailable_fixed = 2
  min_ready_sec = 50
}
  • minimal_action - (आवश्यक) - एक उदाहरण पर न्यूनतम कार्रवाई की जानी चाहिए। मान्य मूल्य "RESTART" , "REPLACE"

  • type - (आवश्यक) - अद्यतन का प्रकार। मान्य मान "OPPORTUNISTIC" , "PROACTIVE"

  • max_surge_fixed - (वैकल्पिक), अधिकतम max_surge_fixed उदाहरण जो निर्दिष्ट लक्ष्य से ऊपर बनाई जा सकती हैं, अद्यतन प्रक्रिया के दौरान। max_surge_percent साथ max_surge_percent । यदि न तो सेट किया गया है, तो 1 में चूक

  • max_surge_percent - (वैकल्पिक), उदाहरणों की अधिकतम संख्या (प्रतिशत के रूप में परिकलित) जो अद्यतन प्रक्रिया के दौरान निर्दिष्ट लक्ष्य से ऊपर बनाई जा सकती है। max_surge_fixed साथ max_surge_fixed

  • max_unavailable_fixed - (वैकल्पिक), अद्यतन प्रक्रिया के दौरान उपलब्ध नहीं हो सकने वाले उदाहरणों की अधिकतम संख्या। max_unavailable_percent साथ max_unavailable_percent । यदि न तो सेट किया गया है, तो 1 में चूक

  • max_unavailable_percent - (वैकल्पिक), उदाहरणों की अधिकतम संख्या (प्रतिशत के रूप में परिकलित) जो अद्यतन प्रक्रिया के दौरान अनुपलब्ध हो सकते हैं। max_unavailable_fixed साथ max_unavailable_fixed

  • min_ready_sec - (वैकल्पिक), नव निर्मित इंस्टेंस उपलब्ध होने के बाद प्रतीक्षा करने के लिए न्यूनतम सेकंड की संख्या। यह मान सीमा [0, 3600] से होना चाहिए

Name_port block सपोर्ट करता है: (प्रत्येक नाम-पोर्ट के लिए एक named_port ब्लॉक शामिल करें)।

  • name - (आवश्यक) बंदरगाह का नाम।

  • port - (आवश्यक) पोर्ट संख्या।

ऑटो_हॉलिंग_पॉलिटरी ब्लॉक सपोर्ट करता है:

  • health_check - (आवश्यक) स्वास्थ्य जांच संसाधन जो ऑटोहिंग का संकेत देता है।

  • initial_delay_sec - (आवश्यक) सेकंड की संख्या जो प्रबंधित आवृत्ति समूह प्रतीक्षा करता है इससे पहले कि वह नए उदाहरणों या हाल ही में पुन: बनाए गए उदाहरणों के लिए ऑटोहलिंग नीतियों को लागू करता है। 0 से 3600 के बीच।

संस्करण ब्लॉक का समर्थन करता है:

version {
 name = "appserver-canary"
 instance_template = "${google_compute_instance_template.appserver-canary.self_link}"
 target_size {
   fixed = 1
 }
}
version {
 name = "appserver-canary"
 instance_template = "${google_compute_instance_template.appserver-canary.self_link}"
 target_size {
   percent = 20
 }
}
  • name - (आवश्यक) - संस्करण का नाम।

  • instance_template - (आवश्यक) - इंस्टेंट टेम्पलेट का पूरा URL जिसमें से इस संस्करण के सभी नए इंस्टेंसेस बनाए जाएंगे।

  • target_size - (वैकल्पिक) - सेटिंग्स के आधार पर निश्चित संख्या या प्रतिशत के रूप में गणना की गई उदाहरणों की संख्या। संरचना नीचे प्रलेखित है।

Target_size ब्लॉक समर्थन करता है:

  • fixed - (वैकल्पिक), इस संस्करण के लिए प्रबंधित उदाहरणों की संख्या। percent साथ संघर्ष।

  • percent - (वैकल्पिक), उदाहरणों की संख्या (प्रतिशत के रूप में गणना) जो इस संस्करण के लिए प्रबंधित हैं। fixed साथ संघर्ष।

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

ऊपर सूचीबद्ध तर्कों के अलावा, निम्नलिखित गणना की गई विशेषताएँ निर्यात की जाती हैं:

  • fingerprint - उदाहरण समूह प्रबंधक का फिंगरप्रिंट।

  • instance_group - प्रबंधक द्वारा बनाए गए इंस्टेंस समूह का पूर्ण URL।

  • self_link - निर्मित संसाधन का URL।

आयात

उदाहरण समूह प्रबंधकों को name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import google_compute_instance_group_manager.appserver appserver-igm