Назад | Перейти на главную страницу

Не удается пропинговать бродягу из анзибля специальной командой

Сейчас пользуюсь бродягой.

Я могу пинговать виртуальную машину с локального терминала.

Я хочу использовать 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

Надеюсь это поможет!