A dynamic Ansible inventory script that converts Excel spreadsheets into Ansible inventories, enabling quick automation from existing data exports.
ansible_xlsx_inventory is a dynamic inventory script for Ansible that converts Excel spreadsheets into Ansible inventories. It solves the problem of manually creating inventory files when server data is exported from other tools into Excel, enabling rapid automation deployment. The script reads Excel files, extracts host information, groups hosts by columns, and automatically generates host variables.
System administrators, DevOps engineers, and IT professionals who use Ansible for automation and frequently receive server data in Excel exports from third-party tools.
Developers choose this script because it eliminates manual inventory creation, leverages existing Excel data seamlessly, and integrates with AWX/Ansible Tower. Its automatic variable conversion and flexible grouping save time and reduce errors in infrastructure automation workflows.
Turn any Excel Sheet into an Ansible Inventory
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports .xlsx, .xlsm, .xltx, and .xltm formats using OpenPyXL, enabling direct use of existing data exports without conversion.
Converts all Excel columns into host variables, as shown in the README examples, allowing easy assignment of Ansible and custom variables like mysql_root_pass.
Groups hosts by any specified column, such as project or environment, for organized automation without manual inventory editing.
Includes detailed instructions for SCM-based integration in AWX or Ansible Tower, with credential type configuration for seamless deployment.
Requires installation of OpenPyXL and configparser, adding setup complexity and potential dependency management issues, especially in constrained environments.
Inventory is tied to manually updated Excel files, lacking real-time synchronization with infrastructure changes, which can lead to stale data.
Only supports grouping by a single column at a time, which may not suffice for complex inventory hierarchies or multi-dimensional categorization.