Два варианта - первый, как вы сказали в своем ответе, это установка переменной среды ANSIBLE_HOST_KEY_CHECKING
в False.
Второй способ установить его - поместить его в файл ansible.cfg, и это действительно полезный параметр, поскольку вы можете установить его глобально (на уровне системы или пользователя, в /etc/ansible/ansible.cfg
или ~/.ansible.cfg
) или в файле конфигурации в том же каталоге. в качестве пьесы вы работаете.
Для этого создайте ansible.cfg
файл в одном из этих мест и включите в него:
[defaults]
host_key_checking = False
Вы также можете установить множество других удобных настроек по умолчанию, например, собирать факты в начале игры, объединять ли хеши, объявленные в нескольких местах, или заменять друг друга, и так далее. Там целый большой список вариантов здесь в анзибле документы.
Редактировать: заметка о безопасности.
Проверка ключа хоста SSH является значимым уровнем безопасности для постоянных хостов - если вы подключаетесь к одному и тому же компьютеру много раз, полезно принять ключ хоста локально.
Для более долгоживущих экземпляров EC2 имеет смысл принять ключ хоста с задачей, которая запускается только один раз при первоначальном создании экземпляра:
- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"
Не существует значения безопасности для проверки ключей хоста в тех случаях, когда вы динамически встаете и удаляете сразу после выполнения playbook, но есть значение безопасности при проверке ключей хоста для постоянных компьютеров. Таким образом, вы должны управлять проверкой ключей хоста по-разному для каждой логической среды.
- Оставьте проверку включенной по умолчанию (в
~/.ansible.cfg
)
- Отключите проверку ключа хоста в рабочем каталоге для книг воспроизведения, которые вы запускаете для эфемерных экземпляров (
./ansible.cfg
наряду с книгой воспроизведения для модульных тестов против бродячих виртуальных машин, автоматизации для кратковременных экземпляров ec2)