From 43b3fc83cd42993620638138f69f78345947bee0 Mon Sep 17 00:00:00 2001 From: Fabien Archambault Date: Wed, 3 Dec 2025 15:15:07 +0100 Subject: [PATCH 01/10] Ubuntu support: initial commit --- README.md | 16 +++++++++++++++- handlers/main.yml | 2 +- tasks/main.yml | 14 ++++++++++++-- templates/kdump-tools.j2 | 5 +++++ vars/Ubuntu.yml | 9 +++++++++ vars/main.yml | 2 ++ 6 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 templates/kdump-tools.j2 create mode 100644 vars/Ubuntu.yml diff --git a/README.md b/README.md index 81773296..1410ed6d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ host. Previous settings will be lost, even if they are not specified in the role variables. Currently, this includes replacing at least the following configuration file: -* `/etc/kdump.conf` +* `/etc/kdump.conf` (RedHat like OS) +* `/etc/default/kdump-tools` (Ubuntu only yet) ## Requirements @@ -97,6 +98,19 @@ re-execute the role after boot. Default: `false` +## Ubuntu + +To configure the file over-writing default, use for example: +```yaml +kdump_kdump_tools: + USE_KDUMP: 1 + KDUMP_KERNEL: /var/lib/kdump/vmlinuz + KDUMP_INITRD: /var/lib/kdump/initrd.img + KDUMP_COREDIR: "/var/crash" + MAKEDUMP_ARGS: "-c -d 31" + KDUMP_FAIL_CMD: "reboot -f" +``` + ## Ansible Facts Returned by the Role **kdump_reboot_required**: The role sets this fact if the managed node requires diff --git a/handlers/main.yml b/handlers/main.yml index 0ebc60a8..aa89f704 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,7 +1,7 @@ --- - name: Restart kdump service: - name: kdump + name: "{{ __kdump_service }}" state: restarted when: - not __kdump_service_start.changed | d(false) diff --git a/tasks/main.yml b/tasks/main.yml index 8ab2c3b7..3492f54b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -11,7 +11,7 @@ - name: Ensure that kdump is enabled service: - name: kdump + name: "{{ __kdump_service }}" enabled: true - name: Include SSH tasks @@ -31,6 +31,16 @@ backup: true mode: "{{ __kdump_conf.stat.mode | d('0644') }}" notify: Restart kdump + when: ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora'] + +- name: Generate /etc/default/kdump-tools + template: + src: kdump-tools.j2 + dest: /etc/default/kdump-tools + backup: true + mode: "{{ __kdump_conf.stat.mode | d('0644') }}" + notify: Restart kdump + when: ansible_facts['distribution'] in ['Ubuntu'] - name: Find out reserved memory for the crash kernel slurp: @@ -85,6 +95,6 @@ # to explicitly start kdump to rebuild initrd. - name: Ensure that kdump is started service: - name: kdump + name: "{{ __kdump_service }}" state: started register: __kdump_service_start diff --git a/templates/kdump-tools.j2 b/templates/kdump-tools.j2 new file mode 100644 index 00000000..f92f9550 --- /dev/null +++ b/templates/kdump-tools.j2 @@ -0,0 +1,5 @@ +# {{ ansible_managed }} + +{% for key, value in kdump_kdump-tools.items() %} +{{ key }} = {{ value }} +{% endfor %} diff --git a/vars/Ubuntu.yml b/vars/Ubuntu.yml new file mode 100644 index 00000000..da82880a --- /dev/null +++ b/vars/Ubuntu.yml @@ -0,0 +1,9 @@ +--- +__kdump_packages: + - iproute2 # for fact gathering for ip facts + - kexec-tools + - kdump-tools + - linux-crashdump + - openssh-client + +__kdump_service: kdump-tools diff --git a/vars/main.yml b/vars/main.yml index 33a2af25..f4503bd1 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -43,3 +43,5 @@ __kdump_is_rh_distro: "{{ ansible_distribution in __kdump_rh_distros }}" # Use this in conditionals to check if distro is Red Hat or clone, or Fedora __kdump_is_rh_distro_fedora: "{{ ansible_distribution in __kdump_rh_distros_fedora }}" # END - DO NOT EDIT THIS BLOCK - rh distros variables + +__kdump_service: kdump From 3aa58ad049b081648ef948eb917972f0003e71c2 Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Wed, 3 Dec 2025 18:26:38 +0100 Subject: [PATCH 02/10] Fix typo in kdump-tools variable name --- templates/kdump-tools.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/kdump-tools.j2 b/templates/kdump-tools.j2 index f92f9550..7c7c15e1 100644 --- a/templates/kdump-tools.j2 +++ b/templates/kdump-tools.j2 @@ -1,5 +1,5 @@ # {{ ansible_managed }} -{% for key, value in kdump_kdump-tools.items() %} +{% for key, value in kdump_kdump_tools.items() %} {{ key }} = {{ value }} {% endfor %} From 25d53ee78625ae62e11723fcae084d2b5d95d76e Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Wed, 3 Dec 2025 18:27:58 +0100 Subject: [PATCH 03/10] Update README.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1410ed6d..771391fe 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ in the role variables. Currently, this includes replacing at least the following configuration file: * `/etc/kdump.conf` (RedHat like OS) -* `/etc/default/kdump-tools` (Ubuntu only yet) +* `/etc/default/kdump-tools` (Ubuntu only, for now) ## Requirements From 2873390adf1a7df025f7ab09d142bb17cfb9642b Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Wed, 3 Dec 2025 18:28:13 +0100 Subject: [PATCH 04/10] Update README.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 771391fe..90dd881e 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Default: `false` ## Ubuntu -To configure the file over-writing default, use for example: +To configure the default file-overwriting behavior, use for example: ```yaml kdump_kdump_tools: USE_KDUMP: 1 From 27627ec4e1693c40f339b49b845d550cf3077de7 Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Thu, 4 Dec 2025 08:19:35 +0100 Subject: [PATCH 05/10] Update tasks/main.yml Co-authored-by: Richard Megginson --- tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 3492f54b..abfca034 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -31,7 +31,7 @@ backup: true mode: "{{ __kdump_conf.stat.mode | d('0644') }}" notify: Restart kdump - when: ansible_facts['distribution'] in ['RedHat', 'CentOS', 'Fedora'] + when: ansible_facts['os_family'] == 'RedHat' - name: Generate /etc/default/kdump-tools template: From 49fb2a83194861c233a496a3cdffb644fb9b43f4 Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Thu, 4 Dec 2025 08:20:33 +0100 Subject: [PATCH 06/10] Update templates/kdump-tools.j2 Co-authored-by: Richard Megginson --- templates/kdump-tools.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/kdump-tools.j2 b/templates/kdump-tools.j2 index 7c7c15e1..c6223286 100644 --- a/templates/kdump-tools.j2 +++ b/templates/kdump-tools.j2 @@ -1,4 +1,5 @@ -# {{ ansible_managed }} +{{ ansible_managed | comment }} +{{ "system_role:kdump" | comment(prefix="", postfix="") }} {% for key, value in kdump_kdump_tools.items() %} {{ key }} = {{ value }} From 45080cde8662860e4bb702a677e5119dc82b280c Mon Sep 17 00:00:00 2001 From: Fabien Archambault Date: Thu, 4 Dec 2025 10:47:33 +0100 Subject: [PATCH 07/10] Update main.yml with __kdump_conf_file --- tasks/main.yml | 20 +++++--------------- vars/Ubuntu.yml | 1 + vars/main.yml | 2 ++ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index abfca034..66ba0020 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -19,28 +19,18 @@ when: - kdump_target.type | d(none) == 'ssh' -- name: Get mode of /etc/kdump.conf if it exists +- name: Get mode of kdump configuration file if it exists stat: - path: /etc/kdump.conf + path: "{{ __kdump_conf_file }}" register: __kdump_conf -- name: Generate /etc/kdump.conf +- name: Generate kdump configuration file template: - src: kdump.conf.j2 - dest: /etc/kdump.conf + src: "{{ __kdump_conf_file.split('/')[-1] }}.j2" + dest: "{{ __kdump_conf_file }}" backup: true mode: "{{ __kdump_conf.stat.mode | d('0644') }}" notify: Restart kdump - when: ansible_facts['os_family'] == 'RedHat' - -- name: Generate /etc/default/kdump-tools - template: - src: kdump-tools.j2 - dest: /etc/default/kdump-tools - backup: true - mode: "{{ __kdump_conf.stat.mode | d('0644') }}" - notify: Restart kdump - when: ansible_facts['distribution'] in ['Ubuntu'] - name: Find out reserved memory for the crash kernel slurp: diff --git a/vars/Ubuntu.yml b/vars/Ubuntu.yml index da82880a..69f5af8a 100644 --- a/vars/Ubuntu.yml +++ b/vars/Ubuntu.yml @@ -6,4 +6,5 @@ __kdump_packages: - linux-crashdump - openssh-client +__kdump_conf_file: /etc/default/kdump-tools __kdump_service: kdump-tools diff --git a/vars/main.yml b/vars/main.yml index f4503bd1..602eba6b 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -45,3 +45,5 @@ __kdump_is_rh_distro_fedora: "{{ ansible_distribution in __kdump_rh_distros_fedo # END - DO NOT EDIT THIS BLOCK - rh distros variables __kdump_service: kdump + +__kdump_conf_file: /etc/kdump.conf \ No newline at end of file From 22c22dbe43be91a6a6d22cf8eaa14113e6418364 Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Thu, 4 Dec 2025 15:16:53 +0100 Subject: [PATCH 08/10] Update main.yml --- vars/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vars/main.yml b/vars/main.yml index 602eba6b..34927a4b 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -46,4 +46,4 @@ __kdump_is_rh_distro_fedora: "{{ ansible_distribution in __kdump_rh_distros_fedo __kdump_service: kdump -__kdump_conf_file: /etc/kdump.conf \ No newline at end of file +__kdump_conf_file: /etc/kdump.conf From 4be44eccde72dc87c21fe6af3a7b898220e7e59c Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Thu, 4 Dec 2025 15:17:47 +0100 Subject: [PATCH 09/10] Refactor kdump configuration file template source --- tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/main.yml b/tasks/main.yml index 66ba0020..7205c23e 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -26,7 +26,7 @@ - name: Generate kdump configuration file template: - src: "{{ __kdump_conf_file.split('/')[-1] }}.j2" + src: "{{ __kdump_conf_file | basename }}.j2" dest: "{{ __kdump_conf_file }}" backup: true mode: "{{ __kdump_conf.stat.mode | d('0644') }}" From 55b32ef3abe45e7d92520031a2e7f1abd7b06a15 Mon Sep 17 00:00:00 2001 From: fabienarchambault Date: Thu, 4 Dec 2025 15:20:59 +0100 Subject: [PATCH 10/10] Update README.md Co-authored-by: Richard Megginson --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90dd881e..5dc2e60b 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ Default: `false` ## Ubuntu To configure the default file-overwriting behavior, use for example: + ```yaml kdump_kdump_tools: USE_KDUMP: 1