我正在尝试在我的客户机上的各种操作系统上安装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的虚拟机。知道为什么会这样吗?
答案 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"