Terraform 0.11

aws_ami




terraform

aws_ami

एएमआई संसाधन पूरी तरह से कस्टम अमेज़ॅन मशीन छवि (एएमआई) के निर्माण और प्रबंधन की अनुमति देता है।

यदि आप किसी मौजूदा एएमआई को डुप्लिकेट करना चाहते हैं, तो संभवतः इसे किसी अन्य क्षेत्र में कॉपी करना, इसके बजाय aws_ami_copy का उपयोग करना बेहतर है।

यदि आप किसी मौजूदा aws_ami_launch_permission को दूसरे AWS खाते के साथ साझा करना चाहते हैं, तो इसके बजाय aws_ami_launch_permission का उपयोग करना बेहतर है।

उदाहरण उपयोग

# Create an AMI that will start a machine whose root device is backed by
# an EBS volume populated from a snapshot. It is assumed that such a snapshot
# already exists with the id "snap-xxxxxxxx".
resource "aws_ami" "example" {
    name = "terraform-example"
    virtualization_type = "hvm"
    root_device_name = "/dev/xvda"

    ebs_block_device {
        device_name = "/dev/xvda"
        snapshot_id = "snap-xxxxxxxx"
        volume_size = 8
    }
}

तर्क संदर्भ

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

  • name - (आवश्यक) एएमआई के लिए एक क्षेत्र-अद्वितीय नाम।
  • description - (वैकल्पिक) एएमआई के लिए एक लंबा, मानव-पठनीय विवरण।
  • root_device_name - (वैकल्पिक) रूट डिवाइस का नाम (उदाहरण के लिए, /dev/sda1 , या /dev/xvda )।
  • virtualization_type - (वैकल्पिक) वर्चुअलाइजेशन मोड द्वारा निर्मित इंस्टेंस का उपयोग करने के लिए कीवर्ड का चयन करें। या तो "paravirtual" (डिफ़ॉल्ट) या "hvm" हो सकता है। वर्चुअलाइजेशन प्रकार की पसंद को आगे बताए गए आवश्यक तर्कों के सेट को बदल दिया गया है।
  • architecture - (वैकल्पिक) निर्मित उदाहरणों के लिए मशीन वास्तुकला। "X86_64" के लिए डिफ़ॉल्ट।
  • ebs_block_device - (वैकल्पिक) एक ईबीएस ब्लॉक डिवाइस का वर्णन करने वाले नेस्टेड ब्लॉक जिसे निर्मित उदाहरणों से जोड़ा जाना चाहिए। इस ब्लॉक की संरचना नीचे वर्णित है।
  • ephemeral_block_device - (वैकल्पिक) एक ephemeral ब्लॉक डिवाइस का वर्णन करने वाला नेस्टेड ब्लॉक जिसे निर्मित उदाहरणों से जोड़ा जाना चाहिए। इस ब्लॉक की संरचना नीचे वर्णित है।

जब virtualization_type "paravirtual" है तो निम्नलिखित अतिरिक्त तर्क लागू होते हैं:

  • image_location - (आवश्यक) एक S3 ऑब्जेक्ट के लिए पथ जिसमें छवि प्रकट होती है, जैसे EC2 कमांड लाइन टूल्स में ec2-upload-bundle कमांड द्वारा बनाई गई।
  • kernel_id - (आवश्यक) कर्नेल छवि की आईडी (AKI) जिसका उपयोग निर्मित उदाहरणों में paravirtual कर्नेल के रूप में किया जाएगा।
  • ramdisk_id - (वैकल्पिक) एक अंतर्निहित छवि की छवि (ARI) जिसका उपयोग निर्मित अर्थों को बूट करते समय किया जाएगा।

जब virtualization_type "hvm" है तो निम्नलिखित अतिरिक्त तर्क लागू होते हैं:

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

नेस्टेड ebs_block_device ब्लॉकों में निम्नलिखित संरचना है:

  • device_name - (आवश्यक) वह पथ जिस पर उपकरण निर्मित उदाहरणों के संपर्क में है।
  • delete_on_termination - (वैकल्पिक) बूलियन नियंत्रित करता है कि प्रत्येक बनाए गए उदाहरण का समर्थन करने के लिए बनाए गए ईबीएस वॉल्यूम उस उदाहरण के समाप्त होने के बाद हटा दिए जाएंगे।
  • encrypted - (वैकल्पिक) बूलियन नियंत्रित करता है कि क्या बनाए गए ईबीएस वॉल्यूम एन्क्रिप्ट किए जाएंगे। snapshot_id साथ उपयोग नहीं किया जा सकता है।
  • iops - (केवल आवश्यक है जब volume_type "io1" है) प्रति सेकंड I / O संचालन की संख्या निर्मित वॉल्यूम का समर्थन करेगी।
  • snapshot_id - (वैकल्पिक) एक ईबीएस स्नैपशॉट की आईडी जिसका उपयोग निर्मित ईबीएस संस्करणों को आरंभ करने के लिए किया जाएगा। यदि सेट किया गया है, तो volume_size विशेषता संदर्भित स्नैपशॉट के रूप में कम से कम बड़ी होनी चाहिए।
  • volume_size - (आवश्यक है जब तक कि snapshot_id volume_size सेट न हो) GiB में निर्मित संस्करणों का आकार। अगर volume_size सेट है और volume_size को छोड़ा गया है, तो वॉल्यूम का आकार चयनित स्नैपशॉट के समान होगा।
  • volume_type - (वैकल्पिक) बनाने के लिए EBS वॉल्यूम का प्रकार। "मानक" (डिफ़ॉल्ट), "io1" या "gp2" में से एक हो सकता है।
  • kms_key_id - (वैकल्पिक) एक कॉपी ऑपरेशन के दौरान छवि के स्नैपशॉट को एन्क्रिप्ट करते समय उपयोग करने के लिए AWS कुंजी प्रबंधन सेवा (AWS KMS) CMK का पूरा ARN। यदि आप एक गैर-डिफ़ॉल्ट CMK का उपयोग करना चाहते हैं तो यह पैरामीटर आवश्यक है; यदि यह पैरामीटर निर्दिष्ट नहीं है, तो EBS के लिए डिफ़ॉल्ट CMK का उपयोग किया जाता है

नेक्ड ephemeral_block_device ब्लॉकों में निम्नलिखित संरचना है:

  • device_name - (आवश्यक) वह पथ जिस पर उपकरण निर्मित उदाहरणों के संपर्क में है।
  • virtual_name - (आवश्यक) virtual_name डिवाइस के लिए एक नाम, फॉर्म "ephemeralN" जहां N एक शून्य से शुरू होने वाली वॉल्यूम संख्या है।

समय समाप्ति

timeouts ब्लॉक आपको कुछ कार्यों के लिए timeouts निर्दिष्ट करने की अनुमति देता है:

  • create - (40 मिनट में चूक) AMI बनाते समय उपयोग किया जाता है
  • update - (40 मिनट में चूक) एएमआई को अपडेट करते समय उपयोग किया जाता है
  • delete - (90 मिनट तक की कमी) एएमआई को डीरेगिस्टर करते समय उपयोग किया जाता है

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

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

  • id - निर्मित एएमआई की आईडी।
  • root_snapshot_id - रूट वॉल्यूम के लिए स्नैपशॉट ID ( root_snapshot_id समर्थित AMI के लिए)