2016-09-29 4 views
2

EC2 인스턴스를 provison하고 Localhost에서 Ansible을 사용하여 LAMP 서버를 설치하려고합니다. 인스턴스를 성공적으로 프로비저닝했지만 "ssh를 통해 호스트에 연결하지 못했습니다."라는 오류로 인해 apache, php 및 mysql을 설치할 수 없습니다.Anshost - ssh를 통해 호스트에 연결하지 못했습니다.

OS : 엘 캐피 10.11.6

Ansible :`---

- hosts: localhost 
    connection: local 
    gather_facts: no 
    vars_files: 
    - "vars/{{ project_name }}.yml" 
    - "vars/vpc_info.yml" 
    tasks: 
- name: Provision 
    local_action: 
    module: ec2 
    region: "xxxxxx" 
    vpc_subnet_id: "xxxxxx" 
    assign_public_ip: yes 
    key_name: "xxxxxxx" 
    instance_type: "t2.nano" 
    image: "xxxxxxxx" 

    wait: yes 
    instance_tags: 
     Name: "LAMP" 
     class: "test" 
     environment: "dev" 
     project: "{{ project_name }}" 
     az: a 
    exact_count: 1 
    count_tag: 
     Name: "LAMP" 
    monitoring: yes 
    register: ec2a 

- hosts: lamp 
    roles: 
    - lamp_server 

ansible.cfg 파일의 내용 : 여기 2.0.2.0

은 플레이 북이다

[defaults] 
private_key_file=/Users/nico/.ssh/xxxxx.pem 

재고 :

플레이 북을 실행하는 데3210
lamp  ansible_ssh_host=<EC2 IP> ansible_user=ubuntu 

명령 :

ansible-playbook -i inventory ec2_up.yml -e project_name="lamp_server" -vvvv 

출력 :이 오류에 대한 스레드를 많이 읽고,하지만 아무것도 나에게 도움이되지

ESTABLISH SSH CONNECTION FOR USER: ubuntu 
<xxxxxxxxxx> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/Users/nico/.ssh/xxxxxxx.pem"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 -o ControlPath=/Users/nico/.ansible/cp/ansible-ssh-%h-%p-%r xxxxxxx '/bin/sh -c '"'"'(umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1475186461.08-93383010782630 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1475186461.08-93383010782630 `")'"'"'' 
52.28.251.117 | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

. :(

+1

문제 해결 : 플레이 북 실행 명령 끝에 -c paramiko 추가 – NicoleB

+1

'ansible-playbook -i inventory ec2_up.yml -e project_name = "lamp_server"-vvvv -c paramiko'works – NicoleB

+0

이 질문에 대한 답변에 이것을 추가하고 "accepted"상자를 체크하십시오. 대답. –

답변

0

ansible-각본 -i 인벤토리 ec2_up.yml -e 프로젝트 이름 = "lamp_server"-vvvv -c paramiko

관련 문제