簡體   English   中英

如何使用 Ansible 1.x API 列出主機

[英]How do I list hosts using Ansible 1.x API

Ansible-playbook 有一個--list-hosts cli 開關,它只輸出受 playbook 中每個 play 影響的主機。 我正在尋找一種通過 python API 訪問相同信息的方法。

我現在用來測試的(非常)基本腳本是

#!/usr/bin/python 
import ansible.runner
import ansible.playbook
import ansible.inventory
from ansible import callbacks
from ansible import utils
import json

# hosts list
hosts = ["127.0.0.1"]
# set up the inventory, if no group is defined then 'all' group is used by default
example_inventory = ansible.inventory.Inventory(hosts)

pm = ansible.runner.Runner(
    module_name = 'command',
    module_args = 'uname -a',
    timeout = 5,
    inventory = example_inventory,
    subset = 'all' # name of the hosts group 
    )

out = pm.run()

print json.dumps(out, sort_keys=True, indent=4, separators=(',', ': '))

我只是不知道要向ansible.runner.Runner()添加什么以使其輸出受影響的主機並退出。

我不確定你想實現什么,但ansible.runner.Runner實際上是一項任務而不是劇本。
您的腳本是一種更可靠的CLI 而不是ansible-playbook
ansible沒有任何類型的--list-hosts ,而ansible-playbook有。
您可以在此處查看 listhosts 是如何完成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM