From 23cc76ac06bc10d940729d3b02cb110ef027f5ec Mon Sep 17 00:00:00 2001 From: Josh Lay Date: Sun, 27 Jul 2025 13:28:23 -0500 Subject: [PATCH] custom-facts: init --- roles/custom-facts/defaults/main.yml | 9 +++++++++ roles/custom-facts/files/README.md | 3 +++ roles/custom-facts/files/amdgpu.fact | 1 + roles/custom-facts/files/os.fact | 1 + roles/custom-facts/files/tuned.fact | 1 + roles/custom-facts/handlers/main.yml | 6 ++++++ roles/custom-facts/tasks/main.yml | 24 ++++++++++++++++++++++++ 7 files changed, 45 insertions(+) create mode 100644 roles/custom-facts/defaults/main.yml create mode 100644 roles/custom-facts/files/README.md create mode 120000 roles/custom-facts/files/amdgpu.fact create mode 120000 roles/custom-facts/files/os.fact create mode 120000 roles/custom-facts/files/tuned.fact create mode 100644 roles/custom-facts/handlers/main.yml create mode 100644 roles/custom-facts/tasks/main.yml diff --git a/roles/custom-facts/defaults/main.yml b/roles/custom-facts/defaults/main.yml new file mode 100644 index 000000000..0e5593b --- /dev/null +++ b/roles/custom-facts/defaults/main.yml @@ -0,0 +1,9 @@ +--- +# defaults file for 'custom-facts' role +custom_facts: + - name: amdgpu.fact + mode: '0755' # executable script + - name: os.fact + mode: '0755' + - name: tuned.fact + mode: '0755' diff --git a/roles/custom-facts/files/README.md b/roles/custom-facts/files/README.md new file mode 100644 index 000000000..5741c6b --- /dev/null +++ b/roles/custom-facts/files/README.md @@ -0,0 +1,3 @@ +# custom-facts/files + +Place any scripts or flat files here. The source for these symbolic links: [joshlay/ansible-facts](https://github.com/joshlay/ansible-facts/tree/master/facts.d) diff --git a/roles/custom-facts/files/amdgpu.fact b/roles/custom-facts/files/amdgpu.fact new file mode 120000 index 000000000..b322952 --- /dev/null +++ b/roles/custom-facts/files/amdgpu.fact @@ -0,0 +1 @@ +/home/jlay/git/ansible-facts/facts.d/amdgpu.fact \ No newline at end of file diff --git a/roles/custom-facts/files/os.fact b/roles/custom-facts/files/os.fact new file mode 120000 index 000000000..0e2f11b --- /dev/null +++ b/roles/custom-facts/files/os.fact @@ -0,0 +1 @@ +/home/jlay/git/ansible-facts/facts.d/os.fact \ No newline at end of file diff --git a/roles/custom-facts/files/tuned.fact b/roles/custom-facts/files/tuned.fact new file mode 120000 index 000000000..9562404 --- /dev/null +++ b/roles/custom-facts/files/tuned.fact @@ -0,0 +1 @@ +/home/jlay/git/ansible-facts/facts.d/tuned.fact \ No newline at end of file diff --git a/roles/custom-facts/handlers/main.yml b/roles/custom-facts/handlers/main.yml new file mode 100644 index 000000000..792cb7c --- /dev/null +++ b/roles/custom-facts/handlers/main.yml @@ -0,0 +1,6 @@ +# handlers file for 'custom-facts' role +--- +- name: Re-gather facts + ansible.builtin.setup: + listen: regather_facts + diff --git a/roles/custom-facts/tasks/main.yml b/roles/custom-facts/tasks/main.yml new file mode 100644 index 000000000..3633a86 --- /dev/null +++ b/roles/custom-facts/tasks/main.yml @@ -0,0 +1,24 @@ +--- +# tasks file for 'custom-facts' role +- name: 'Ensure custom facts directory exists' # hosts without Ansible installed benefit from this + ansible.builtin.file: + state: directory + path: /etc/ansible/facts.d + owner: root + group: root + mode: '0755' + become: true + +- name: Copy custom facts + ansible.builtin.copy: + src: "{{ item.name }}" + dest: /etc/ansible/facts.d/ + mode: "{{ item.mode }}" # facts may be plainly-readable JSON/INI files, or executables that return JSON + owner: root + group: root + notify: regather_facts + loop: "{{ custom_facts }}" + become: true + +- name: Flush pending handlers + ansible.builtin.meta: flush_handlers