2016-09-08 4 views
0

Ich versuche VMware Tools auf verschiedenen Betriebssystemen auf meinen Gastcomputern zu installieren. Dies ist der Code, den ich jetzt habe.Installieren von VMware Tools auf virtuellen Maschinen mit Ansible

--- 
- hosts: all 

    tasks: 
     - name: debian | installing open-vm-tools 
      apt: name=open-vm-tools state=present 
      when: ansible_os_family == "Debian" 

     - name: install vmware tools via Chocolatey 
      win_chocolatey: name=vmware-tools state=present 
      when: ansible_distribution == "Windows" 

Dies ist, was meine hosts.ini Datei wie folgt aussieht:

[my-host] 
myhost.com ansible_ssh_pass=mypw ansible_ssh_user=root 

Dies ist der Befehl, ich es laufen verwenden. Was funktioniert.

ansible-playbook -i hosts.ini vmwaretools.yml 

Allerdings ist dies die Nachricht, die ich bekomme, nachdem ich es ausgeführt habe.

ok: [myhost.com]
TASK [debian | open-vm-tools installieren] *************************************** Aufgabenpfad: /Users/Desktop/Ansible/vmwaretools.yml:5 Überspringen: [myhost.com] => { "geändert": false, "skip_reason": "Bedingte Prüfung nicht bestanden", "überspringen": true}

TASK [installiere vmware tools über Chocolatey] ************************************* Aufgabenpfad:/Benutzer/Desktop/ansible/vmwaretools.yml: 9-Skipping: [myhost.com] => { "geändert": false, "skip_reason": "Bedingte Prüfung nicht bestanden", "überspringen": true}

PLAY RECAP **************************************************** ************ ********* myhost.com: ok = 1 geändert = 0 nicht erreichbar = 0
failed = 0

Warum es bedingte sagt fail überprüft? Ich bin sicher, ich habe VMs mit Debian und Windows läuft. Irgendeine Idee, warum das passiert?

+0

Wo ist der Teil, den Sie an Ihre VMs verbinden ? Ich sehe nur einen Host - 'myhost.com'. –

+0

es ist nur ein Host. Ich hätte es einfach tun sollen 'Hosts: my-host' statt' all'. Ich dachte nicht, dass es einen Unterschied machen würde. – user3078335

+0

Sorry, wenn das irgendwie dumm scheint. Ich bin immer noch ein Lerner. Was meinst du mit den VMs verbinden? Ich gehe davon aus, dass nach dem Herstellen einer Verbindung zum Host-System Zugriff auf jede VM besteht und überprüft wird, ob die Verteilung übereinstimmt. Wenn dies der Fall ist, werden vmware-Tools auf der VM installiert. Liege ich falsch? Wenn nicht, bitte erkläre es mir. Ich bin noch sehr neu dazu. – user3078335

Antwort

0

Von Ihrem Kommentar:

Meine Vermutung ist, dass, sobald Sie auf dem Host-System zu verbinden, es Zugriff auf jede VM und prüft, ob die Verteilung Spiele zu sehen ist, und wenn ja, installiert es vmware Tools auf der VM.

Nein. Ansible muss eine Verbindung zu jeder einzelnen virtuellen Maschine herstellen und auf dieser Maschine ein Playbook ausführen. Es gibt keine Möglichkeit, die Aufgaben an den Hostcomputer zu delegieren.

Auch wenn Sie einen ESXi-Host ausführen und auf einem bestimmten Computer "VMware Tools installieren" auswählen, wird lediglich ein ISO-Image auf dem Computer installiert. Der Installationsvorgang erfolgt dann lokal (entweder durch manuelle Administratoraktion oder durch Autorun).

Warum wird der bedingte Fehler überprüft?

Sie führen das Playbook auf dem VMware-Hostcomputer aus, der nicht Debian ist.Die zweite Bedingung wird nie wahr sein:

when: ansible_distribution == "Windows" 

ansible_distribution enthält detaillierte Informationen, wie:

"ansible_distribution": "Microsoft Windows NT 10.0.14366.0" 

Sie müssen verwenden:

when: ansible_os_family == "Windows" 
+0

Vielen Dank für Ihre Antwort. Es ist jetzt ein bisschen klarer. Müsste ich win_chocalatey auf meinem vm installieren, damit 'win_chocolatey: name = vmware-tools state = present' funktioniert? – user3078335

+0

Ja, offiziell tun Sie es in PowerShell 'iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex' – techraf

Verwandte Themen