如何忽略可靠的SSH真实性检查?

有没有办法忽略由Ansible所做的SSH真实性检查? 例如,当我刚刚安装一个新的服务器,我必须回答是这个问题:

GATHERING FACTS *************************************************************** The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is xx:yy:zz:.... Are you sure you want to continue connecting (yes/no)? 

我知道这通常是一个糟糕的主意,但是我将它join到一个脚本中,该脚本首先在我的云提供商处创build一个新的虚拟服务器,然后自动调用我的可靠的手册来configuration它。 我想在脚本执行过程中避免任何人为干预。

有两个选项 – 第一个,就像你在自己的答案中所说的那样,将环境variablesANSIBLE_HOST_KEY_CHECKING设置为False。

设置它的第二种方法是把它放在一个ansible.cfg文件中,这是一个非常有用的选项,因为您可以将其设置为全局(在系统或用户级别,在/etc/ansible/ansible.cfg~/.ansible.cfg ),或者在与您正在运行的手册相同的目录下的configuration文件中。

为此,请在其中一个位置创build一个ansible.cfg文件,并包含以下内容:

 [defaults] host_key_checking = False 

您还可以在其中设置许多其他方便的默认值,例如是否在游戏开始时收集事实,是否合并在多个位置声明的散列或者将散列合并到另一个中,等等。 在Ansible文档中有一个很大的选项列表。

我find了答案,您需要将环境variablesANSIBLE_HOST_KEY_CHECKING设置为False 。 例如:

 ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook ... 

转发给nikobelia

对于那些使用jenkins来运行游戏手册的人,我只是在运行ansible-playbook之前将其添加到了我的jenkins工作环境variablesANSIBLE_HOST_KEY_CHECKING = False。例如:

 export ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook 'playbook.yml' \ --extra-vars="some vars..." \ --tags="tags_name..." -vv