2013-09-30 3 views
1

Я пытаюсь обеспечить некоторые среды разработки Vagrant + Ansible. Я использую OSX в качестве хоста и CentOS 5.6 в качестве гостя.Предоставление Dev с помощью Vagrant + Ansible не работает

Это мой Vagrantfile

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

    config.vm.box = "centos56" 

    config.vm.box_url = "http://dl.dropbox.com/u/9227672/centos-5.6-x86_64-netinstall-4.1.6.box" 

    config.vm.provision "ansible" do |ansible| 
    ansible.playbook = "playbook.yml" 
    ansible.verbose = true 
    end 

end 

Это мой сборник пьес:

--- 
- hosts: all 
    tasks: 
    - name: PING 
     command: ping 127.0.0.1 

Это ошибка:

~/dev/vms/wlsCluster/master2> vagrant provision 
[default] Running provisioner: ansible... 

PLAY [all] ******************************************************************** 

GATHERING FACTS *************************************************************** 
fatal: [default] => {'msg': "FAILED: (25, 'Inappropriate ioctl for device')", 'failed': True} 

TASK: [PING] ****************************************************************** 
FATAL: no hosts matched or all hosts have already failed -- aborting 


PLAY RECAP ******************************************************************** 
     to retry, use: --limit @/Users/brunajardim/playbook.retry 

default     : ok=0 changed=0 unreachable=1 failed=0 

Ansible failed to complete successfully. Any error output should be 
visible above. Please fix these errors and try again. 

Я читал, что это может быть что-то связано с частным ключи. И чтобы решить эту проблему, я могу использовать параметр * - private-key = $ HOME/.vagrant.d/insecure_private_key *. Теперь, как мне использовать брокерское положение команда с возможностью и передать этот параметр?

+0

Почему вы пытаетесь запустить пинг в качестве команды вместо того, чтобы использовать модуль пинг? Вы пробовали более простую команду, чтобы убедиться, что базовая связь работает, что-то вроде 'command: ls' – joemaller

ответ

1

Чудесно, все началось, когда я обновил свои версии Vagrant и Ansible. Я действительно не знаю, что случилось. Теперь я бегу на Vagrant 1.3.5 и Ansible 1.4 (devel 6008ea40ee).

Спасибо всем за ответы.

+0

У меня также была такая же проблема, я не понимал, что я запускаю старую версию Vagrant. Обновление исправлено. – trigoman

0

Вы заявили, что находитесь на OSX, поэтому это не должно быть проблемой, но стоит посмотреть и помочь другим с той же ошибкой «Несоответствующий ioctl для устройства».

В Windows это может означать, что у вас есть проблема с концами строк CRLF в одном или нескольких ваших файлах. Если вы используете Eclipse, вы можете преобразовать окончания строк под File-> Convert Line Delimiters. Возможно, ваш редактор показывает пробельные символы, и это может показать вам, что такое окончание строк.

Преобразование Vagrantfile в правильные концы строк решает эти ошибки в моем обеспечении (хотя в Windows мне пришлось использовать средство обеспечения оболочки для запуска Ansible на гостевой виртуальной машине), а также странные ошибки «dpkg-reconfigure: невозможно re-open stdin: Нет файла или каталога «

1

Сообщение об ошибке «Несоответствующее ioctl для устройства» возникает, если Ansible пытается запросить вас для ввода (по какой-либо причине) в неинтерактивной среде, такой как сборка Jenkins. Отсутствующим «устройством» здесь является TTY.

Предположительно Ansible попросил вас подтвердить ключ хоста или пароль.

0

Хотя вы решили эту проблему, но в будущем, пожалуйста, добавьте секретный ключ к Vagrantfile как это:

config.ssh.private_key_path = "$HOME/.vagrant.d/insecure_private_key" 
Смежные вопросы