如何使用Ansible对主机进行身份验证?

如何使用Ansible对主机进行身份验证?,ansible,Ansible,我的主机文件 [all] 192.168.77.10 192.168.77.11 192.1680.77.12 这是我的剧本 --- - hosts: all tasks: - name: Add the Google signing key apt_key : url=https://packages.cloud.google.com/apt/doc/apt-key.gpg state=present - name: Add the k8s APT repo

我的主机文件

[all]
192.168.77.10
192.168.77.11
192.1680.77.12
这是我的剧本

---
- hosts: all

  tasks:
   - name: Add the Google signing key
     apt_key : url=https://packages.cloud.google.com/apt/doc/apt-key.gpg state=present

   - name: Add the k8s APT repo
     apt_repository: repo='deb http://apt.kubernetes.io/ kubernetes-xenial main' state=present

   - name: Install packages
     apt :
      name: "{{ packages }}"
     vars:
      packages:
       - vim
       - htop
       - tmux
       - docker.io
       - kubelet
       - kubeadm
       - kubectl
       - kubernetes-cni
当我跑的时候

ansible-playbook -i hosts playbook.yml
出现意外的身份验证问题

The authenticity of host '192.168.77.11 (192.168.77.11)' can't be established.
ECDSA key fingerprint is SHA256:mgX/oadP2cL6g33u7xzrEblvga9CGfpW13K2YUdeKsE.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.77.10 (192.168.77.10)' can't be established.
ECDSA key fingerprint is SHA256:ayWHzp/yquIuQxw7MKGR0+NbtrzHY86Z8PdIPv7r6og.
Are you sure you want to continue connecting (yes/no)? fatal: [192.1680.77.12]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname 192.1680.77.12: Name or service not known\r\n", "unreachable": true}
^C [ERROR]: User interrupted execution
我遵循DevOps书中的示例,复制了原始代码。我的操作系统是Ubuntu 18.04

telnet hosts
telnet: could not resolve hosts/telnet: Temporary failure in name resolution
VM ls输出

vagrant@ubuntu-bionic:~$ ls
hosts  playbook.retry  playbook.yml
我使用False选项编辑了/etc/ansible/ansible.cfg。 无论如何,它不会再工作了

fatal: [192.1680.77.12]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname 192.1680.77.12: Name or service not known\r\n", "unreachable": true}
fatal: [192.168.77.10]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '192.168.77.10' (ECDSA) to the list of known hosts.\r\nvagrant@192.168.77.10: Permission denied (publickey).\r\n", "unreachable": true}
fatal: [192.168.77.11]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '192.168.77.11' (ECDSA) to the list of known hosts.\r\nvagrant@192.168.77.11: Permission denied (publickey).\r\n", "unreachable": true}
    to retry, use: --limit @/home/vagrant/playbook.retry

PLAY RECAP *************************************************************************************************************************************************************************************************
192.168.77.10              : ok=0    changed=0    unreachable=1    failed=0   
192.168.77.11              : ok=0    changed=0    unreachable=1    failed=0   
192.1680.77.12             : ok=0    changed=0    unreachable=1    failed=0 

如何解决此问题?

您有几种选择。其中一个当然是SSH到主机,并将它们添加到Ansible服务器的已知主机文件中。另一个选项是将环境变量
ANSIBLE\u HOST\u KEY\u CHECKING
设置为false。第三个选项是使用ansible.cfg配置文件:

[defaults]
host_key_checking = False

请参阅。

您有多种选择。其中一个当然是SSH到主机,并将它们添加到Ansible服务器的已知主机文件中。另一个选项是将环境变量
ANSIBLE\u HOST\u KEY\u CHECKING
设置为false。第三个选项是使用ansible.cfg配置文件:

[defaults]
host_key_checking = False

请参阅。

错误说明没有ip为192.168.77.10的主机,或者至少ansible无法连接。您能否检查telnet是否正在从ansible到主机工作?您的问题是否已解决?如果您仍然有新问题,则可能是另一个问题,因为这是一个不同的问题。一个IP地址错误,应该是168而不是1680。对于其他两个,错误是您未被授权连接,您需要他们信任您的SSH公钥。错误表示没有ip 192.168.77.10的主机,或者至少ansible无法连接。您能否检查telnet是否正在从ansible到主机工作?您的问题是否已解决?如果您仍然有新问题,则可能是另一个问题,因为这是一个不同的问题。一个IP地址错误,应该是168而不是1680。对于另外两个,错误是您没有连接的授权,您需要他们信任您的SSH公钥。