问题描述
在使用Ansible时遇到了一个问题,即使他已经采取了多种措施来防止警告,但仍然收到了主机密钥已更改的警告。他使用Vagrant创建了虚拟机,然后想使用ansible命令进行一些操作。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在Ansible的inventory文件中添加以下配置:
vagrant-local:
ansible_host: 192.168.33.10
ansible_user: vagrant
ansible_ssh_private_key_file: .vagrant/machines/default/virtualbox/private_key
UserKnownHostsFile: /dev/null
StrictHostKeyChecking: no
ansible_python_interpreter: /usr/bin/python3
在上面的示例中,我们在inventory文件中定义了一个名为vagrant-local
的主机,并添加了一些配置。其中,UserKnownHostsFile
属性将检查主机指纹的文件设置为空文件(替换了~/.ssh/known_hosts
中的检查),StrictHostKeyChecking
属性允许ssh在不需要用户确认的情况下连接到vagrant主机。
方案2
请注意以下操作注意版本差异及修改前做好备份。
在inventory文件中添加以下配置:
ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
这个配置将忽略主机检查,并将/dev/null
设置为已知主机文件。
请注意,以上两种方案都是为了忽略主机检查和避免警告。这样做可能会带来一定的安全风险,请确保在安全环境中使用。
正文完