Bug 2232241

Summary: kdump role: "Write new authorized_keys if needed" task idempotency issues
Product: Red Hat Enterprise Linux 9 Reporter: Brian Smith <briasmit>
Component: rhel-system-rolesAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: Jakub Haruda <jharuda>
Severity: unspecified Docs Contact: Sujata Kurup <skurup>
Priority: unspecified    
Version: 9.2CC: djez, jharuda, lmanasko, rmeggins, spetrosi, vdanek
Target Milestone: rcKeywords: Triaged
Target Release: 9.3Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: role:kdump
Fixed In Version: rhel-system-roles-1.22.0-1.el9 Doc Type: Bug Fix
Doc Text:
.The `kdump` role adds `authorized_keys` idempotently Previously, the task to add `authorized_key` added an extra newline character every time. Consequently the role was not acting idempotent. With this fix, adding a new `authorized_key` works correctly and adds only a single key value idempotently.
Story Points: ---
Clone Of:
: 2232391 (view as bug list) Environment:
Last Closed: 2023-11-07 08:29:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2232391    

Description Brian Smith 2023-08-15 21:38:13 UTC
Description of problem:
The "Write new authorized_keys if needed" task does not appear to be idempotent.  When running the kdump role against a single host for a second time, it will report a change for this task, and the authorized_keys file will end up with a duplicate entry.

When running the kdump role against 2 hosts, each time the role is run, it will alternate showing a change on one host, and on the next run, the other host.  The host that reports a change will have a duplicate entry in the authorized_keys file

Version-Release number of selected component (if applicable):
rhel-system-roles-1.21.1-1.el9_2.noarch

How reproducible:
Every time

Steps to Reproduce:
1. From my controlnode (rhel9-controlnode.example.com) use this inventory file and run the kdump system role several times:

all:
  hosts:
    rhel9-server1.example.com:
    rhel9-server2.example.com:
  vars:
    kdump_target:
      type: ssh
      location: kdump.com
    kdump_path: "/home/kdump/crash"
    kdump_sshkey: "/root/.ssh/kdump_id_rsa"
    kdump_ssh_user: kdump
    kdump_ssh_server: rhel9-controlnode.example.com


Actual results:
After the initial run, subsequent runs of the role report a change on the "Write new authorized_keys if needed" task, alternating each time between showing the change on rhel9-server1.example.com and rhel9-server2.example.com.  The host that reports a change will have a duplicate entry in the authorized_keys file

Expected results:
This task is idempotent and does not report changes on subsequent runs.  Entries are not duplicated in the authorized_keys file.

Comment 1 Rich Megginson 2023-08-16 00:44:41 UTC
@briasmit can you try out the patch in https://github.com/linux-system-roles/kdump/pull/162 ?

Comment 3 Brian Smith 2023-08-16 19:14:33 UTC
@rmeggins Yes, this fixed the issue for me.  Thanks!

Comment 9 errata-xmlrpc 2023-11-07 08:29:54 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (rhel-system-roles bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2023:6390