Terraform 0.11

aws_launch_template




terraform

aws_launch_template

EC2 लॉन्च टेम्प्लेट संसाधन प्रदान करता है। उदाहरण या ऑटो स्केलिंग समूह बनाने के लिए इस्तेमाल किया जा सकता है।

उदाहरण उपयोग

resource "aws_launch_template" "foo" {
  name = "foo"

  block_device_mappings {
    device_name = "/dev/sda1"
    ebs {
      volume_size = 20
    }
  }

  credit_specification {
    cpu_credits = "standard"
  }

  disable_api_termination = true

  ebs_optimized = true

  elastic_gpu_specifications {
    type = "test"
  }

  iam_instance_profile {
    name = "test"
  }

  image_id = "ami-test"

  instance_initiated_shutdown_behavior = "terminate"

  instance_market_options {
    market_type = "spot"
  }

  instance_type = "t2.micro"

  kernel_id = "test"

  key_name = "test"

  monitoring {
    enabled = true
  }

  network_interfaces {
    associate_public_ip_address = true
  }

  placement {
    availability_zone = "us-west-2a"
  }

  ram_disk_id = "test"

  vpc_security_group_ids = ["sg-12345678"]

  tag_specifications {
    resource_type = "instance"
    tags {
      Name = "test"
    }
  }
}

तर्क संदर्भ

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

  • name - लॉन्च टेम्पलेट का नाम। यदि आप इसे खाली छोड़ देते हैं, तो Terraform एक अद्वितीय नाम स्वतः उत्पन्न करेगा।
  • name_prefix - निर्दिष्ट उपसर्ग के साथ शुरुआत करने वाला एक अद्वितीय नाम बनाता है। name साथ संघर्ष।
  • description - लॉन्च टेम्पलेट का विवरण।
  • block_device_mappings - AMI द्वारा निर्दिष्ट संस्करणों के अलावा उदाहरण के लिए वॉल्यूम संलग्न करने के लिए निर्दिष्ट करें। विवरण के लिए नीचे ब्लॉक डिवाइस देखें।
  • credit_specification - उदाहरण के क्रेडिट विनिर्देश को अनुकूलित करें। अधिक विवरण के लिए नीचे क्रेडिट विशिष्टता देखें।
  • disable_api_termination - यदि true , EC2 इंस्टेंस समाप्ति सुरक्षा सक्षम करता है
  • ebs_optimized - यदि true , तो लॉन्च किया गया EC2 उदाहरण ebs_optimized अनुकूलित होगा।
  • elastic_gpu_specifications - उदाहरण के लिए संलग्न करने के लिए लोचदार GPU। अधिक जानकारी के लिए नीचे इलास्टिक जीपीयू देखें।
  • iam_instance_profile - उदाहरण के साथ लॉन्च करने के लिए IAM इंस्टेंस प्रोफाइल। अधिक विवरण के लिए नीचे दिए गए इंस्टेंस प्रोफाइल देखें।
  • image_id - एएमआई जिसमें से उदाहरण लॉन्च करना है।
  • instance_initiated_shutdown_behavior - instance_initiated_shutdown_behavior शटडाउन व्यवहार। stop या terminate किया जा सकता है। (डिफ़ॉल्ट: stop )।
  • instance_market_options - instance_market_options बाजार (खरीद) विकल्प। विवरण के लिए नीचे दिए गए बाज़ार विकल्प देखें।
  • instance_type - instance_type का प्रकार।
  • kernel_id - कर्नेल आईडी।
  • key_name - उदाहरण के लिए उपयोग करने के लिए महत्वपूर्ण नाम।
  • monitoring - उदाहरण के लिए निगरानी विकल्प। अधिक जानकारी के लिए नीचे monitoring देखें।
  • network_interfaces - उदाहरण के समय बूट में संलग्न होने के लिए नेटवर्क इंटरफेस को अनुकूलित करें। अधिक विवरण के लिए नीचे नेटवर्क इंटरफेस देखें।
  • placement - उदाहरण की नियुक्ति। अधिक विवरण के लिए नीचे दिया गया placement देखें।
  • ram_disk_id - RAM डिस्क की आईडी।
  • security_group_names - साथ संबद्ध करने के लिए सुरक्षा समूह नामों की एक सूची। यदि आप VPC में इंस्टेंस बना रहे हैं, vpc_security_group_ids इसके बजाय vpc_security_group_ids उपयोग करें।
  • vpc_security_group_ids - के साथ संबद्ध करने के लिए सुरक्षा समूह आईडी की एक सूची।
  • tag_specifications - लॉन्च के दौरान संसाधनों पर लागू होने वाला टैग। अधिक विवरण के लिए नीचे Tags देखें।
  • Tags - (वैकल्पिक) लॉन्च टेम्प्लेट को असाइन करने के लिए टैग की मैपिंग।
  • user_data - user_data 64-एन्कोडेड उपयोगकर्ता डेटा को लॉन्च करते समय प्रदान करता है।

उपकरणों को ब्लॉक करें

एएमआई द्वारा निर्दिष्ट के अलावा उदाहरण के अतिरिक्त संस्करणों को कॉन्फ़िगर करें। इन विशेषताओं का उपयोग करने के निहितार्थ को समझने के लिए एडब्ल्यूएस के ब्लॉक डिवाइस मैपिंग डॉक्स के साथ खुद को परिचित करना एक अच्छा विचार है।

किसी मौजूदा एएमआई के लिए कॉन्फ़िगरेशन को ओवरराइड करने के लिए और अधिक जानकारी प्राप्त करने के लिए, जैसे कि device_name , आप एडब्ल्यूएस सीएलआई एक् 2 विवरण-इमेज कमांड का उपयोग कर सकते हैं।

प्रत्येक block_device_mappings निम्नलिखित का समर्थन करता है:

ebs ब्लॉक निम्नलिखित का समर्थन करता है:

  • delete_on_termination - क्या वॉल्यूम को समाप्ति पर नष्ट किया जाना चाहिए (डिफ़ॉल्ट: true )।
  • encrypted - वॉल्यूम पर ईबीएस एन्क्रिप्शन सक्षम करता है (डिफ़ॉल्ट: false )। snapshot_id साथ उपयोग नहीं किया जा सकता है।
  • iops - प्रावधानित IOPS की राशि। इसे "io1" volume_type के साथ सेट किया जाना चाहिए।
  • kms_key_id - एन्क्रिप्टेड वॉल्यूम बनाते समय उपयोग करने के लिए AWS कुंजी प्रबंधन सेवा (AWS KMS) ग्राहक मास्टर कुंजी (CMK)। जब यह सेट हो जाए तो encrypted को true सेट किया जाना चाहिए।
  • snapshot_id - माउंट करने के लिए स्नैपशॉट आईडी।
  • volume_size - गीगाबाइट में वॉल्यूम का आकार।
  • volume_type - वॉल्यूम का प्रकार। "standard" , "gp2" , या "io1" । (डिफ़ॉल्ट: "standard" )।

क्रेडिट विशिष्टता

क्रेडिट विनिर्देश किसी भी समय EC2 इंस्टेंस पर लागू / संशोधित किया जा सकता है।

credit_specification block निम्नलिखित का समर्थन करता है:

  • cpu_credits - CPU उपयोग के लिए क्रेडिट विकल्प। "standard" या "unlimited" । (डिफ़ॉल्ट: "standard" )।

इलास्टिक जी.पी.यू.

उदाहरण के लिए एक लोचदार GPU संलग्न करें।

elastic_gpu_specifications ब्लॉक निम्नलिखित का समर्थन करता है:

इंस्टेंस प्रोफाइल

IAM इंस्टेंस प्रोफाइल संलग्न करने के लिए।

iam_instance_profile ब्लॉक निम्नलिखित का समर्थन करता है:

  • उदाहरण प्रोफ़ाइल का Amazon संसाधन नाम (ARN) - arn
  • name - उदाहरण प्रोफ़ाइल का नाम।

बाजार के विकल्प

उदाहरणों के लिए बाजार (खरीद) विकल्प।

instance_market_options ब्लॉक निम्नलिखित का समर्थन करता है:

spot_options ब्लॉक निम्नलिखित का समर्थन करता है:

  • block_duration_minutes - मिनटों में आवश्यक अवधि। यह मान 60 का एक होना चाहिए।
  • instance_interruption_behavior - स्पॉट इंसटेंस बाधित होने पर व्यवहार। hibernate हो सकता hibernate , stop , या terminate । (डिफ़ॉल्ट: terminate )।
  • max_price - अधिकतम घंटे की कीमत जो आप स्पॉट इंस्टेंस के लिए भुगतान करने को तैयार हैं।
  • spot_instance_type - स्पॉट इंस्टेंस अनुरोध प्रकार। one-time , या persistent
  • valid_until - अनुरोध की अंतिम तिथि।

निगरानी

monitoring ब्लॉक निम्नलिखित का समर्थन करता है:

  • enabled - यदि true , तो लॉन्च किए गए EC2 उदाहरण में विस्तृत निगरानी सक्षम होगी।

नेटवर्क इंटरफेस

उदाहरण के लिए एक या अधिक नेटवर्क इंटरफ़ेस देता है।

लॉन्च टेम्प्लेट गाइड का उपयोग करते हुए ऑटो स्केलिंग समूह बनाने में ऑटोस्कोलिंग समूह के लिए सीमाएं जांचें

प्रत्येक network_interfaces block निम्नलिखित का समर्थन करता है:

  • associate_public_ip_address - नेटवर्क इंटरफ़ेस के साथ एक सार्वजनिक आईपी पते को associate_public_ip_address करें। बूलियन मूल्य।
  • delete_on_termination - क्या नेटवर्क इंटरफ़ेस उदाहरण समाप्ति पर नष्ट किया जाना चाहिए।
  • description - नेटवर्क इंटरफेस का विवरण।
  • device_index - नेटवर्क इंटरफ़ेस अनुलग्नक का पूर्णांक सूचकांक।
  • ipv6_addresses - आपके सबनेट के IPv6 CIDR ब्लॉक रेंज से एक या अधिक विशिष्ट IPv6 पते।
  • ipv6_address_count - नेटवर्क इंटरफ़ेस को असाइन करने के लिए IPv6 पतों की संख्या। ipv6_addresses साथ ipv6_addresses
  • network_interface_id - संलग्न करने के लिए नेटवर्क इंटरफ़ेस की आईडी।
  • private_ip_address - प्राथमिक निजी IPv4 पता।
  • ipv4_address_count - नेटवर्क इंटरफ़ेस को असाइन करने के लिए द्वितीयक निजी IPv4 पते की संख्या।
  • ipv4_addresses - एक या अधिक निजी IPv4 पते सहयोगी के लिए।
  • security_groups - सुरक्षा समूह आईडी की एक सूची सहयोगी के लिए।
  • subnet_id - एसोसिएट करने के लिए subnet_id सबनेट आईडी।

प्लेसमेंट

उदाहरण के प्लेसमेंट समूह

placement ब्लॉक निम्नलिखित का समर्थन करता है:

  • affinity - एक समर्पित मेजबान पर एक उदाहरण के लिए आत्मीयता सेटिंग।
  • availability_zone - उदाहरण के लिए उपलब्धता क्षेत्र।
  • group_name - उदाहरण के लिए प्लेसमेंट समूह का नाम।
  • host_id - उदाहरण के लिए समर्पित होस्ट की आईडी।
  • spread_domain - भविष्य के उपयोग के लिए आरक्षित।
  • tenancy - उदाहरण की अवधि (यदि उदाहरण VPC में चल रहा है)। default , dedicated , या host किया जा सकता है।

टैग

लॉन्च के दौरान संसाधनों पर लागू होने वाले टैग। आप उदाहरणों और संस्करणों को टैग कर सकते हैं। अधिक जानकारी EC2 एपीआई प्रलेखन में पाई जा सकती है।

प्रत्येक tag_specifications ब्लॉक निम्नलिखित का समर्थन करता है:

  • resource_type - टैग करने के लिए संसाधन का प्रकार। मान्य मूल्य instance और volume
  • tags - संसाधन को असाइन करने के लिए टैग की मैपिंग।

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

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

  • id - लॉन्च टेम्पलेट की आईडी।
  • default_version - लॉन्च टेम्प्लेट का डिफ़ॉल्ट संस्करण।
  • latest_version - लॉन्च टेम्प्लेट का नवीनतम संस्करण।

आयात

लॉन्च टेम्प्लेट को id , जैसे का उपयोग करके आयात किया जा सकता है

$ terraform import aws_launch_template.web lt-12345678