0

我正在尝试在我的来宾计算机上的各种操作系统上安装 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] ****************************************** 任务路径:/用户/桌面/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}

播放回顾 ************************************************ ********************* myhost.com : 正常=1 更改=0 无法访问=0
失败=0

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

4

1 回答 1

1

从您的评论中:

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

不可以。Ansible 必须连接到每个虚拟机并在该机器上运行 playbook。无法将任务委派给主机。

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

为什么它说条件失败检查?

您正在 VMware 主机上运行 playbook,但不是Debian. 第二个条件永远不会成立:

when: ansible_distribution == "Windows"

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

"ansible_distribution": "Microsoft Windows NT 10.0.14366.0"

你需要使用:

when: ansible_os_family == "Windows"
于 2016-09-08T22:46:46.427 回答