2015-02-20 3 views
5

Я пытаюсь запустить Vagrant с Ansible на своем Mac для создания и предоставления виртуальной машины Windows 7. Я могу «брезговать», когда я не вызываю Ansible в Vagrantfile.Vagrant with Ansible for Windows VM

Я использую следующий playbook.yml

--- 
- hosts: all 
    tasks: 
    - name: run win ping 
     win_ping: 

Когда я добавляю анзибль код на Vagrantfile, я получаю следующую ошибку

GATHERING FACTS *************************************************************** 
failed: [default] => {"failed": true, "parsed": false} 
/bin/sh: /usr/bin/python: No such file or directory 

Для меня эта ошибка означает, что он не в состоянии найти Python, потому что он ищет Python, как если бы он был машиной Linux.

Отдельно я запустить

ansible windows -m win_ping 

где окна является IP-адрес виртуальной машины воспитывала Vagrant поэтому я подозреваю, что проблема не связана с анзибль, но с тем, как Vagrant является вызовом анзибль.

Пробовал ли кто-нибудь Vagrant + Ansible для Windows VM? Есть ли что-то очевидное, что мне не хватает (возможно, вариант перейти к Ansible)?

Я использую Vagrant версии 1.7.2 и анзибль версия 1.8.3

+0

Можете ли вы запустить 'which ansible' и' which python', чтобы проверить, где они расположены (особенно последний). Кроме того, вы можете запустить 'ansible-playbook windows -m win_ping' и посмотреть, работает ли это за пределами бродячего контекста?Похоже, бродяга будет называть 'ansible-playbook' внутренне: https://github.com/mitchellh/vagrant/blob/master/plugins/provisioners/ansible/provisioner.rb#L62 –

+0

Также,' vagrant up --debug 'дать вам больше понимания? –

ответ

0

В моей ОС Windows провизий пьес я установить это в заголовке:

gather_facts: нет

1

С анзибль предварительной инициализации Windows, (либо Vagrant, VM, либо реальная машина), конфигурация гораздо важнее в первую очередь. Прежде чем создавать свой учебник, вы должны иметь правильную конфигурацию.

Имея ящик для Windows под управлением Vagrant, файл конфигурации group_vars/windows-dev должен содержать что-то вроде:

ansible_user: IEUser 
ansible_password: Passw0rd! 
ansible_port: 55986 # not 5986, as we would use for non-virtualized environments 
ansible_connection: winrm 
ansible_winrm_server_cert_validation: ignore 

не забудьте вставить правильные учетные данные и выбрать правильный порт для ansible-port. Работая с Vagrant, вы можете получить правильный порт из журнальных сообщений, полученных Vagrant после vagrant up. В моем случае это выглядит следующим образом:

==> default: Forwarding ports... 
    default: 5985 (guest) => 55985 (host) (adapter 1) 
    default: 5986 (guest) => 55986 (host) (adapter 1) 

Мои Vagrantfile could be found here, если, вас интересует. Он использует Microsoft Edge на Windows 10 Stable (14.xxx) Изображение от https://developer.microsoft.com/en-us/microsoft-edge/tools/vms.

Теперь win_ping модуля должен работать - при условии, что you've сделать все необходимые шаги на приготовление вашей коробки Windows, который сосредотачивается вокруг выполнения сценария ConfigureRemotingForAnsible.ps1 (больше информации можно найти в Создания Windows, анзибль готового главу в this blog post):

ansible windows-dev -i hostsfile -m win_ping 

только, если это дает вам SUCCESS вы должны приступить к разработке вашего PlayBook.

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