mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-03-20 03:57:02 +08:00
Add hosts with var set helped script from ticket 4848. Thanks doteast
This commit is contained in:
44
scripts/hosts_with_var_set
Executable file
44
scripts/hosts_with_var_set
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/python
|
||||
# doteast; base from skvidal
|
||||
# dump out the hosts with var=value
|
||||
|
||||
import ansible.inventory
|
||||
import sys
|
||||
from optparse import OptionParser
|
||||
|
||||
|
||||
parser = OptionParser(version="1.0")
|
||||
parser.add_option('-i', dest='inventory', default=None,
|
||||
help="Path to inventory file/dir")
|
||||
parser.add_option('-o', dest='variable', default=None,
|
||||
help="variable name to check")
|
||||
|
||||
opts, args = parser.parse_args(sys.argv[1:])
|
||||
|
||||
if opts.inventory:
|
||||
inv = ansible.inventory.Inventory(host_list=opts.inventory)
|
||||
else:
|
||||
inv = ansible.inventory.Inventory()
|
||||
|
||||
if opts.variable.find("=") == -1:
|
||||
print "Error -o requires var=value format argument"
|
||||
sys.exit(-1)
|
||||
|
||||
var_name, value = opts.variable.split('=')
|
||||
|
||||
if value == "":
|
||||
value="None"
|
||||
|
||||
var_set = []
|
||||
|
||||
for host in sorted(inv.get_hosts()):
|
||||
vars = inv.get_variables(host.name)
|
||||
if vars.has_key(var_name):
|
||||
if str(vars.get(var_name)).find(value) != -1:
|
||||
var_set.append(host.name)
|
||||
|
||||
print 'hosts with %s:' % var_name
|
||||
for host in sorted(var_set):
|
||||
print host
|
||||
|
||||
|
||||
Reference in New Issue
Block a user