使用Ansible在虚拟机上安装VMware Tools

时间:2016-09-08 19:03:17

标签: virtual-machine ansible ansible-playbook vmware-tools

我正在尝试在我的客户机上的各种操作系统上安装VMware Tools。这是我现在的代码。

---
- 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"

这是我的hosts.ini文件的样子:

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

这是我用来运行它的命令。哪个有用。

ansible-playbook -i hosts.ini vmwaretools.yml

但是,这是我运行后得到的消息。

  好的:[myhost.com]
  任务[debian |安装open-vm-tools]   ***************************************任务路径:/ Users / Desktop / Ansible / vmwaretools .yml:5跳过:   [myhost.com] => {“已更改”:false,“skip_reason”:   “条件检查失败”,“跳过”:true}

     

TASK [通过Chocolatey安装vmware工具]   *************************************任务路径:/Users/Desktop/Ansible/vmwaretools.yml :9跳过:   [myhost.com] => {“已更改”:false,“skip_reason”:   “条件检查失败”,“跳过”:true}

     

PLAY RECAP   ************************************************** ******************* myhost.com:ok = 1已更改= 0无法访问= 0
  失败= 0

为什么说条件失败检查?我确信我有运行Debian和Windows的虚拟机。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

来自你的评论:

  

我的假设是,一旦连接到主机系统,它就可以访问每个VM并检查分发是否匹配,如果匹配,则会在VM上安装vmware工具。

没有。 Ansible必须连接到每个虚拟机并在该计算机上运行playbook。无法将任务委派给主机。

即使您运行ESXi主机并选择"安装VMware Tools"在特定的机器上,它唯一能做的就是将ISO映像安装到机器上。然后,安装过程在本地进行(通过手动管理员操作或通过自动运行)。

  

为什么说条件失败检查?

您正在VMware主机上运行不是Debian的Playbook。第二个条件永远不会成立:

when: ansible_distribution == "Windows"

ansible_distribution包含更详细的信息,例如:

"ansible_distribution": "Microsoft Windows NT 10.0.14366.0"

您需要使用:

when: ansible_os_family == "Windows"