amazon web services certification जवाब के साथ aws ec2 उदाहरण लॉन्च करने का सबसे अच्छा तरीका




aws console (3)

यह आपके प्रश्न का संक्षिप्त उत्तर है, यदि आप विस्तार और पूरी तरह से स्वचालित भूमिका चाहते हैं, तो कृपया मुझे बताएं। धन्यवाद

पूर्व शर्त :

  • Ansible

  • पायथन बोटो लाइब्रेरी

  • पर्यावरण सेटिंग्स में एडब्ल्यूएस एक्सेस और गुप्त कुंजी सेट अप करें
    (सबसे अच्छा ~ / / बोटो के अंदर है)

ईसी 2 इंस्टेंस बनाने के लिए:

ईसी 2 इंस्टेंस बनाने के लिए, कृपया इन पैरामीटर को संशोधित करें जिन्हें आप "vars" के अंतर्गत "ec2_launch.yml" फ़ाइल के अंदर पा सकते हैं:

  • क्षेत्र # जहां उदाहरण (ओं), यूएसए, ऑस्ट्रेलिया, आयरलैंड आदि लॉन्च करना चाहते हैं
  • गिनती # उदाहरण की संख्या, आप बनाना चाहते हैं

    एक बार, आपने इन पैरामीटर का उल्लेख किया है, कृपया निम्न आदेश चलाएं:

ansible-playbook -i मेजबान ec2_launch.yml

मेजबान फ़ाइल की सामग्री:

[local]
localhost

[webserver]

Ec2_launch.yml फ़ाइल की सामग्री:

---
  - name: Provision an EC2 Instance
    hosts: local
    connection: local
    gather_facts: False
    tags: provisioning
    # Necessary Variables for creating/provisioning the EC2 Instance
    vars:
      instance_type: t1.micro
      security_group: webserver # Change the security group name here
      image: ami-98aa1cf0 # Change the AMI, from which you want to launch the server
      region: us-east-1 # Change the Region
      keypair: ansible # Change the keypair name
      count: 1

    # Task that will be used to Launch/Create an EC2 Instance
    tasks:

      - name: Create a security group
        local_action: 
          module: ec2_group
          name: "{{ security_group }}"
          description: Security Group for webserver Servers
          region: "{{ region }}"
          rules:
            - proto: tcp
              type: ssh
              from_port: 22
              to_port: 22
              cidr_ip: 0.0.0.0/0
            - proto: tcp
              from_port: 80
              to_port: 80
              cidr_ip: 0.0.0.0/0
          rules_egress:
            - proto: all
              type: all
              cidr_ip: 0.0.0.0/0


      - name: Launch the new EC2 Instance
        local_action: ec2 
                      group={{ security_group }} 
                      instance_type={{ instance_type}} 
                      image={{ image }} 
                      wait=true 
                      region={{ region }} 
                      keypair={{ keypair }}
                      count={{count}}
        register: ec2

      - name: Add the newly created EC2 instance(s) to the local host group (located inside the directory)
        local_action: lineinfile 
                      dest="./hosts" 
                      regexp={{ item.public_ip }} 
                      insertafter="[webserver]" line={{ item.public_ip }}
        with_items: "{{ ec2.instances }}"


      - name: Wait for SSH to come up
        local_action: wait_for 
                      host={{ item.public_ip }} 
                      port=22 
                      state=started
        with_items: "{{ ec2.instances }}"

      - name: Add tag to Instance(s)
        local_action: ec2_tag resource={{ item.id }} region={{ region }} state=present
        with_items: "{{ ec2.instances }}"
        args:
          tags:
            Name: webserver

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

बहुत बहुत धन्यवाद।


जैसा कि अन्य ने कहा है, क्लाउड मॉड्यूल में केवल आपके द्वारा आवश्यक सभी एडब्ल्यूएस प्रावधान समर्थन शामिल हैं। उस ने कहा, एक मौजूदा एसएसएच: सक्षम मशीन को लक्षित करने और कनेक्ट करने के बाद उत्तरदायी प्रतिमान सबसे अधिक समझ में आता है। तुलनात्मक रूप से तत्काल चरण, आपको अनिवार्य रूप से आपको अपनी स्थानीय मशीन को लक्षित करने के लिए कहता है और वहां से एडब्ल्यूएस एपीआई एंडपॉइंट्स को कॉल करता है।

आप की तरह, मैं ईसी 2 तत्कालता से इसकी कॉन्फ़िगरेशन में एक सुंदर संक्रमण के साथ एक एकल शॉट कमांड चाहता था। दस्तावेज़ीकरण में इस तरह कुछ हासिल करने के सुझाव हैं, लेकिन यह वर्तमान होस्ट सूची के Ansible के विचार को ट्विक करने के लिए add_host मॉड्यूल पर निर्भर करता है, और फिर भी मुझे ऐसा समाधान नहीं मिला जो मुझे नहीं लगता था कि मैं इसके खिलाफ काम कर रहा था प्रणाली के बजाय।

अंत में मैंने दो अलग-अलग प्लेबुक का चयन किया: एक प्रावधान.आईएमएल जो ec2, ec2_group, ec2_vol, ec2_eip और path53 मॉड्यूल का उपयोग करता है यह सुनिश्चित करने के लिए कि मेरे पास "हार्डवेयर" है, और फिर config.yml, पारंपरिक उत्तरदायी साइट की तरह .yml, जो मेजबान सूची का इलाज करने में सक्षम है (मेरे मामले में स्थैतिक है, लेकिन गतिशील अच्छी तरह से काम करेगा) दिया गया है और यह सब अच्छी घोषणात्मक राज्य संक्रमण कर रहा है।

दोनों प्लेबुक बेवकूफ हैं, लेकिन यह config.yml है जिसका मतलब लंबे समय तक खत्म हो जाना है।


ईसी 2 मॉड्यूल को उदाहरण बनाने और नष्ट करने के लिए ठीक से डिजाइन किया गया था।

यदि आप "सर्वश्रेष्ठ" तरीका चाहते हैं, तो क्लाउडफॉर्मेशन को हरा करना मुश्किल है, जिसे Ansible से लॉन्च किया जा सकता है।





ansible-playbook