2016-07-15 3 views
0

Я пытаюсь научиться незаменимым и следую за книгой O'riley Ansible Up and running.Ошибка: не удалось подключиться к хосту через ssh

В разделе Начало работы книги, он просит меня установить анзибль, VirtualBox и бродяга, а затем с помощью CLI запуска:

vagrant init ubuntu/trusty64 

vagrant up 

После этого я могу SSH в VM через бродячего SSH или с помощью:

ssh [email protected] -p 2222 -i /Users/XXX/playbooks/.vagrant/machines/default/virtualbox/private_key 

Следующая создает файл хостов, который выглядит следующим образом:

testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 \ ansible_ssh_user=vagrant \ ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key 

Наконец работает эта команда:

анзибль TestServer -i хозяева -m пинганем

который получает меня:

testserver | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Добавление -vvv получает меня:

No config file found; using defaults 
<127.0.0.1> ESTABLISH SSH CONNECTION FOR USER: None 
<127.0.0.1> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o Port=2222 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/XXX/.ansible/cp/ansible-ssh-%h-%p-%r 127.0.0.1 '/bin/sh -c '"'"'(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1468541275.7-255802522359895 `" && echo ansible-tmp-1468541275.7-255802522359895="` echo $HOME/.ansible/tmp/ansible-tmp-1468541275.7-255802522359895 `") && sleep 0'"'"'' 
testserver | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Я попытался изменения ansible_ssh_private_key_file в файл hosts указывать на полный путь закрытого ключа, но это все еще не сработало:

ansible testserver -i hosts -m ping -vvv 
No config file found; using defaults 
<127.0.0.1> ESTABLISH SSH CONNECTION FOR USER: None 
<127.0.0.1> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o Port=2222 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/Users/XXX/.ansible/cp/ansible-ssh-%h-%p-%r 127.0.0.1 '/bin/sh -c '"'"'(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1468541370.61-137685863794569 `" && echo ansible-tmp-1468541370.61-137685863794569="` echo $HOME/.ansible/tmp/ansible-tmp-1468541370.61-137685863794569 `") && sleep 0'"'"'' 
testserver | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh.", 
    "unreachable": true 
} 

Это моя анзибль версия:

анзибль --version анзибль 2.1.0.0 конфигурационный файл = настроен модуль поиска пути = по умолчанию без переопределения

Кто-нибудь есть какие-либо идеи, почему анзибль ISN Не подключаюсь к моей бродящей ВМ?

+0

Если вам нужна помощь, вам нужно очистить свой вопрос форматированием. – Rob

+0

ctrl-k выделяет код для вас. –

+0

Огромное спасибо Робу за помощь в редактировании !!! Я еще не привык работать с редактором SO. – user2221830

ответ

0

Я не вижу ни одной из ваших переменных инвентаря, предшествующих первой, которая вступает в силу в команде ssh. Действительно ли ваш файл инвентаризации выглядит так?

testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 \ ansible_ssh_user=vagrant \ ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key 

Вы не должны иметь обратную косую черту. Прямое переформатирование является

testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key 

Однако, в конечном счете, вы, вероятно, хотите split these out into separate host_vars files.

+0

Сын пистолета, который был проблемой. Это было также в книге, но я просто просто взглянул на нее и скопировал/вставлял код. – user2221830

Смежные вопросы