About this tool
Build Ansible INI and YAML inventories with groups, children and host variables from one simple spec, validated as you type.
This builder turns a plain INI-style spec into a validated Ansible inventory in both INI and YAML formats, complete with groups, [group:children] nesting, [group:vars] blocks and per-host variables. It follows the structure in Ansible's official inventory guide, expands numeric host ranges like web[01:05], and flags undefined child groups, duplicate hosts and circular children before ansible-inventory ever sees the file.
Open Ansible Inventory File Builder on AltFTool — it loads instantly in your browser.
Upload or drag in the file you want to work with.
Adjust the settings and preview the result.
Download the finished file to your device.
Write INI-style once and copy either the INI hosts file or the equivalent all.children YAML tree.
Catches non key=value variables, self-referencing groups and circular :children chains as you type.
Expands Ansible's inclusive [01:05] ranges so the host total reflects real machines.
Both are fully supported; INI is terser for flat host lists while YAML handles nested groups and typed variables more cleanly. Ansible's documentation uses YAML for its main examples, and YAML avoids INI's quirk of parsing unquoted values like numbers as strings differently in vars sections.
It declares other groups as members of a parent group, so [prod:children] containing webservers and dbservers makes every host in those two groups also part of prod. Variables set on prod then flow down to all child hosts, with child-group and host variables overriding parent values.
The range is inclusive and preserves zero padding, so web[01:05].example.com defines five hosts, web01 through web05. Alphabetic ranges such as db-[a:c] are also valid in Ansible; this tool counts numeric ranges when totalling hosts.
Hosts listed before the first group header belong to the implicit ungrouped group, and every host always belongs to the all group. That is why a playbook targeting all still hits hosts you never placed in a named group.