add gather-info.yaml
This commit is contained in:
49
gather-info.yaml
Normal file
49
gather-info.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
- name: Gather and write system information to CSV on control node
|
||||
hosts: all
|
||||
gather_facts: no
|
||||
user: root
|
||||
become: yes
|
||||
tasks:
|
||||
- name: Gather system information
|
||||
setup:
|
||||
gather_subset:
|
||||
- 'all'
|
||||
register: system_info
|
||||
|
||||
- name: Set extended system facts
|
||||
set_fact:
|
||||
system_summary:
|
||||
hostname: "{{ system_info.ansible_facts.ansible_hostname }}"
|
||||
ipv4_addresses: "{{ system_info.ansible_facts.ansible_all_ipv4_addresses | join(',') }}"
|
||||
ipv6_addresses: "{{ system_info.ansible_facts.ansible_all_ipv6_addresses | join(',') }}"
|
||||
cpu: "{{ system_info.ansible_facts.ansible_processor | join(',') }}"
|
||||
total_memory_mb: "{{ system_info.ansible_facts.ansible_memtotal_mb }}"
|
||||
os_distribution: "{{ system_info.ansible_facts.ansible_distribution }}"
|
||||
os_version: "{{ system_info.ansible_facts.ansible_distribution_version }}"
|
||||
os_family: "{{ system_info.ansible_facts.ansible_os_family }}"
|
||||
architecture: "{{ system_info.ansible_facts.ansible_architecture }}"
|
||||
kernel: "{{ system_info.ansible_facts.ansible_kernel }}"
|
||||
uptime_seconds: "{{ system_info.ansible_facts.ansible_uptime_seconds }}"
|
||||
default_ipv4: "{{ system_info.ansible_facts.ansible_default_ipv4.address }}"
|
||||
default_ipv6: "{{ system_info.ansible_facts.ansible_default_ipv6.address if system_info.ansible_facts.ansible_default_ipv6 is defined else '' }}"
|
||||
mounts: "{{ system_info.ansible_facts.ansible_mounts | map(attribute='mount') | join(',') }}"
|
||||
interfaces: "{{ system_info.ansible_facts.ansible_interfaces | join(',') }}"
|
||||
gateway_ipv4: "{{ system_info.ansible_facts.ansible_default_ipv4.gateway }}"
|
||||
gateway_ipv6: "{{ system_info.ansible_facts.ansible_default_ipv6.gateway if system_info.ansible_facts.ansible_default_ipv6 is defined else '' }}"
|
||||
|
||||
- name: Ensure CSV file exists and write header on control node
|
||||
local_action:
|
||||
module: lineinfile
|
||||
path: ./system_info.csv
|
||||
line: '"hostname","ipv4_addresses","ipv6_addresses","cpu","total_memory_mb","os_distribution","os_version","os_family","architecture","kernel","uptime_seconds","default_ipv4","default_ipv6","mounts","interfaces","gateway_ipv4","gateway_ipv6"'
|
||||
create: yes
|
||||
state: present
|
||||
run_once: true # Only run once to write the header
|
||||
|
||||
- name: Append system information to CSV on control node
|
||||
local_action:
|
||||
module: lineinfile
|
||||
path: ./system_info.csv
|
||||
line: '"{{ system_summary.hostname }}","{{ system_summary.ipv4_addresses }}","{{ system_summary.ipv6_addresses }}","{{ system_summary.cpu }}","{{ system_summary.total_memory_mb }}","{{ system_summary.os_distribution }}","{{ system_summary.os_version }}","{{ system_summary.os_family }}","{{ system_summary.architecture }}","{{ system_summary.kernel }}","{{ system_summary.uptime_seconds }}","{{ system_summary.default_ipv4 }}","{{ system_summary.default_ipv6 }}","{{ system_summary.mounts }}","{{ system_summary.interfaces }}","{{ system_summary.gateway_ipv4 }}","{{ system_summary.gateway_ipv6 }}"'
|
||||
create: yes
|
||||
insertafter: EOF
|
||||
Reference in New Issue
Block a user