无法禁用Ansible的主机密钥检查

Sla*_* II 17 ssh ubuntu vagrant ansible

我正在使用Ansible 1.5.4Ubuntu 14.04 LTS上配置我的Vagrant 1.4.3盒子.

我在详细模式下收到以下错误消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Run Code Online (Sandbox Code Playgroud)

我可以这样做:export ANSIBLE_HOST_KEY_CHECKING=False我有以下几行~/.ansible.cfg:

[defaults]
host_key_checking = False
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

可能是什么问题呢?谢谢!

更新#1

我这样直接调用它(不使用vagrant命令):

ansible-playbook playbook.yml -i inventory.ini --user=vagrant --ask-pass -vvvv
Run Code Online (Sandbox Code Playgroud)

库存是:

[default]
localhost:2222
Run Code Online (Sandbox Code Playgroud)

jab*_*lab 10

您需要通过Vagrantfile项目设置它.当Vagrant Ansible配置器对其进行调用时ansible-playbook,始终 设置ANSIBLE_HOST_KEY_CHECKING环境变量的值.

如果存在, Ansible本身将获取环境变量的值.因此,Vagrant将覆盖您使用的值ansible.cfg.

因此,您只需要:

machine.vm.provision :ansible do |ansible|
  ansible.host_key_checking = false
  # etc.
end
Run Code Online (Sandbox Code Playgroud)


che*_*rbr 7

可能不是你的问题,但值得一试:我在此停滞不前,直到我意识到我加入了

host_key_checking = False

在一个没有的会议下[defaults].一旦我实际将它移动到下面[defaults],更改主机键不再停止任何事情.