是的,您可以在清单/主机级别上进行设置。
有了一个已经被接受的答案,我认为这对于在库存级别如何处理这个问题是一个更好的答案。通过将此不安全设置隔离到为此所需的主机(例如测试系统,本地开发计算机),我认为这样做更加安全。
您可以在库存级别执行的操作是添加
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
要么
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
到您的主机定义(请参阅Ansible Behavioral Inventory Parameters)。
如果您使用的是ssh
连接类型,则不可以使用它paramiko
。)
例如,Vagrant主机定义看起来像…
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_common_args='-o StrictHostKeyChecking=no'
要么
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
这样,无需更改任何环境变量即可成功运行Ansible。
$ ansible vagrant -i <path/to/hosts/file> -m ping
vagrant | SUCCESS => {
"changed": false,
"ping": "pong"
}
如果要对一组主机执行此操作,建议将其作为现有组的补充组var,如下所示:
[mytestsystems]
test[01:99].example.tld
[insecuressh:children]
mytestsystems
[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ANSIBLE_HOST_KEY_CHECKING
有效但-e 'host_key_checking=False'
不起作用。