AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1178765
Accepted
Suffren
Suffren
Asked: 2025-04-09 17:49:16 +0800 CST2025-04-09 17:49:16 +0800 CST 2025-04-09 17:49:16 +0800 CST

Ansible vmware.vmware.vms 动态库存插件

  • 772

我想使用 vmware.vmware.vms ansible 插件创建动态清单。我想自定义清单以仅选择 Linux 主机。

我不明白该插件是如何工作的,并且 ansible 文档中的示例和解释很差(https://docs.ansible.com/ansible/latest/collections/vmware/vmware/vms_inventory.html#ansible-collections-vmware-vmware-vms-inventory)

使用下面的代码,插件返回了3个组(linux、PoweredOn、PoweredOff)。在创建的“linux”组下,所有来自vmware的主机(包括Windows主机)都会返回。即使我告诉插件使用“guest.guestFamily”属性进行分组,插件仍然会返回一长串包含不需要的值的输出。

plugin: vmware.vmware.vms
hostname: "REDACTED"
username: "REDACTED"
password: "REDACTED"
validate_certs: false
properties: ["guest"]
groups:
  linux: guest.guestFamily

我的目标是:

  • 如何使用插件来过滤特定主机并将其添加到组中
  • 如何避免输出不需要的组(例如 PoweredOn 和 PoweredOff 默认组)
  • 如何将插件的返回结果输出为可用的 .yaml/.ini 格式或文件(可与剧本一起使用)
ansible
  • 1 1 个回答
  • 20 Views

1 个回答

  • Voted
  1. Best Answer
    Gerald Schneider
    2025-04-09T18:13:13+08:002025-04-09T18:13:13+08:00

    以下是我的工作组定义:

    properties:
      - 'name'
      - 'config.name'
      - 'guest.guestFamily'
      - 'summary.customValue'
    
    hostnames:
      - config.name
    
    groups:
      linux: "'linuxGuest' == guest.guestFamily"
      windows: "'windowsGuest' == guest.guestFamily"
      department_A: "'A' in summary.customValue | map(attribute='value')"
      department_B: "'B' in summary.customValue | map(attribute='value')"
    

    我没有尝试删除电源状态组,因为这与我无关。

    要使用它,您只需像常规库存一样提供库存文件定义。

    ansible -i vmware.yml -m ping linux
    ansible-playbook -i vmware.yml my-playbook.yml
    
    • 1

相关问题

  • Ansible:将字符串转换为字典

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve