Execution
Date 23 May 2025 11:11:44 +0100
Duration 00:00:01.23
Controller ssh-gw-4.layershift.com
User root
Versions
Ansible 2.16.11
ara 1.7.2 / 1.7.2
Python 3.10.10
Summary
1 Hosts
3 Tasks
3 Results
1 Plays
1 Files
0 Records

File: /home/ssh-gateway/ansible/kuly/generate_inventory_from_files.yml

---
- name: Generate Ansible inventory from fetched ini files
  hosts: localhost
  gather_facts: false
  vars:
    base_dir: "fetched_files"
    output_inventory_file: "generated_inventory.ini"
  tasks:
    - name: Find all .ini files under each host folder
      ansible.builtin.find:
        paths: "{{ base_dir }}"
        patterns: "*.ini"
        recurse: true
      register: ini_files

    - name: Debug found files
      ansible.builtin.debug:
        msg: "Found {{ ini_files.files | length }} .ini files."

    - name: Extract hostnames from filenames and build inventory groups
      ansible.builtin.set_fact:
        inventory_data: >-
          {%
            set data = {'ungrouped': []}
          %}
          {%
            for item in ini_files.files
          %}
            {%
              set filename = item.path | basename
            %}
            {%
              set hostname = (filename | regex_replace('-panel.ini$', ''))
            %}
            {%
              data['ungrouped'].append(hostname)
            %}
          {%
            endfor
          %}
          {{
            data
          }}

    - name: Write inventory to file
      ansible.builtin.template:
        src: inventory_template.j2
        dest: "{{ output_inventory_file }}"
        mode: 0644
      vars:
        hosts_list: "{{ inventory_data }}"