2

ansible API を使用してホストリストだけを取得するにはどうすればよいですか。ansible python API を使用して、以下のコマンドに相当するものが必要です。

ansible all --list-host

編集:

これは正しい方法ですか?

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

1 に答える 1

1

このような:

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 は現在のディレクトリに対して絶対または相対であることに注意してください。

また、「すべて」のホストが収集されることに注意してください。特定のグループをフィルタリングしたい場合は、'all' の代わりにグループの名前を指定してください。

于 2018-03-06T09:25:57.547 に答える