19 lines
530 B
Ruby
19 lines
530 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
|
||
|
require 'json'
|
||
|
|
||
|
json = JSON.load(File.open("/etc/lxc/container.json"))
|
||
|
containers = {"_meta" => {"hostvars" => {}}}
|
||
|
json["network"].each do |host, data|
|
||
|
next if data["lxc"] == false
|
||
|
role = data["group"] || "container"
|
||
|
|
||
|
hostvars = { ansible_connection: "lxc", ansible_python_interpreter: "/usr/bin/python2" }
|
||
|
hostvars.merge!(data["vars"]) if data["vars"]
|
||
|
|
||
|
containers[role] ||= []
|
||
|
containers[role] << host
|
||
|
containers["_meta"]["hostvars"][host] = hostvars
|
||
|
end
|
||
|
puts JSON.pretty_generate(containers)
|