Да, вы можете установить это на уровне инвентаря / хоста.
Имея уже принятый ответ, я думаю, что это лучший ответ на вопрос о том, как справиться с этим на уровне инвентаря. Я считаю это более безопасным, если изолировать этот небезопасный параметр от хостов, необходимых для этого (например, тестовых систем, локальных машин разработки).
Что вы можете сделать на уровне инвентаря, так это добавить
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
или
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
к определению вашего хоста (см. Параметры Ansible Behavioral Inventory ).
Это будет работать при условии, что вы используете 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"
}
Если вы хотите сделать это для группы хостов, вот предложение сделать это дополнительной групповой переменной для существующей группы, например:
[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'
не работает.