Могу ли я обойти проверку ключа хоста в Ansible?

19

Я запускаю Ansible playbook с тонким хаком для работы с произвольным портом, перенаправленным на порт (поэтому я могу использовать одну машину без прямого доступа ко многим машинам).

У меня есть предварительная задача для изменения ansible_portпеременной, поэтому, когда я начинаю выполнять свои реальные задачи и роли, мне предлагается принять hostkeys для localhost на некотором случайном порте.

Поскольку я наивен и не беспокоюсь о безопасности, я бы хотел, чтобы ssh автоматически принимал и перенаправлял /dev/null(или другой файл для регистрации).

Это возможно?

Питер Тернер
источник
Вы можете сделать это с помощью параметров ssh, передаваемых в ansible config.
Иржи Клауда

Ответы:

26

Обычно это делается путем установки следующего значения в ansible.cfg:

[defaults]
host_key_checking = False

Если вы не хотите изменять, ansible.cfgвы можете установить переменную окружения следующим образом:

export ANSIBLE_HOST_KEY_CHECKING=False

Источник: http://docs.ansible.com/ansible/intro_getting_started.html#host-key-checking

Zlemini
источник
Я использую MacOS и устанавливаю host_key_checking = False, но я по-прежнему получаю сообщение «ПРЕДУПРЕЖДЕНИЕ: ВОЗМОЖНО ОБНАРУЖЕНО РАЗМЕЩЕНИЕ DNS!». Я исправил это после того, как понял, что ранее подключился к целевому хосту с тем же именем, а затем перестроил его, чтобы в ./ssh/known_hosts был старый ключ.
Чад Джулиано
21

В ваш ansible.cfgфайл нужно добавить следующую строку:

ssh_args = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Вы также можете добавить эти опции в свой ~/.ssh/configна каждой машине, с которой вы запускаете что-то вроде этого:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null
Иржи Клауда
источник
1
Это должно работать. Кроме того, посмотрите на файл ansible.cfg для дополнительных настроек :)
Dawny33
+1 для дополнения Доуни, потому что те, кто использует Paramiko, должны будут использовать ansible.cfg
Лесной Охотник
1
Есть ли подходящий способ установить это внутри playbook? Я пытался, ansible_ssh_common_argsи ansible_ssh_extra_argsэто не отменяет то, что у меня есть в ansible.cfg. У меня есть ansible.cfg, который я использую для всего остального и предпочел бы просто переопределить эти параметры для этого типа playbook, чем скопировать его просто для того, чтобы внести это изменение.
Питер Тернер
3
Я не могу говорить с этими переменными, Питер, но вы можете поместить модифицированный ansible.cfg в каталог с этой книгой, и он будет иметь приоритет.
Лесной Охотник
1
UserKnownHostsFile = / dev / null полностью нарушить безопасность ssh
mmv-ru