如何使用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公钥。