2016-04-06 4 views
6

मैं उत्तरदायी मदद के साथ अमेज़ॅन ईसी 2 मशीनों को बनाना और प्रावधान करना चाहता हूं। अब, मैं निम्नलिखित त्रुटि मिलती है:उत्तर अमेज़ॅन ईसी 2। कुंजी जोड़ी मौजूद नहीं है

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Instance creation failed => InvalidKeyPair.NotFound: The key pair '~/.keys/EC2-Kibi-Enterprise-Deployment.pem' does not exist"} 

लेकिन .pem कुंजी मौजूद है:

$ ls -lh ~/.keys/EC2-Kibi-Enterprise-Deployment.pem 
-r-------- 1 sergey sergey 1.7K Apr 6 09:56 /home/sergey/.keys/EC2-Kibi-Enterprise-Deployment.pem 

और यह यूरोपीय संघ (आयरलैंड) क्षेत्र में बनाया गया था।

-- 
- name: Setup servers on Amazon EC2 machines 
    hosts: localhost 
    gather_facts: no 

    tasks: 
    - include_vars: group_vars/all/ec2_vars.yml 

    ### Create Amazon EC2 instances 
    - name: Amazon EC2 | Create instances 
     ec2: 
     count: "{{ count }}" 
     key_name: "{{ key }}" 
     region: "{{ region }}" 
     zone: "{{ zone }}" 
     group: "{{ group }}" 
     instance_type: "{{ machine }}" 
     image: "{{ image }}" 
     wait: true 
     wait_timeout: 500 
     #vpc_subnet_id: "{{ subnet }}" 
     #assign_public_ip: yes 
     register: ec2 

    - name: Amazon EC2 | Wait for SSH to come up 
     wait_for: 
     host: "{{ item.public_ip }}" 
     port: 22 
     delay: 10 
     timeout: 60 
     state: started 
     with_items: "{{ ec2.instances }}" 

    - name: Amazon EC2 | Add hosts to the kibi_servers in-memory inventory group 
     add_host: hostname={{ item.public_ip }} groupname=kibi_servers 
     with_items: "{{ ec2.instances }}" 
    ### END 

### Provision roles 
- name: Amazon EC2 | Provision new instances 
    hosts: kibi_servers 
    become: yes 
    roles: 
    - common 
    - java 
    - elasticsearch 
    - logstash 
    - nginx 
    - kibi 
    - supervisor 
### END 

और मेरे वर फ़ाइल:

count: 2 
region: eu-west-1 
zone: eu-west-1a 
group: default 
image: ami-d1ec01a6 
machine: t2.medium 
subnet: subnet-3a2aa952 
key: ~/.keys/EC2-Kibi-Enterprise-Deployment.pem 

क्या .pem फ़ाइल यहाँ साथ कुछ गड़बड़ है

यहाँ मेरी प्लेबुक है?

उत्तर

10

पैरामीटर ec2 module के लिए पैरामीटर कुंजी जोड़ी नाम की तलाश कर रहा है जो पहले से ही एडब्लूएस पर अपलोड हो चुका है, स्थानीय कुंजी नहीं।

यदि आप सार्वजनिक कुंजी अपलोड करने के लिए उत्तरदायी होना चाहते हैं तो आप ec2_key module का उपयोग कर सकते हैं।

तो अपने प्लेबुक इस प्रकार दिखाई देगा:

-- 
- name: Setup servers on Amazon EC2 machines 
    hosts: localhost 
    gather_facts: no 

    tasks: 
    - include_vars: group_vars/all/ec2_vars.yml 

    ### Create Amazon EC2 key pair 
    - name: Amazon EC2 | Create Key Pair 
     ec2_key: 
     name: "{{ key_name }}" 
     region: "{{ region }}" 
     key_material: "{{ item }}" 
     with_file: /path/to/public_key.id_rsa.pub 

    ### Create Amazon EC2 instances 
    - name: Amazon EC2 | Create instances 
     ec2: 
     count: "{{ count }}" 
     key_name: "{{ key_name }}" 
     ... 
+0

क्या मुझे स्थानीय रूप से एक एसएसएच कुंजी जोड़ी बनाने और अमेज़ॅन कंसोल में सार्वजनिक कुंजी आयात करने की आवश्यकता है? क्या यह कुंजी है? – trex

+0

आपको एडब्ल्यूएस में सार्वजनिक कुंजी (निजी भाग नहीं) अपलोड करने की आवश्यकता है। आप इसे कंसोल के माध्यम से कर सकते हैं या आप उदाहरण के अनुसार Ansible के माध्यम से कर सकते हैं। – ydaetskcoR

+0

लगता है कि 'ec2_keypair' मॉड्यूल मौजूद नहीं है। लेकिन [ec2_key] (http://docs.ansible.com/ansible/ec2_key_module.html) मॉड्यूल है। मैंने इसका इस्तेमाल किया और var key में 'key_name: ~/.ssh/EC2-Kibi-Enterprise' भी इंगित किया। अब मेरे पास निम्न त्रुटि है: 'विफल: [localhost] => (item = ssh-rsa एए ...", "msg": "या तो क्षेत्र या ec2_url निर्दिष्ट होना चाहिए"} ' – trex

2

समाधान नहीं मिला है। ईसी 2 पसंद नहीं करता जब आप .pem कुंजी फ़ाइल के लिए एक पूर्ण पथ डालते हैं।

तो, मैं ~/.ssh में EC2-Kibi-Enterprise-Deployment.pem ले जाया गया, का उपयोग कर ssh-add साथ प्रमाणीकरण एजेंट को यह कहा:

ssh-add ~/.ssh/EC2-Kibi-Enterprise-Deployment.pem 

और
key: EC2-Kibi-Enterprise-Deployment.pem

करने के लिए अपने वर फ़ाइल में महत्वपूर्ण लाइन को सही ही अगर आप का उपयोग करें ईसी 2 क्ली उपकरण, कुंजी फ़ाइल के लिए एक पूर्ण पथ निर्दिष्ट नहीं है।
ec2-run-instances ami-d1ec01a6 -t t2.medium --region eu-west-1 --key EC2-Kibi-Enterprise-Deployment.pem

+0

मुझे कुंजी बदलना है: ~/.keys/EC2-Kibi- एंटरप्राइज़-परिनियोजन.pem कुंजी: ~/.keys/EC2-Kibi- एंटरप्राइज़-परिनियोजन –

संबंधित मुद्दे