Ansible не может пинговать мой бродячий ящик с бродячим небезопасным открытым ключом

Я использую Ansible 2.4.1.0 и Vagrant 2.0.1 с VirtualBox на osx, и хотя подготовка моего бродячего ящика отлично работает с ansible, я получаю сообщение о недоступности при попытке выполнить ping с помощью:

➜  ansible all -m ping
vagrant_django | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n", 
    "unreachable": true
}

Решения, предлагаемые по аналогичным вопросам, не сработали для меня (например, добавление ключа vagrant unsecure pub в мою доступную конфигурацию). Я просто не могу заставить его работать с бродячим небезопасным открытым ключом.

Fwiw, вот мой файл ansible.cfg:

[defaults]
host_key_checking = False
inventory = ./ansible/hosts
roles_path = ./ansible/roles
private_key_file = ~/.vagrant.d/insecure_private_key

И вот мой файл ansible / hosts (доступный инвентарь):

[vagrantboxes]
vagrant_vm ansible_ssh_user=vagrant ansible_ssh_host=192.168.10.100 ansible_ssh_port=22 ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key

Что действительно работало, так это использование моего собственного открытого ключа SSH. Когда я добавляю это в authorized_keys в моем бродячем поле, я могу откликнуться на анонимный пинг:

➜  ansible all -m ping       
vagrant_django | SUCCESS => {
    "changed": false, 
    "failed": false, 
    "ping": "pong"
}

Я тоже не могу подключиться через ssh, так что, похоже, это основная проблема. Это исправлено добавлением моего собственного ключа паба в поле vagrant в authorized_hosts.

Я хотел бы знать, почему это не работает с бродячим небезопасным ключом. Кто-нибудь знает?

PS: Чтобы уточнить, хотя основная причина похожа на этот другой вопрос, симптомы и контекст другие. Я мог снабдить свой ящик анзиблем, но не смог пинговать его. Это оправдывает еще один вопрос imho.


person Raoul    schedule 24.11.2017    source источник


Ответы (1)


Я хотел бы знать, почему это не работает с бродячим небезопасным ключом. Кто-нибудь знает?

Потому что незащищенный ключ Vagrant используется только для первоначального подключения к коробке. По умолчанию Vagrant заменяет его только что сгенерированным ключом, который вы найдете в .vagrant/machines/<machine_name>/virtualbox/private_key в каталоге проекта.

Вы также найдете автоматически сгенерированный инвентарь Ansible в .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory, если вы используете средство обеспечения Ansible в Vagrantfile, поэтому вам не нужно создавать свой собственный.

person techraf    schedule 24.11.2017
comment
Спасибо! Это действительно была информация, которую я пропустил. Все, что мне нужно было сделать, это включить автоматически сгенерированный инвентарь в мой ansible.cfg. Также нашел это в документации, которую я сначала пропустил: vagrantup.com/docs/ подготовка / ansible_intro.html - person Raoul; 25.11.2017
comment
Я мог бы сам выяснить причину, используя: 'vagrant ssh-config' - person Raoul; 25.11.2017