Два варіанти - перший, як ви сказали у власній відповіді, - встановлення змінної середовища 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
ігрових книг, які ви ведете проти ефемерних екземплярів ( поряд із програмою для тестування одиничних тестів проти бродячих VM, автоматизації для короткочасних екземплярів ec2)