summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/hosts_with_var_set44
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/hosts_with_var_set b/scripts/hosts_with_var_set
new file mode 100755
index 000000000..bb4301c8a
--- /dev/null
+++ b/scripts/hosts_with_var_set
@@ -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
+
+