Skip to main content
 首页 » 编程设计

python之使用 ansible API 打印 hoSTList

2025年05月04日11davidwang456

如何使用 ansible API 获取主机列表。我想要使​​用 ansible python API 等效于以下命令。

ansible all --list-host 

编辑:

这是正确的方法吗?

inventory = ansible.inventory.Inventory(options.inventory) 
for h in inventory.host_list(): 
    print h 

请您参考如下方法:

像这样:

import json 
from collections import namedtuple 
from ansible.parsing.dataloader import DataLoader 
from ansible.vars.manager import VariableManager 
from ansible.inventory.manager import InventoryManager 
 
loader = DataLoader() 
 
inventory = InventoryManager(loader=loader, sources=['PATH_TO_INVENTORY_FILE']) 
 
variable_manager = VariableManager(loader=loader, inventory=inventory) 
 
myhosts = variable_manager.get_vars()['groups']['all'] 

请注意 PATH_TO_INVENTORY_FILE 可以是相对于当前目录的绝对路径或相对路径,因此您可以执行类似“./inventory/hosts”的操作

另请注意,“所有”主机都将聚集在那里。如果您想过滤特定的组,只需指定组的名称而不是“全部”。