Terraform 0.11

google_compute_instance




terraform

google_compute_instance

GCE के भीतर VM आवृत्ति संसाधन का प्रबंधन करता है। अधिक जानकारी के लिए आधिकारिक दस्तावेज और API

उदाहरण उपयोग

resource "google_compute_instance" "default" {
  name         = "test"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  tags = ["foo", "bar"]

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-8"
    }
  }

  // Local SSD disk
  scratch_disk {
  }

  network_interface {
    network = "default"

    access_config {
      // Ephemeral IP
    }
  }

  metadata {
    foo = "bar"
  }

  metadata_startup_script = "echo hi > /test.txt"

  service_account {
    scopes = ["userinfo-email", "compute-ro", "storage-ro"]
  }
}

तर्क संदर्भ

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

  • boot_disk - (आवश्यक) उदाहरण के लिए बूट डिस्क। संरचना नीचे प्रलेखित है।

  • machine_type - (आवश्यक) बनाने के लिए मशीन का प्रकार।

    नोट: यदि आप आरंभिक निर्माण के बाद इस मान (VM को आकार बदलें) को अपडेट करना चाहते हैं, तो आपको allow_stopping_for_update को true सेट करना होगा।

    एक कस्टम प्रकार (जैसे विस्तारित मेमोरी) के साथ एक मशीन बनाने के लिए, 6 vCPU और 20GB RAM के लिए custom-VCPUS-MEM_IN_MB जैसे custom-6-20480 जैसे custom-6-20480 को प्रारूपित करें।

  • name - (आवश्यक) संसाधन के लिए एक अनूठा नाम, जीसीई द्वारा आवश्यक। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • network_interface - (आवश्यक) नेटवर्क उदाहरण के लिए संलग्न करने के लिए। यह कई बार निर्दिष्ट किया जा सकता है। संरचना नीचे प्रलेखित है।

  • allow_stopping_for_update - (वैकल्पिक) यदि सही है, तो Terraform को इसके गुणों को अद्यतन करने के लिए आवृत्ति को रोकने की अनुमति देता है। यदि आप किसी ऐसी प्रॉपर्टी को अपडेट करने की कोशिश करते हैं, जिसमें इस फील्ड को सेट किए बिना इंस्टेंस को रोकना हो, तो अपडेट फेल हो जाएगा।

  • attached_disk - (वैकल्पिक) उदाहरण के लिए संलग्न करने के लिए डिस्क की सूची। संरचना नीचे प्रलेखित है।

  • can_ip_forward - (वैकल्पिक) गैर-मिलान स्रोत या गंतव्य IP के साथ पैकेट भेजने और प्राप्त करने की अनुमति देना है या नहीं। यह असत्य को झुठलाता है।

  • create_timeout - (वैकल्पिक) इंस्टेंस बनाने के लिए मिनटों में कॉन्फ़िगर करने योग्य समयबाह्य। डिफ़ॉल्ट 4 मिनट है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • description - (वैकल्पिक) इस संसाधन का एक संक्षिप्त विवरण।

  • deletion_protection - (वैकल्पिक) इस उदाहरण पर विलोपन सुरक्षा सक्षम करें। झूठे की अवहेलना करता है। नोट: आपको संसाधन हटाने से पहले विलोपन सुरक्षा को अक्षम करना होगा (जैसे, terraform destroy माध्यम से), या उदाहरण को हटाया नहीं जा सकता है और टेराफ़ॉर्म रन सफलतापूर्वक पूरा नहीं होगा।

  • guest_accelerator - (वैकल्पिक) उदाहरण के लिए एक्सीलरेटर कार्ड के प्रकार और गिनती की सूची। नीचे दिए गए दस्तावेज़। नोट: GPU त्वरक केवल on_host_maintenance सेट किए गए on_host_maintenance विकल्प के साथ उपयोग किया जा सकता है।

  • labels - (वैकल्पिक) उदाहरण के लिए असाइन करने के लिए कुंजी / मान लेबल जोड़े का एक सेट।

  • metadata - (वैकल्पिक) मेटाडेटा कुंजी / मूल्य जोड़े उदाहरण के भीतर से उपलब्ध कराने के लिए।

  • metadata_startup_script - (वैकल्पिक) स्टार्टअप-स्क्रिप्ट मेटाडेटा कुंजी का उपयोग करने का एक विकल्प, इसके अलावा यह उदाहरण दिया जाता है कि अगर इसे बदला गया है तो इस प्रकार फिर से तैयार किया जा सकता है (इस प्रकार स्क्रिप्ट को फिर से चलाना)। यह स्टार्टअप-स्क्रिप्ट मेटाडेटा कुंजी को बनाए गए उदाहरण पर बदल देता है और इस प्रकार दो तंत्रों को एक साथ उपयोग करने की अनुमति नहीं है।

  • min_cpu_platform - (वैकल्पिक) VM उदाहरण के लिए एक न्यूनतम CPU मंच निर्दिष्ट करता है। लागू मूल्य CPU प्लेटफ़ॉर्म के अनुकूल नाम हैं, जैसे Intel Haswell या Intel Skylake । यहां देखें पूरी लिस्ट नोट : इस क्षेत्र को अपडेट करने के लिए allow_stopping_for_update को सही पर सेट किया जाना चाहिए।

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

  • scheduling - (वैकल्पिक) उपयोग करने के लिए शेड्यूलिंग रणनीति। इस कॉन्फ़िगरेशन विकल्प के बारे में अधिक जानकारी नीचे दी गई है।

  • scratch_disk - (वैकल्पिक) उदाहरण के लिए संलग्न करने के लिए स्क्रैच डिस्क। यह कई खरोंच डिस्क के लिए कई बार निर्दिष्ट किया जा सकता है। संरचना नीचे प्रलेखित है।

  • service_account - (वैकल्पिक) सेवा खाता उदाहरण के लिए संलग्न करने के लिए। संरचना नीचे प्रलेखित है। नोट : इस क्षेत्र को अपडेट करने के लिए allow_stopping_for_update को सही पर सेट किया जाना चाहिए।

  • tags - (वैकल्पिक) उदाहरण के लिए संलग्न करने के लिए टैग की एक सूची।

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

  • auto_delete - (वैकल्पिक) क्या डिस्क को हटाए जाने पर डिस्क स्वतः-हटा दी जाएगी। सत्य की अवहेलना।

  • device_name - (वैकल्पिक) नाम जिसके साथ संलग्न डिस्क /dev/disk/by-id/ तहत सुलभ होगी

  • disk_encryption_key_raw - (वैकल्पिक) एक 256-बिट ग्राहक-प्रदत्त एन्क्रिप्शन कुंजी , इस डिस्क को एन्क्रिप्ट करने के लिए RFC 4648 base64 में एन्कोडेड है।

  • initialize_params - (वैकल्पिक) नई डिस्क के लिए पैरामीटर जो नए उदाहरण के साथ बनाया जाएगा। या तो initialize_params या source सेट किया जाना चाहिए। संरचना नीचे प्रलेखित है।

  • source - (वैकल्पिक) संलग्न करने के लिए मौजूदा डिस्क (जैसे google_compute_disk द्वारा प्रबंधित) का नाम या स्वयं_लिंक।

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

  • size - (वैकल्पिक) गीगाबाइट में छवि का आकार। यदि निर्दिष्ट नहीं किया गया है, तो यह अपनी आधार छवि के आकार का वारिस करेगा।

  • type - (वैकल्पिक) जीसीई डिस्क प्रकार। Pd-standard या pd-ssd पर सेट किया जा सकता है।

  • image - (ऑप्शनल) वह इमेज जिससे यह डिस्क इनिशियलाइज़ की जाती है। यह एक हो सकता है: छवि का self_link , projects/{project}/global/images/{image} , projects/{project}/global/images/family/{family} , global/images/{image} , global/images/family/{family} , family/{family} , {project}/{family} , {project}/{image} , {family} , या {image} । यदि परिवार द्वारा संदर्भित किया जाता है, तो छवियों के नामों में परिवार का नाम शामिल होना चाहिए। यदि वे नहीं करते हैं, तो google_compute_image डेटा स्रोत का उपयोग करें। उदाहरण के लिए, छवि centos-6-v20180104 में इसका पारिवारिक नाम centos-6-v20180104 शामिल है। इन चित्रों को यहां पारिवारिक नाम से संदर्भित किया जा सकता है।

scratch_disk ब्लॉक सपोर्ट करता है:

  • interface - (वैकल्पिक) इस डिस्क को संलग्न करने के लिए उपयोग करने के लिए डिस्क इंटरफ़ेस; या तो SCSI या NVME। SCSI के लिए चूक।

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

  • source - (आवश्यक) इस उदाहरण को संलग्न करने के लिए डिस्क का नाम या स्वयं_लिंक।

  • device_name - (वैकल्पिक) वह नाम जिसके साथ संलग्न डिस्क /dev/disk/by-id/ तहत सुलभ होगी

  • mode - (वैकल्पिक) या तो "READ_ONLY" या "READ_WRITE", "READ_WRITE" को डिफॉल्ट करता है यदि आपके पास डेटा के साथ एक सतत डिस्क है जिसे आप कई उदाहरणों के बीच साझा करना चाहते हैं, तो इसे किसी भी पढ़ने-लिखने के उदाहरण से अलग करें और इसे एक या एक से संलग्न करें। केवल-पठन मोड में अधिक उदाहरण।

  • disk_encryption_key_raw - (वैकल्पिक) एक 256-बिट ग्राहक-प्रदत्त एन्क्रिप्शन कुंजी , इस डिस्क को एन्क्रिप्ट करने के लिए RFC 4648 base64 में एन्कोडेड है।

network_interface block सपोर्ट करता है:

  • network - (वैकल्पिक) इस इंटरफ़ेस को संलग्न करने के लिए नेटवर्क का नाम या स्वयं_लिंक। या तो network या subnetwork प्रदान किया जाना चाहिए।

  • subnetwork - (वैकल्पिक) इस इंटरफ़ेस को संलग्न करने के लिए subnetwork का नाम या self_link। सब- network उसी क्षेत्र में मौजूद होना चाहिए, जिसमें यह उदाहरण बनाया जाएगा। या तो network या सब- network प्रदान किया जाना चाहिए।

  • subnetwork_project - (वैकल्पिक) वह परियोजना जिसमें सबनेटवर्क संबंधित है। यदि सब-नेटवर्क्स एक self_link है, तो इस क्षेत्र को subnetwork self_link में परिभाषित प्रोजेक्ट के पक्ष में नजरअंदाज कर दिया जाता है। यदि subnetwork एक नाम है और यह फ़ील्ड प्रदान नहीं की गई है, तो प्रदाता प्रोजेक्ट का उपयोग किया जाता है।

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

  • access_config - (वैकल्पिक) एक्सेस कॉन्फ़िगरेशन, यानी आईपी जिसके माध्यम से इस उदाहरण को इंटरनेट के माध्यम से एक्सेस किया जा सकता है। यह सुनिश्चित करने के लिए कि इंटरनेट से पहुंच सुलभ नहीं है, इसका मतलब यह है कि ssh प्रावधान तब तक काम नहीं करेंगे जब तक कि आप चल रहे हैं जब तक कि Terraform इंस्टेंस के नेटवर्क पर ट्रैफ़िक नहीं भेज सकता (जैसे सुरंग के माध्यम से या क्योंकि यह उस नेटवर्क पर किसी अन्य क्लाउड इंस्टेंस पर चल रहा है) इस ब्लॉक को कई बार दोहराया जा सकता है।

  • alias_ip_range - (वैकल्पिक) इस नेटवर्क इंटरफ़ेस के लिए उपनाम आईपी रेंज की एक सरणी है। केवल सबनेट-मोड नेटवर्क पर नेटवर्क इंटरफेस के लिए निर्दिष्ट किया जा सकता है। नीचे दिए गए दस्तावेज़।

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

  • nat_ip - (वैकल्पिक) आईपी पता जो कि 1: 1 होगा उदाहरण के नेटवर्क आईपी से मैप किया गया। यदि नहीं दिया गया है, तो एक उत्पन्न किया जाएगा।

  • public_ptr_domain_name - (वैकल्पिक) सार्वजनिक PTR रिकॉर्ड के लिए DNS डोमेन नाम। इस फ़ील्ड को उदाहरण के लिए सेट करने के लिए, आपको डोमेन के स्वामी के रूप में सत्यापित होना चाहिए। डोमेन स्वामी के रूप में सत्यापित होने के लिए डॉक्स देखें।

  • network_tier - (वैकल्पिक) इस उदाहरण को कॉन्फ़िगर करने के लिए उपयोग किया जाने वाला नेटवर्किंग टियर । यह फ़ील्ड निम्न मान ले सकती है: प्रीमियम या मानक। यदि यह फ़ील्ड निर्दिष्ट नहीं है, तो इसे PREMIUM माना जाता है।

alias_ip_range block का समर्थन करता है:

  • ip_cidr_range - IP CIDR रेंज इस उर्फ ​​आईपी रेंज द्वारा प्रस्तुत की जाती है। यह IP CIDR श्रेणी निर्दिष्ट सबनेटवर्क से संबंधित होनी चाहिए और इसमें सिस्टम द्वारा आरक्षित IP पते या अन्य नेटवर्क इंटरफेस द्वारा उपयोग नहीं किया जा सकता है। यह श्रेणी एक एकल आईपी पता (जैसे 10.2.3.4), एक नेटमैस्क (जैसे / 24) या एक सीआईडीआर प्रारूप स्ट्रिंग (जैसे 10.1.2.0/24) हो सकती है।

  • subnetwork_range_name - (वैकल्पिक) subnetwork द्वितीयक श्रेणी नाम उस द्वितीयक श्रेणी को निर्दिष्ट करता है जिसमें से इस alias IP श्रेणी के लिए IP CIDR रेंज आवंटित की जाती है। यदि अनिर्दिष्ट छोड़ा गया है, तो सबनेटवर्क की प्राथमिक श्रेणी का उपयोग किया जाएगा।

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

  • email - (वैकल्पिक) सेवा खाता ई-मेल पता। यदि नहीं दिया गया है, तो डिफ़ॉल्ट Google कंप्यूट इंजन सेवा खाते का उपयोग किया जाता है। नोट : इस क्षेत्र को अपडेट करने के लिए allow_stopping_for_update को सही पर सेट किया जाना चाहिए।

  • scopes - (आवश्यक) सेवा scopes की एक सूची। OAuth2 URL और gcloud दोनों छोटे नाम समर्थित हैं। सभी क्लाउड एपीआई पर पूर्ण पहुंच की अनुमति देने के लिए, cloud-platform स्कोप का उपयोग करें। here scopes की एक पूरी सूची देखें। नोट : इस क्षेत्र को अपडेट करने के लिए allow_stopping_for_update को सही पर सेट किया जाना चाहिए।

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

  • preemptible - (वैकल्पिक) उदाहरण preemptible है।

  • on_host_maintenance - (वैकल्पिक) उदाहरण के लिए रखरखाव व्यवहार का वर्णन करता है। अधिक जानकारी के लिए MIGRATE या TERMINATE कर सकते हैं, here पढ़ें

  • automatic_restart - (वैकल्पिक) यह निर्दिष्ट करता है कि अगर इंस्टीट्यूट को कंप्यूट इंजन (उपयोगकर्ता नहीं) द्वारा समाप्त किया गया था तो उदाहरण को फिर से शुरू किया जाना चाहिए।

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

  • type (आवश्यक) - इस उदाहरण को उजागर करने के लिए त्वरक प्रकार संसाधन। उदा nvidia-tesla-k80

  • count (आवश्यक) - इस उदाहरण के सामने आने वाले अतिथि त्वरक कार्ड की संख्या।

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

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

आयात

उदाहरणों को project , zone और name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import google_compute_instance.default gcp-project/us-central1-a/test