В связи с тем, что я ответил на это в 2014 году, я обновил свой ответ, чтобы учесть более свежие версии ansible.
Да, вы можете сделать это на уровне хоста / инвентаря (что стало возможным в более новых версиях ansible ) или на глобальном уровне:
инвентарь :
Добавьте следующее.
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
хост :
Добавьте следующее.
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Параметры хостов / инвентаря будут работать с типом подключения, ssh
а не с ним paramiko
. Некоторые люди могут категорически возразить, что инвентарь и хосты более безопасны, потому что объем более ограничен.
Глобальный:
Руководство пользователя Ansible - Проверка ключа хоста
Сделать это можно в файле /etc/ansible/ansible.cfg
или ~/.ansible.cfg
:
[defaults]
host_key_checking = False
Или вы можете настроить и переменную env (это может не работать в более новых версиях ansible):
export ANSIBLE_HOST_KEY_CHECKING=False
ANSIBLE_HOST_KEY_CHECKING
работает, но-e 'host_key_checking=False'
не работает.ansible_ssh_common_args='-o StrictHostKeyChecking=no'
илиansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Да, вы можете установить это на уровне инвентаря / хоста.
Имея уже принятый ответ, я думаю, что это лучший ответ на вопрос о том, как справиться с этим на уровне инвентаря. Я считаю это более безопасным, если изолировать этот небезопасный параметр от хостов, необходимых для этого (например, тестовых систем, локальных машин разработки).
Что вы можете сделать на уровне инвентаря, так это добавить
или
к определению вашего хоста (см. Параметры Ansible Behavioral Inventory ).
Это будет работать при условии, что вы используете
ssh
тип подключения, а неparamiko
или что-то еще).Например, определение хоста Vagrant будет выглядеть так…
или
После этого запуск Ansible будет успешным без изменения каких-либо переменных среды.
Если вы хотите сделать это для группы хостов, вот предложение сделать это дополнительной групповой переменной для существующей группы, например:
источник
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
в yml файл group_vars.Я не мог использовать:
в файле инвентаря. Кажется, что ansible не рассматривает этот вариант в моем случае (ansible 2.0.1.0 из pip в ubuntu 14.04)
Решил использовать:
Мне это помогло.
Также вы можете установить эту переменную в группе вместо этого для каждого хоста:
источник
UserKnownHostsFile
/GlobalKnownHostsFile
опция/dev/null
также работает на самом деле. Странно, что уStrictHostKeyChecking
вас не работает настройка . Скорее всего, причиной является какая-то опция в вашей конфигурации SSH.-o UserKnownHostsFile=/dev/null
. Без него у меня тоже просто не работало, независимо от места и способа, которые я указалansible_ssh_common_args
в других ответах.В
/etc/ansible/ansible.cfg
раскомментируйте строку:и
/etc/ansible/hosts
раскомментируйте строкуВот и все
источник
Добавление следующего в конфигурацию ansible работало при использовании специальных команд ansible:
Версия Ansible
источник
Вы устанавливаете эти конфигурации в файле
/etc/ansible/ansible.cfg
или~/.ansible.cfg
илиansible.cfg
(в текущем каталоге)протестировано с помощью ansible 2.9.6 в ubuntu 20.04
источник