Как отключить проверку ключа хоста в пределах ansible api (2.4.3.0) [duplicate]

Все в «волшебном» синтаксисе вызова метода:

object.property();

Когда вы получаете свойство из объекта и вызываете его за один раз, объект будет контекстом для метода , Если вы вызываете тот же метод, но в отдельных шагах, контекст представляет собой глобальную область (окно):

var f = object.property; f();

Когда вы получаете ссылку на метод, он больше не привязан к объекту, это просто ссылка на простую функцию. То же самое происходит, когда вы получаете ссылку на использование в качестве обратного вызова:

this.saveNextLevelData(this.setAll);

Здесь вы привязываете контекст к функции:

this.saveNextLevelData(this.setAll.bind(this));

Если вы используете jQuery вы должны использовать метод $.proxy, а bind не поддерживается во всех браузерах:

this.saveNextLevelData($.proxy(this.setAll, this));
69
задан chicks 30 November 2015 в 20:18
поделиться

5 ответов

В связи с тем, что я ответил на это в 2014 году, я обновил свой ответ на счет для более поздних версий.

Да, вы можете сделать это на уровень хоста / инвентаря (что стало возможным на более новых версиях ) или глобальном уровне:

инвентарь:

Добавьте следующее.

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

host:

Добавьте следующее.

ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

хосты / параметры инвентаря будут работать с типом подключения ssh, а не paramiko.

global:

  • Вы можете сделать это либо в /etc/ansible/ansible.cfg, либо ~/.ansible.cfg file:
    [defaults]
    host_key_checking = False
    
  • Или вы можете передать его из командной строки:
    ansible-playbook -e 'host_key_checking=False' yourplaybook.yml
    
  • Или вы можете настроить и включить переменную (это может не работать в более новых версиях ):
    export ANSIBLE_HOST_KEY_CHECKING=False
    
93
ответ дан Rico 22 August 2018 в 01:17
поделиться
  • 1
    Я использую ansible 1.7.2, и мой опыт в том, что переменная среды ANSIBLE_HOST_KEY_CHECKING работает, но -e 'host_key_checking=False' не работает. – Marc Abramowitz 22 November 2014 в 18:43
  • 2
    Ваш первый оператор & quot; Да, но не на уровне хостов / инвентаря & quot; false. Вы можете использовать ansible_ssh_common_args='-o StrictHostKeyChecking=no' или ansible_ssh_extra_args='-o StrictHostKeyChecking=no' – Shammel Lee 10 September 2016 в 10:36
  • 3
    Только последняя опция работала для меня (экспорт ANSIBLE_HOST_KEY_CHECKING = False), прежде чем запускать мою книгу. – ted-k42 31 May 2017 в 06:56
  • 4
    "Да, но не на уровне хостов / инвентаря. & quot; - показано как ложное, подтвержденное моим ответом . Я бы даже сказал, что на самом деле это не ответ на вопрос о том, как установить его на уровне inventory . – gertvdijk 2 August 2017 в 10:06
  • 5
    @gertvdijk Я ответил на это в 2014 году. Ansible прошел кучу изменений. Это уже не так? – Rico 2 August 2017 в 16:11

В /etc/ansible/ansible.cfg раскомментируйте строку:

host_key_check = False

и в /etc/ansible/hosts раскомментируйте строку

client_ansible ansible_ssh_host=10.1.1.1 ansible_ssh_user=root ansible_ssh_pass=12345678

. Это все

0
ответ дан CDspace 22 August 2018 в 01:17
поделиться

Да, вы можете установить это на уровне инвентаря / хоста.

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

Что вы можете сделать на уровне инвентаря, добавьте

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

или

ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

в определение вашего хоста (см. Параметры сильной поведенческой инвентаризации ).

Это будет работать при условии, что вы используете тип соединения ssh, а не paramiko или что-то еще).

Например, определение хоста-бродяг будет выглядеть как ...

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"
}

Если вы хотите сделать это для группы хостов, вот предложение сделать его дополнительной группой var для существующей группы:

[mytestsystems]
test[01:99].example.tld

[insecuressh:children]
mytestsystems

[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
53
ответ дан gertvdijk 22 August 2018 в 01:17
поделиться
  • 1
    Это гораздо лучший ответ. – marcv81 6 April 2016 в 04:10
  • 2
    Это должен быть принятый ответ – Shammel Lee 10 September 2016 в 10:34
  • 3
    Это предложение сработало для меня, и я согласен, что это то, что должно быть задано на уровне проекта (а не на глобальном уровне) из-за проблем с безопасностью. – andrewdcato 5 May 2017 в 15:26
  • 4
    Я включил ansible_ssh_common_args: '-o StrictHostKeyChecking=no' в файл yml файла group_vars. – g . 18 September 2017 в 09:53

Я не мог использовать:

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

в файле инвентаря.

Я решил использовать:

server ansible_host=192.168.1.1 ansible_ssh_common_args= '-o UserKnownHostsFile=/dev/null'

Мне это помогло.

server ansible_host=192.168.1.1 ansible_ssh_common_args= '-o UserKnownHostsFile=/dev/null'

Это помогло мне.

server ansible_host=192.168.1.1 ansible_ssh_common_args= '-o UserKnownHostsFile=/dev/null'

g3]

Также вы можете установить эту переменную в группе вместо этого для каждого хоста:

[servers_group:vars]
ansible_ssh_common_args='-o UserKnownHostsFile=/dev/null'
1
ответ дан vskubriev 22 August 2018 в 01:17
поделиться
  • 1
    Установка опции UserKnownHostsFile / GlobalKnownHostsFile на /dev/null также действительно работает. Странно, что настройка StrictHostKeyChecking не работает для вас. Скорее всего, это вариант в конфигурации SSH. – gertvdijk 21 June 2016 в 08:16
0
ответ дан dnafication 4 November 2018 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: