Compare commits

...

3 commits

Author SHA1 Message Date
cc3805aaf5 bump: version 0.2.0a7 → 0.2.0a8 2025-05-12 09:12:02 +02:00
27fb26dce4 fix: update tests 2025-05-11 19:14:43 +02:00
3173cf3d5c fix: black 2025-05-11 19:14:26 +02:00
87 changed files with 3911 additions and 39 deletions

View file

@ -1,3 +1,10 @@
## 0.2.0a8 (2025-05-12)
### Fix
- update tests
- black
## 0.2.0a7 (2025-05-02) ## 0.2.0a7 (2025-05-02)
### Fix ### Fix

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-04-29 23:02+0200\n" "POT-Creation-Date: 2025-05-12 08:39+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -19,35 +19,35 @@ msgstr ""
msgid "no namespace configured" msgid "no namespace configured"
msgstr "" msgstr ""
#: src/rougail/output_ansible/__init__.py:66 #: src/rougail/output_ansible/__init__.py:67
msgid "cannot find host namespace \"{0}\"" msgid "cannot find host namespace \"{0}\""
msgstr "" msgstr ""
#: src/rougail/output_ansible/__init__.py:71 #: src/rougail/output_ansible/__init__.py:74
msgid "malformated host namespace \"{0}\", should have the \"hostnames\" key" msgid "malformated host namespace \"{0}\", should have the \"hostnames\" key"
msgstr "" msgstr ""
#: src/rougail/output_ansible/__init__.py:98 #: src/rougail/output_ansible/__init__.py:111
msgid "cannot find \"hostnames\" in \"{0}\" namespace" msgid "cannot find \"hostnames\" in \"{0}\" namespace"
msgstr "" msgstr ""
#: src/rougail/output_ansible/config.py:29 #: src/rougail/output_ansible/config.py:30
msgid "parameter added only to be compatible with Ansible" msgid "parameter added only to be compatible with Ansible"
msgstr "" msgstr ""
#: src/rougail/output_ansible/config.py:51 #: src/rougail/output_ansible/config.py:53
msgid "Configuration of user data or output Ansible" msgid "Configuration of user data or output Ansible"
msgstr "" msgstr ""
#: src/rougail/output_ansible/config.py:61 #: src/rougail/output_ansible/config.py:64
msgid "Configuration of output Ansible" msgid "Configuration of output Ansible"
msgstr "" msgstr ""
#: src/rougail/output_ansible/config.py:72 #: src/rougail/output_ansible/config.py:76
msgid "Namespace with host values" msgid "Namespace with host values"
msgstr "" msgstr ""
#: src/rougail/output_ansible/config.py:76 #: src/rougail/output_ansible/config.py:80
msgid "Only variables in host namespace is available by a host" msgid "Only variables in host namespace is available by a host"
msgstr "" msgstr ""

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.output_ansible" name = "rougail.output_ansible"
version = "0.2.0a7" version = "0.2.0a8"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail output ansible" description = "Rougail output ansible"

View file

@ -55,20 +55,26 @@ class RougailOutputAnsible(RougailOutputJson):
def manage_errors(self) -> bool: def manage_errors(self) -> bool:
if not super().manage_errors(): if not super().manage_errors():
if not self.support_namespace: if not self.support_namespace:
self.errors.append(_('no namespace configured')) self.errors.append(_("no namespace configured"))
hosts_config = self.config.option('hosts') hosts_config = self.config.option("hosts")
try: try:
if hosts_config.group_type() != groups.namespace: if hosts_config.group_type() != groups.namespace:
hosts_config = None hosts_config = None
except AttributeError: except AttributeError:
hosts_config = None hosts_config = None
if not hosts_config: if not hosts_config:
self.errors.append(_('cannot find host namespace "{0}"').format(self.host_namespace)) self.errors.append(
_('cannot find host namespace "{0}"').format(self.host_namespace)
)
else: else:
try: try:
hosts_config.option('hostnames').name() hosts_config.option("hostnames").name()
except AttributeError: except AttributeError:
self.errors.append(_('malformated host namespace "{0}", should have the "hostnames" key').format(self.host_namespace)) self.errors.append(
_(
'malformated host namespace "{0}", should have the "hostnames" key'
).format(self.host_namespace)
)
return super().manage_errors() return super().manage_errors()
return True return True
@ -85,53 +91,67 @@ class RougailOutputAnsible(RougailOutputJson):
def json_to_ansible(self): def json_to_ansible(self):
ret = {"_meta": {"hostvars": {}}, "all": {"children": ["ungrouped"]}} ret = {"_meta": {"hostvars": {}}, "all": {"children": ["ungrouped"]}}
if '_warnings' in self.dico: if "_warnings" in self.dico:
ret["_meta"]["hostvars"]["localhost"] = {'_warnings': self.dico.pop('_warnings')} ret["_meta"]["hostvars"]["localhost"] = {
"_warnings": self.dico.pop("_warnings")
}
ret["ungrouped"] = {"hosts": ["localhost"]} ret["ungrouped"] = {"hosts": ["localhost"]}
if '_errors' in self.dico: if "_errors" in self.dico:
ret["_meta"]["hostvars"].setdefault("localhost", {})['_errors'] = self.dico.pop('_errors') ret["_meta"]["hostvars"].setdefault("localhost", {})["_errors"] = (
self.dico.pop("_errors")
)
if "ungrouped" not in ret: if "ungrouped" not in ret:
ret["ungrouped"] = {"hosts": ["localhost"]} ret["ungrouped"] = {"hosts": ["localhost"]}
if self.host_namespace in self.dico: if self.host_namespace in self.dico:
hosts = self.dico.pop(self.host_namespace) hosts = self.dico.pop(self.host_namespace)
if "hostnames" not in hosts: if "hostnames" not in hosts:
ret["_meta"]["hostvars"].setdefault("localhost", {}).setdefault('_errors', []).append(_('cannot find "hostnames" in "{0}" namespace').format(self.host_namespace)) ret["_meta"]["hostvars"].setdefault("localhost", {}).setdefault(
"_errors", []
).append(
_('cannot find "hostnames" in "{0}" namespace').format(
self.host_namespace
)
)
if "ungrouped" not in ret: if "ungrouped" not in ret:
ret["ungrouped"] = {"hosts": ["localhost"]} ret["ungrouped"] = {"hosts": ["localhost"]}
hostnames = {} hostnames = {}
else: else:
hostnames = hosts['hostnames'] hostnames = hosts["hostnames"]
ret_hosts = {} ret_hosts = {}
for name, hosts in hostnames.items(): for name, hosts in hostnames.items():
if 'hosts' in hosts: if "hosts" in hosts:
if 'prefix_name' in hosts: if "prefix_name" in hosts:
host_name = hosts['prefix_name'] host_name = hosts["prefix_name"]
add_index = True add_index = True
elif len(hosts["hosts"]) == 1: elif len(hosts["hosts"]) == 1:
host_name = hosts["hosts"][0] host_name = hosts["hosts"][0]
add_index = False add_index = False
else: else:
raise Exception("cannot find prefix_name") raise Exception("cannot find prefix_name")
for idx, host in enumerate(hosts['hosts']): for idx, host in enumerate(hosts["hosts"]):
index = str(idx + 1) index = str(idx + 1)
if idx < 9: if idx < 9:
index = '0' + index index = "0" + index
if 'prefix_name' in hosts: if "prefix_name" in hosts:
host_name = hosts['prefix_name'] + index host_name = hosts["prefix_name"] + index
ret_hosts.setdefault(name, {})[host_name] = host ret_hosts.setdefault(name, {})[host_name] = host
ret.setdefault(name, {}).setdefault('hosts', []).append(host_name) ret.setdefault(name, {}).setdefault("hosts", []).append(
host_name
)
else: else:
ret["all"]["children"].append(name) ret["all"]["children"].append(name)
ret[name] = hosts ret[name] = hosts
for hosts in ret_hosts.values(): for hosts in ret_hosts.values():
for host, domain_name in hosts.items(): for host, domain_name in hosts.items():
ret['_meta']['hostvars'][host] = {'ansible_host': domain_name} ret["_meta"]["hostvars"][host] = {"ansible_host": domain_name}
if self.namespace_is_hostname: if self.namespace_is_hostname:
host_namespace = normalize_family(host) host_namespace = normalize_family(host)
if host_namespace in self.dico: if host_namespace in self.dico:
ret['_meta']['hostvars'][host].update(self.dico[host_namespace]) ret["_meta"]["hostvars"][host].update(
self.dico[host_namespace]
)
else: else:
ret['_meta']['hostvars'][host].update(self.dico) ret["_meta"]["hostvars"][host].update(self.dico)
self.dico = ret self.dico = ret

View file

@ -1 +1 @@
__version__ = "0.2.0a7" __version__ = "0.2.0a8"

View file

@ -24,7 +24,8 @@ def get_rougail_config(
*, *,
backward_compatibility=True, backward_compatibility=True,
) -> dict: ) -> dict:
options = [f""" options = [
f"""
list: list:
description: {_('parameter added only to be compatible with Ansible')} description: {_('parameter added only to be compatible with Ansible')}
default: false default: false
@ -44,7 +45,8 @@ json:
disabled disabled
{{% endif %}} {{% endif %}}
""", f""" """,
f"""
ansible: ansible:
exists: true exists: true
redefine: true redefine: true
@ -56,7 +58,8 @@ ansible:
disabled disabled
{{% endif %}} {{% endif %}}
""", f""" """,
f"""
ansible: ansible:
description: {_('Configuration of output Ansible')} description: {_('Configuration of output Ansible')}
exists: false exists: false
@ -65,7 +68,8 @@ ansible:
when_not: ansible when_not: ansible
propertyerror: false propertyerror: false
""", f""" """,
f"""
ansible: ansible:
host_namespace: host_namespace:
@ -75,7 +79,8 @@ ansible:
namespace_is_hostname: namespace_is_hostname:
description: {_('Only variables in host namespace is available by a host')} description: {_('Only variables in host namespace is available by a host')}
default: false default: false
"""] """,
]
return { return {
"name": "ansible", "name": "ansible",
"process": "output", "process": "output",

View file

@ -19,6 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from gettext import translation from gettext import translation
from pathlib import Path from pathlib import Path
t = translation("rougail_output_ansible", str(Path(__file__).parent / "locale"), fallback=True) t = translation(
"rougail_output_ansible", str(Path(__file__).parent / "locale"), fallback=True
)
_ = t.gettext _ = t.gettext

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"var1": "a_value",
"var2": "a_value"
}
],
"var2": "a_value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"var1": "a_value",
"var2": "a_value"
}
],
"var2": "a_value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var3": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var3": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var2": "string1",
"var3": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var2": "string1",
"var3": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var2": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var2": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var2": "value",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var2": "value",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,48 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
0,
1,
2
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
0,
1,
2
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,66 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "value_1",
"follower": "string1"
},
{
"leader": "value_2",
"follower": "string2"
},
{
"leader": "value_3",
"follower": "string3"
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "value_1",
"follower": "string1"
},
{
"leader": "value_2",
"follower": "string2"
},
{
"leader": "value_3",
"follower": "string3"
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": []
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": []
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "a value"
},
"dynval2": {
"var": "a value"
},
"var2": "a value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "a value"
},
"dynval2": {
"var": "a value"
},
"var2": "a value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": true
},
"dynval2": {
"var": true
},
"var2": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": true
},
"dynval2": {
"var": true
},
"var2": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,78 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": [
"a value",
"a second value"
]
},
"dynval2": {
"var": [
"a value",
"a second value"
]
},
"var2": [
"a value",
"a second value"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": [
"a value",
"a second value"
]
},
"dynval2": {
"var": [
"a value",
"a second value"
]
},
"var2": [
"a value",
"a second value"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,78 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"var1": "a_value",
"var2": "a_value"
}
],
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"var1": "a_value",
"var2": "a_value"
}
],
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var2": "string1",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var2": "string1",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var2": "string1",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var2": "string1",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
0
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
0
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,58 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "val1",
"follower": "string1"
},
{
"leader": "val2",
"follower": "string2"
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "val1",
"follower": "string1"
},
{
"leader": "val2",
"follower": "string2"
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,120 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "string1",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string2",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string3",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "string1",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string2",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string3",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "a value"
},
"dynval2": {
"var": "a value"
},
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "a value"
},
"dynval2": {
"var": "a value"
},
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": true
},
"dynval2": {
"var": true
},
"var2": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": true
},
"dynval2": {
"var": true
},
"var2": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,80 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": [
"a value",
"a second value"
]
},
"dynval2": {
"var": [
"a value",
"a second value"
]
},
"var2": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": [
"a value",
"a second value"
]
},
"dynval2": {
"var": [
"a value",
"a second value"
]
},
"var2": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,78 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var2": "a_value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var2": "a_value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": null,
"var2": null
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": null,
"var2": null
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var3": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var3": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var2": null,
"var3": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var2": null,
"var3": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value",
"var3": null
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value",
"var3": null
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,48 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
0,
1,
2
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
0,
1,
2
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,66 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "value_1",
"follower": null
},
{
"leader": "value_2",
"follower": null
},
{
"leader": "value_3",
"follower": null
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "value_1",
"follower": null
},
{
"leader": "value_2",
"follower": null
},
{
"leader": "value_3",
"follower": null
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": []
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": []
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "a value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "a value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,58 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"a value",
"a second value"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"a value",
"a second value"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,78 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": null
},
"val2": {
"var": null
}
},
"val2": {
"val1": {
"var": null
},
"val2": {
"var": null
}
}
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": null
},
"val2": {
"var": null
}
},
"val2": {
"val1": {
"var": null
},
"val2": {
"var": null
}
}
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var2": "string1",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var2": "string1",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1",
"var3": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1",
"var3": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
0
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
0
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,58 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "val1",
"follower": "string1"
},
{
"leader": "val2",
"follower": "string2"
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "val1",
"follower": "string1"
},
{
"leader": "val2",
"follower": "string2"
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,120 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": [
{
"leader": "string1",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string2",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string3",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
}
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": [
{
"leader": "string1",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string2",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
},
{
"leader": "string3",
"follower1": [
"string1",
"string2",
"string3"
],
"follower2": [
"string1",
"string2",
"string3"
]
}
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,78 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var": [
"val1",
"val2"
],
"val1": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
},
"val2": {
"val1": {
"var": "string1"
},
"val2": {
"var": "string1"
}
}
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,36 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var2": "a_value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var2": "a_value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,23 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.var1 (a first variable)",
" - rougail.var2 (a second variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var3": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var3": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,22 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.var2 (a second variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,22 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.var3 (a third variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,48 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
0,
1,
2
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
0,
1,
2
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,24 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.leadership.follower (a follower)",
" - rougail.leadership.follower (a follower)",
" - rougail.leadership.follower (a follower)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leadership": []
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leadership": []
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "a value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": "a value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,52 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,58 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"a value",
"a second value"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"var1": [
"val1",
"val2"
],
"dynval1": {},
"dynval2": {},
"var2": [
"a value",
"a second value"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,25 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.val1.val1.var (A dynamic variable)",
" - rougail.val2.val2.var (A dynamic variable)",
" - rougail.val1.val1.var (A dynamic variable)",
" - rougail.val2.val2.var (A dynamic variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}