Terraform 0.11

opc_compute_instance




terraform

opc_compute_instance

opc_compute_instance संसाधन Oracle क्लाउड इंफ्रास्ट्रक्चर कंप्यूट क्लासिक पहचान डोमेन में एक उदाहरण बनाता है और उसका प्रबंधन करता है।

उदाहरण उपयोग

resource "opc_compute_ip_network" "test" {
  name                = "internal-network"
  description         = "Terraform Provisioned Internal Network"
  ip_address_prefix   = "10.0.1.0/24"
  public_napt_enabled = false
}

resource "opc_compute_storage_volume" "test" {
  name = "internal"
  size = 100
}

resource "opc_compute_instance" "test" {
  name       = "instance1"
  label      = "Terraform Provisioned Instance"
  shape      = "oc3"
  image_list = "/oracle/public/oel_6.7_apaas_16.4.5_1610211300"

  storage {
    volume = "${opc_compute_storage_volume.test.name}"
    index  = 1
  }

  networking_info {
    index          = 0
    nat            = ["ippool:/oracle/public/ippool"]
    shared_network = true
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) उदाहरण का नाम।

  • shape - (आवश्यक) उदाहरण का आकार, उदाहरण के लिए oc4

  • instance_attributes - (वैकल्पिक) कस्टम विशेषताओं का एक JSON स्ट्रिंग। अधिक जानकारी के लिए नीचे Attributes देखें।

  • boot_order - (वैकल्पिक) बूटेबल स्टोरेज वॉल्यूम की इंडेक्स संख्या, एक सूची के रूप में प्रस्तुत की जाती है, जिसका उपयोग उदाहरण को बूट करने के लिए किया जाना चाहिए। एकमात्र मान्य मूल्य [1] । यदि आप इस विशेषता को सेट करते हैं, तो आपको संग्रहण_attachments के वॉल्यूम उप-पैरामीटर में अनुक्रमणिका संख्या 1 के साथ एक बूट करने योग्य संग्रहण वॉल्यूम निर्दिष्ट करना होगा। जब आप boot_order निर्दिष्ट करते हैं, तो आपको कल्पनावादी विशेषता को निर्दिष्ट करने की आवश्यकता नहीं है, क्योंकि उदाहरण बूट किए गए बूट करने योग्य वॉल्यूम पर छवि का उपयोग करके बूट किया गया है। यदि आप बूट_ऑर्डर और इमेजेलिस्ट दोनों को निर्दिष्ट करते हैं, तो इमेजेलिस्ट विशेषता को अनदेखा किया जाता है।

  • hostname - (वैकल्पिक) उदाहरण के लिए असाइन किया गया होस्ट नाम। ओरेकल लिनक्स उदाहरण पर, होस्टनाम कमांड के जवाब में यह होस्ट नाम प्रदर्शित होता है। केवल सापेक्ष DNS समर्थित है। डोमेन नाम को आपके द्वारा निर्दिष्ट होस्ट नाम से प्रत्ययित किया जाता है। होस्ट नाम किसी अवधि के साथ समाप्त नहीं होना चाहिए। यदि आप एक होस्ट नाम निर्दिष्ट नहीं करते हैं, तो एक नाम स्वतः उत्पन्न होता है।

  • image_list - (वैकल्पिक) उदाहरण की /oracle/public/oel_6.4_2GB_v1 , जैसे /oracle/public/oel_6.4_2GB_v1

  • label - (वैकल्पिक) उदाहरण पर लागू होने वाला लेबल।

  • desired_state - (वैकल्पिक) उदाहरण की इच्छा स्थिति running (डिफ़ॉल्ट) या shutdown करने के लिए सेट करें। आप इस अनुरोध का उपयोग उन व्यक्तिगत उदाहरणों को बंद करने और पुनः आरंभ करने के लिए कर सकते हैं जो लगातार बूट करने योग्य संग्रहण वॉल्यूम का उपयोग करते हैं।

  • networking_info - (वैकल्पिक) एक व्यक्तिगत नेटवर्क इंटरफ़ेस से संबंधित सूचना जिसे बनाया और उदाहरण के लिए संलग्न किया जाना है। यदि अनिर्दिष्ट छोड़ दिया जाता है, तो shared_network के भीतर बनाया जाएगा। अधिक जानकारी के लिए नीचे नेटवर्किंग जानकारी देखें।

  • storage - (वैकल्पिक) उदाहरण के निर्माण के दौरान बनाए जाने के लिए एक व्यक्तिगत भंडारण लगाव से संबंधित जानकारी। कृपया अधिक जानकारी के लिए नीचे संग्रहण अनुलग्नक देखें।

  • reverse_dns - (वैकल्पिक) यदि true (डिफ़ॉल्ट) पर सेट किया जाता true , तो रिवर्स DNS रिकॉर्ड बनाए जाते हैं। यदि false सेट किया जाता false , तो कोई उल्टे DNS रिकॉर्ड नहीं बनाए जाते हैं

  • ssh_keys - (वैकल्पिक) SSH कुंजी के नामों की एक सूची जिसका उपयोग उदाहरण में लॉग इन करने के लिए किया जा सकता है।

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

गुण

उदाहरण के निर्माण के दौरान, कई कस्टम विशेषताएँ हैं जो उपयोगकर्ता उदाहरण निर्माण के दौरान उदाहरण के लिए उपलब्ध कराना चाह सकते हैं। ये विशेषताएँ instance_attributes फ़ील्ड के माध्यम से निर्दिष्ट की जा सकती हैं, और JSON प्रारूप में एक स्ट्रिंग के रूप में प्रस्तुत की जानी चाहिए। इस क्षेत्र को आबाद करने का सबसे आसान तरीका HEREDOC है:

resource "opc_compute_instance" "foo" {
  name = "test"
  label = "test"
  shape = "oc3"
  imageList = "/oracle/public/oel_6.4_2GB_v1"
  instance_attributes = <<JSON
{
  "foo": "bar",
  "baz": 42,
  "my_obj": {
    "my_key": false,
    "another": true
  }
}
JSON

  sshKeys = ["${opc_compute_ssh_key.key1.name}"]
}

यह उपयोगकर्ता को उदाहरण के निर्माण के दौरान उदाहरण के लिए आपूर्ति की गई विशेषताओं पर पूर्ण नियंत्रण रखने की अनुमति देता है। उदाहरण के निर्माण के दौरान पॉपुलेट होने वाली कुछ विशेषताओं के साथ-साथ पूर्ण विशेषताओं का नक्शा निर्यातित attributes माध्यम से देखा जा सकता है।

चेतावनी: टेराफ़ॉर्म संसाधनों को कैसे आयात करता है, इसके कारण टेरफॉर्म के साथ एक नया इंस्टेंस बनाते समय inst_attributes फ़ील्ड को केवल पॉप्युलेट किया जाएगा। इसके चलते हमें किसी भी राज्य की अनदेखी करने की आवश्यकता होती है, instance_attributes के instance_attributes परिवर्तन फ़ील्ड में भिन्न होता है। इस प्रकार, instance_attributes फ़ील्ड में कोई भी कॉन्फ़िगरेशन परिवर्तन, किसी plan दौरान अंतर दर्ज नहीं करेगा या apply । यदि कोई उपयोगकर्ता केवल आपूर्ति की गई इंस्टेंस विशेषताओं में बदलाव करना चाहता है, और इंस्टेंस संसाधन को फिर से बनाना चाहता है, तो terraform taint सबसे अच्छा उपाय है। आप here taint कमांड के बारे में अधिक पढ़ सकते हैं

नेटवर्किंग जानकारी

प्रत्येक networking_info कॉन्‍फ़िगरेशन उदाहरण के लिए एकल नेटवर्क इंटरफ़ेस का प्रबंधन करता है। साझा नेटवर्क, या IP नेटवर्क में इंटरफ़ेस है या नहीं, इसके आधार पर विशेषताओं की आवश्यकता या वैकल्पिक है। कुछ विशेषताओं का उपयोग केवल तभी किया जा सकता है यदि इंटरफ़ेस साझा नेटवर्क में है, और एक आईपी नेटवर्क में इंटरफ़ेस के लिए भी ऐसा ही है।

नोट: अगर networking_info को अनिर्दिष्ट छोड़ दिया गया है, तो उदाहरण shared_network में बूट किया जाएगा।

निम्नलिखित विशेषताएँ समर्थित हैं:

  • index - (आवश्यक) नेटवर्क इंटरफ़ेस का संख्यात्मक सूचकांक। count उपयोग के लिए अनुमति देने के लिए पूर्णांक के रूप में निर्दिष्ट किया गया है, लेकिन सीधे ethX नक्शे। यानी: index सेट 0 , इंटरफ़ेस eth0 बनाया जाएगा। केवल 0-9 हो सकते हैं।
  • dns - (वैकल्पिक, आईपी नेटवर्क केवल) DNS ए की सूची उदाहरण के लिए रिकॉर्ड नाम। आप एक आईपी नेटवर्क पर प्रत्येक इंटरफ़ेस के लिए आठ DNS ए रिकॉर्ड नाम तक निर्दिष्ट कर सकते हैं। इन नामों को एक ही आईपी नेटवर्क एक्सचेंज में किसी भी आईपी नेटवर्क पर उदाहरणों के द्वारा समझा जा सकता है।
  • ip_address - (वैकल्पिक, IP नेटवर्क केवल) IP पता इंटरफ़ेस को सौंपा गया।
  • ip_network - (वैकल्पिक, आईपी नेटवर्क केवल) आईपी नेटवर्क इंटरफ़ेस को सौंपा।
  • mac_address - (वैकल्पिक, आईपी नेटवर्क केवल) इंटरफ़ेस का मैक पता।
  • is_default_gateway - (वैकल्पिक, आईपी नेटवर्क केवल) निर्दिष्ट करें कि इंटरफ़ेस को सभी ट्रैफ़िक के लिए डिफ़ॉल्ट गेटवे के रूप में उपयोग किया जाना है। उदाहरण पर केवल एक इंटरफ़ेस को डिफ़ॉल्ट गेटवे के रूप में निर्दिष्ट किया जा सकता है। यदि उदाहरण में साझा नेटवर्क पर एक इंटरफ़ेस है, तो उस इंटरफ़ेस को हमेशा डिफ़ॉल्ट गेटवे के रूप में उपयोग किया जाता है।
  • model - (वैकल्पिक, साझा नेटवर्क केवल) एनआईसी कार्ड के मॉडल का उपयोग किया जाता है। e1000 सेट होना चाहिए।
  • name_servers - (वैकल्पिक) इंटरफ़ेस के लिए नाम सर्वर की सरणी।
  • nat - (IP नेटवर्क के लिए वैकल्पिक, साझा नेटवर्क के लिए आवश्यक) इंटरफ़ेस (IP नेटवर्क) से जुड़ा IP आरक्षण। इंगित करता है कि एक अस्थायी या स्थायी सार्वजनिक आईपी पता उदाहरण (साझा नेटवर्क) को सौंपा जाना चाहिए।
  • search_domains - (वैकल्पिक) खोज डोमेन जिन्हें डीएचसीपी के माध्यम से 119 विकल्प के रूप में भेजा जाता है।
  • sec_lists - (वैकल्पिक, साझा नेटवर्क केवल) सुरक्षा सूची इंटरफ़ेस को जोड़ा जाता है।
  • shared_network - (आवश्यक) साझा नेटवर्क या आईपी नेटवर्क के अंदर इंटरफ़ेस है या नहीं।
  • vnic - (वैकल्पिक, आईपी नेटवर्क ओनली) आईपी नेटवर्क के लिए बनाए गए vNIC का नाम।
  • vnic_sets - (वैकल्पिक, आईपी नेटवर्क ओनली) vNIC के सरणी में इंटरफ़ेस जोड़ा गया था।

भंडारण संलग्नक

प्रत्येक संग्रहण अनुलग्नक कॉन्‍फ़िगरेशन एकल संग्रहण अनुलग्नक का प्रबंधन करता है जो उदाहरण के निर्माण के दौरान बनाया जाता है। इसका अर्थ है कि उदाहरण के निर्माण के दौरान बनाए गए किसी भी संग्रहण अनुलग्नक को उदाहरण से अलग नहीं किया जा सकता है। यदि आप बाद की तारीख में भंडारण संस्करणों को अलग करना चाहते हैं, तो उदाहरणों के लिए संग्रहण अनुलग्नकों को प्रबंधित करने के लिए resource_storage_attachment संसाधन का उपयोग करें।

निम्नलिखित विशेषताएँ समर्थित हैं:

  • index - (आवश्यक) वॉल्यूम अनुलग्नक की सूचकांक संख्या। 1 उदाहरण के लिए बूट वॉल्यूम है। मान 1-10 की अनुमति दी।
  • volume - (आवश्यक) उदाहरण के लिए संलग्न करने के लिए भंडारण की मात्रा का नाम।

उपरोक्त विशेषताओं के अतिरिक्त, स्टोरेज वॉल्यूम के लिए निम्नलिखित विशेषताओं का निर्यात किया जाता है

  • name - स्टोरेज वॉल्यूम अटैचमेंट का नाम।

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

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

  • id - उदाहरण की id
  • attributes - उदाहरण की पूर्ण विशेषताएँ, JSON स्ट्रिंग के रूप में।
  • availability_domain - उपलब्धता डोमेन उदाहरण में है।
  • domain - होस्टनाम और DNS लुकअप के लिए उपयोग करने के लिए डिफ़ॉल्ट डोमेन।
  • entry - इमेजेलिस्ट प्रवेश संख्या।
  • fingerprint - उदाहरण के लिए प्रस्तुत SSH सर्वर फिंगरप्रिंट।
  • fqdn - उदाहरण के लिए पूरी तरह से योग्य डोमेन नाम।
  • image_format - छवि का प्रारूप।
  • ip_address - उदाहरण का IP पता।
  • placement_requirements - उदाहरण के लिए प्लेसमेंट आवश्यकताओं की सरणी।
  • platform - उदाहरण के ओएस प्लेटफार्म।
  • priority - वह प्राथमिकता जिस पर उदाहरण चलाया गया था।
  • quota_reservation - उदाहरण के साथ नष्ट किए जाने के लिए कोटा कोटा का संदर्भ।
  • relationships - उदाहरण विनिर्देशों पर संतुष्ट होने के लिए संबंध विनिर्देशों की सरणी।
  • resolvers - resolvers सरणी को डिफ़ॉल्ट रिज़ॉल्वर के बजाय उपयोग किया जाना चाहिए।
  • site - जिस साइट पर इंस्टेंस चल रहा है।
  • start_time - इंस्टेंस का लॉन्च समय।
  • state - उदाहरण की अवस्था।
  • vcable_id - उदाहरण के लिए vCable ID।
  • virtio - बूलियन यह निर्धारित करता है कि क्या उदाहरण एक virtio device है।
  • vnc_address - VNC पते और उदाहरण का पोर्ट।

आयात

इंस्टेंस के संयुक्त Name और ID का उपयोग करके उदाहरणों को आयात किया जा सकता है / उन्हें अलग करने वाला चरित्र। यदि ओरेकल वेब कंसोल में एक उदाहरण देखते हैं, तो इंस्टेंस का name और id उदाहरणों में अंतिम दो फ़ील्ड हैं जो पूरी तरह से योग्य Name

उदाहरण के लिए, वेब कंसोल में एक इंस्टेंस पूरी तरह से योग्य नाम है: /Compute-<identify>/<user>@<account>/<instance_name>/<instance_id>

उदाहरण को इस तरह आयात किया जा सकता है:

$ terraform import opc_compute_instance.instance1 instance_name/instance_id

समय समाप्ति

opc_compute_instance निम्नलिखित opc_compute_instance कॉन्फ़िगरेशन विकल्प प्रदान करता है:

  • create - (डिफ़ॉल्ट 20 minutes ) उदाहरण बनाने के लिए इस्तेमाल किया।
  • update - (डिफ़ॉल्ट 20 minutes ) उदाहरणों को अद्यतन करने के लिए उपयोग किया जाता है।
  • delete - (डिफ़ॉल्ट 20 minutes ) डिलीटिंग इंस्टेंस के लिए प्रयुक्त।