"无法通过ssh"连接到主机错误Ansible

时间:2017-01-30 15:23:43

标签: ssh amazon-ec2 ansible

我正在尝试在Ansible上运行以下剧本:

- hosts: localhost
  connection: local
  remote_user: test
  gather_facts: no

  vars_files:
    - files/aws_creds.yml
    - files/info.yml

  tasks:
    - name: Basic provisioning of EC2 instance
      ec2:
        assign_public_ip: no
        aws_access_key: "{{ aws_id }}"
        aws_secret_key: "{{ aws_key }}"
        region: "{{ aws_region }}"
        image: "{{ standard_ami }}"
        instance_type: "{{ free_instance }}"
        key_name: "{{ ssh_keyname }}"
        count: 3
        state: present
        group_id: "{{ secgroup_id }}"
        wait: no
        #delete_on_termination: yes
        instance_tags:
          Name: Dawny33Template
      register: ec2

    - name: Add new instance to host group
      add_host:
        hostname: "{{ item.public_ip }}"
        groupname: launched
      with_items: "{{ ec2.instances }}"

## Here lies the SSH code
    - name: Wait for SSH to come up
      wait_for:
        host: "{{ item.public_ip }}"
        port: 22
        delay: 60
        timeout: 320
        state: started
      with_items: "{{ ec2.instances }}"


- name: Configure instance(s)
  hosts: launched
  become: True
  gather_facts: True
  #roles:
  #  - my_awesome_role
  #  - my_awesome_test

- name: Terminate instances
  hosts: localhost
  connection: local
  tasks:
    - name: Terminate instances that were previously launched
      ec2:
        state: 'absent'
        instance_ids: '{{ ec2.instance_ids }}'

我收到以下错误:

TASK [setup] *******************************************************************
fatal: [52.32.183.176]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '52.32.183.176' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey).\r\n", "unreachable": true}
fatal: [52.34.255.16]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '52.34.255.16' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey).\r\n", "unreachable": true}
fatal: [52.34.253.51]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '52.34.253.51' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey).\r\n", "unreachable": true}

我的ansible.cfg文件已经有以下内容:

[defaults]
host_key_checking = False

然而,剧本运行失败了。有人可以帮我解决我做错的事吗?

2 个答案:

答案 0 :(得分:1)

SSH设置正确吗?日志表明您的公钥无法正常工作

答案 1 :(得分:1)

答案必须在于:     权限被拒绝(publickey)。 您通过主机密钥检查 - 您的问题是身份验证。 您打算使用基于密钥的身份验证吗?如果是的话,

ssh <host> -l <ansible_user>

为你工作,还是产生密码提示?

您是否尝试使用密码验证?如果是这样,看起来您的节点不允许它。

编辑: 将-vvvv添加到您的playbook可启用SSH调试。