Сейчас пользуюсь бродягой.
Я могу пинговать виртуальную машину с локального терминала.
Я хочу использовать ansible для проверки связи с этой бродячей виртуальной машиной:
$ ansible 192.168.33.101 -m ping -u root
Но есть ошибка:
192.168.33.101 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
"unreachable": true
}
Я добавил этот IP в /etc/ansible/hosts
файл:
192.168.33.101
На локальной и виртуальной машине установлен ssh. Так почему не могу достучаться?
Вам необходимо настроить ssh-соединение. Ансибл ping
название модуля сбивает с толку. В ping
модуль фактически создает ssh-соединение, чтобы проверить возможность входа в систему и что настроен пригодный для использования python.
Так нравится ping command
может сказать вам, что сетевое соединение с удаленным хостом работает ping module
сообщает вам, что Ansible может выполнять команды на удаленном хосте.
Посмотрите на официальная документация как настроить ssh-соединение с вашим Vagrant box.
В основном вам понадобится что-то вроде этого:
ansible-playbook --private-key=~/.vagrant.d/insecure_private_key -u vagrant -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml
Для специальных команд что-то вроде этого:
ansible --private-key=~/.vagrant.d/insecure_private_key -u vagrant ...
Я сделал следующее, чтобы это заработало. Я добавил открытый ключ моей главной машины к авторизованным ключам в vagrant vm.
# on host machine, copy the public key
cat ~/.ssh/id_rsa.pub
# on vagrant session
sudo vi ~/.ssh/authorized_keys
# add the above copied key here and exit
Теперь вы можете получить доступ и запустить ansible с хост-машины на бродячую машину.
Также много раз по умолчанию пользователь бродячей машины бродяга, поэтому вы также можете запустить следующую команду
ansible 192.168.33.101 -m ping -u vagrant
Надеюсь это поможет!