2015-02-20 6 views
5

Ich versuche Vagrant mit Ansible auf meinem Mac zu starten, um eine Windows 7 VM zu erstellen und bereitzustellen. Ich kann "vagrantieren", wenn ich Ansible in der Vagrantfile nicht anrufe.Vagrant mit Ansible für Windows VM

ich folgende playbook.yml bin mit

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

Wenn ich den ansible Code zu meinem Vagrantfile hinzufügen, bekomme ich folgende Fehler

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

Für mich ist diese Fehler bedeutet, es nicht zu finde Python, weil es nach Python sucht, als wäre es ein Linux-Rechner.

Getrennt davon habe ich

laufen
ansible windows -m win_ping 

wo Fenster wird die IP-Adresse der VM von Vagrant gebracht, so vermute ich das Problem nicht mit ansible ist aber mit, wie Vagrant ansible aufruft.

Hat jemand versucht Vagrant + Ansible für eine Windows VM? Gibt es etwas Offensichtliches, das ich vermisse (vielleicht eine Option, um an Ansible zu gehen)?

I Vagrant Version 1.7.2 und ansible Version 1.8.3

+0

Können Sie eine 'which Ansible' und' welche Python 'zu überprüfen, wo sie sich befinden (vor allem die letztere). Kannst du auch 'ansible-playbook windows -m win_ping' ausführen und sehen, ob das außerhalb des Vagrant-Kontextes funktioniert?Sieht aus wie Vagabund würde 'Ansible-playbook' intern nennen: https://github.com/mitchellh/vagrant/blob/master/plugins/provisioners/ansible/provisioner.rb#L62 –

+0

Auch, tut' Vagrant up - debug 'geben Sie mehr Einblick? –

Antwort

0

In meinem Windows-Provisioning-Textbuch verwende stelle ich dies in der Kopfzeile:

gather_facts: keine

1

Mit ansible Bereitstellung eines Windows Box (entweder Vagrant, VM oder reale Maschine) ist die Konfiguration in erster Linie viel wichtiger. Bevor Sie Ihr Playbook erstellen, sollten Sie eine korrekte Konfiguration haben.

Windows-Box verwaltet von Vagrant, Ihre Konfigurationsdatei group_vars/windows-dev wie etwas enthalten sollte Nachdem:

für ansible-port
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 

Seien Sie sicher, dass die richtigen Anmeldeinformationen einfügen und wählen Sie den richtigen Port. Wenn Sie mit Vagrant arbeiten, können Sie den korrekten Port aus den Log-Nachrichten erhalten, die von Vagrant nach einem vagrant up erzeugt wurden. In meinem Fall sieht das wie folgt aus:

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

Mein Vagrantfile could be found here, wenn Sie Interesse. Es verwendet das Microsoft Edge auf Windows 10 Stable (14.xxx) Bild von https://developer.microsoft.com/en-us/microsoft-edge/tools/vms.

Nun ist die win_ping Modul funktionieren sollte - unter der Annahme, dass you've auf Ihrem Windows-Box alle notwendigen Vorbereitung Schritte getan, die das Skript ConfigureRemotingForAnsible.ps1 (weitere Informationen rund um die Ausführung Zentrum könnte in der machen Windows-ansible bereit Kapitel in this blog post finden):

ansible windows-dev -i hostsfile -m win_ping 

Nur wenn diese Ihnen ein SUCCESS gibt Sie mit Crafting Ihr Textbuch vorgehen sollen.