Execution
Date 11 Sep 2025 13:50:53 +0100
Duration 00:00:00.32
Controller ssh-gw-4.layershift.com
User root
Versions
Ansible 2.16.11
ara 1.7.3 / 1.7.3
Python 3.10.10
Summary
0 Hosts
0 Tasks
0 Results
2 Plays
1 Files
0 Records

File: /home/ssh-gateway/ansible/kuly/find_snowflakes_repos.yaml

---
- name: Detect snowflake repositories on AlmaLinux 8 servers
  hosts: almalinux8_servers
  gather_facts: no
  become: yes

  vars:
    # Define your baseline repos here
    baseline_repos:
      - appstream
      - baseos
      - epel
      - extras

  tasks:
    - name: Get list of enabled repos
      command: dnf repolist enabled -q
      register: repo_output

    - name: Parse enabled repos into a list
      set_fact:
        enabled_repos: "{{ repo_output.stdout_lines | map('regex_replace', '^\\S+\\s+(\\S+).*', '\\1') | list }}"
      when: repo_output.stdout_lines is defined

    - name: Determine snowflake repos (repos not in baseline)
      set_fact:
        snowflake_repos: "{{ enabled_repos | difference(baseline_repos) }}"

    - name: Show snowflake repos per host
      debug:
        msg: "Snowflake repos on {{ inventory_hostname }}: {{ snowflake_repos | default([]) }}"

    - name: Save results centrally
      add_host:
        name: "snowflake_summary"
        snowflakes: "{{ hostvars[inventory_hostname].snowflake_repos | default([]) }}"
        ansible_host: "localhost"
      when: snowflake_repos | length > 0

- name: Summarize snowflake repos
  hosts: snowflake_summary
  gather_facts: no
  tasks:
    - name: Print summary
      debug:
        msg: "Host {{ item.key }} has extra repos: {{ item.value }}"
      with_dict: "{{ hostvars }}"
      when: item.value.snowflake_repos is defined and item.value.snowflake_repos | length > 0