ansible-playbook 2.9.27 config file = None configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.9/site-packages/ansible executable location = /usr/local/bin/ansible-playbook python version = 3.9.19 (main, May 16 2024, 11:40:09) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] No config file found; using defaults [WARNING]: running playbook inside collection fedora.linux_system_roles Skipping callback 'actionable', as we already have a stdout callback. Skipping callback 'counter_enabled', as we already have a stdout callback. Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'full_skip', as we already have a stdout callback. Skipping callback 'json', as we already have a stdout callback. Skipping callback 'jsonl', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'null', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. Skipping callback 'selective', as we already have a stdout callback. Skipping callback 'skippy', as we already have a stdout callback. Skipping callback 'stderr', as we already have a stdout callback. Skipping callback 'unixy', as we already have a stdout callback. Skipping callback 'yaml', as we already have a stdout callback. PLAYBOOK: tests_scan_sudoers.yml *********************************************** 1 plays in /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml PLAY [Ensure that the role can parse existing sudoers] ************************* TASK [Gathering Facts] ********************************************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:3 Monday 27 April 2026 13:30:12 -0400 (0:00:00.017) 0:00:00.017 ********** ok: [managed-node2] META: ran handlers TASK [Test setup] ************************************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:42 Monday 27 April 2026 13:30:13 -0400 (0:00:00.893) 0:00:00.910 ********** included: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml for managed-node2 TASK [Create temp test directory] ********************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:3 Monday 27 April 2026 13:30:13 -0400 (0:00:00.022) 0:00:00.933 ********** changed: [managed-node2] => { "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/var/tmp/sudo_umkrq5s8", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } TASK [Backup sudoers] ********************************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:10 Monday 27 April 2026 13:30:13 -0400 (0:00:00.448) 0:00:01.382 ********** changed: [managed-node2] => { "changed": true, "checksum": "e683ad5e5d8d7112d14924c11c98be7bf2ef4918", "dest": "/var/tmp/sudo_umkrq5s8/sudoers", "gid": 0, "group": "root", "md5sum": "1b134d95a4618029ff962a63b021e1ca", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 4328, "src": "/etc/sudoers", "state": "file", "uid": 0 } TASK [Backup sudoers.d] ******************************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:19 Monday 27 April 2026 13:30:14 -0400 (0:00:00.484) 0:00:01.867 ********** changed: [managed-node2] => { "changed": true, "checksum": null, "dest": "/var/tmp/sudo_umkrq5s8/sudoers.d", "gid": 0, "group": "root", "md5sum": null, "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 23, "src": "/etc/sudoers.d", "state": "directory", "uid": 0 } TASK [Try with no spaces in alias definitions] ********************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:45 Monday 27 April 2026 13:30:14 -0400 (0:00:00.363) 0:00:02.230 ********** changed: [managed-node2] => { "changed": true, "checksum": "b5413040e51fbde51edc2beb05afff5069808c66", "dest": "/etc/sudoers", "gid": 0, "group": "root", "md5sum": "1166f0accd7cafa59991512ee217b4e8", "mode": "0600", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 380, "src": "/root/.ansible/tmp/ansible-tmp-1777311014.4927862-10390-51149410946046/source", "state": "file", "uid": 0 } TASK [Run the role] ************************************************************ task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:56 Monday 27 April 2026 13:30:15 -0400 (0:00:00.792) 0:00:03.023 ********** included: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/run_role_with_clear_facts.yml for managed-node2 META: facts cleared TASK [Run the role] ************************************************************ task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/run_role_with_clear_facts.yml:23 Monday 27 April 2026 13:30:15 -0400 (0:00:00.017) 0:00:03.040 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Run the role normally] *************************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/run_role_with_clear_facts.yml:33 Monday 27 April 2026 13:30:15 -0400 (0:00:00.030) 0:00:03.071 ********** TASK [fedora.linux_system_roles.sudo : Set version specific variables] ********* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:2 Monday 27 April 2026 13:30:15 -0400 (0:00:00.068) 0:00:03.139 ********** included: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml for managed-node2 TASK [fedora.linux_system_roles.sudo : Ensure ansible_facts used by role] ****** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:2 Monday 27 April 2026 13:30:15 -0400 (0:00:00.019) 0:00:03.159 ********** ok: [managed-node2] TASK [fedora.linux_system_roles.sudo : Record role begin fingerprint] ********** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:7 Monday 27 April 2026 13:30:15 -0400 (0:00:00.542) 0:00:03.702 ********** ok: [managed-node2] => { "changed": false } TASK [fedora.linux_system_roles.sudo : Check if system is ostree] ************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:16 Monday 27 April 2026 13:30:16 -0400 (0:00:00.382) 0:00:04.085 ********** ok: [managed-node2] => { "changed": false, "stat": { "exists": false } } TASK [fedora.linux_system_roles.sudo : Set flag to indicate system is ostree] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:21 Monday 27 April 2026 13:30:16 -0400 (0:00:00.314) 0:00:04.399 ********** ok: [managed-node2] => { "ansible_facts": { "__sudo_is_ostree": false }, "changed": false } TASK [fedora.linux_system_roles.sudo : Check if transactional-update exists in /sbin] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:28 Monday 27 April 2026 13:30:16 -0400 (0:00:00.017) 0:00:04.417 ********** ok: [managed-node2] => { "changed": false, "stat": { "exists": false } } TASK [fedora.linux_system_roles.sudo : Set flag if transactional-update exists] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:33 Monday 27 April 2026 13:30:16 -0400 (0:00:00.311) 0:00:04.728 ********** ok: [managed-node2] => { "ansible_facts": { "__sudo_is_transactional": false }, "changed": false } TASK [fedora.linux_system_roles.sudo : Set platform/version specific variables] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:37 Monday 27 April 2026 13:30:16 -0400 (0:00:00.017) 0:00:04.745 ********** skipping: [managed-node2] => (item=RedHat.yml) => { "ansible_loop_var": "item", "changed": false, "item": "RedHat.yml", "skip_reason": "Conditional result was False" } skipping: [managed-node2] => (item=CentOS.yml) => { "ansible_loop_var": "item", "changed": false, "item": "CentOS.yml", "skip_reason": "Conditional result was False" } skipping: [managed-node2] => (item=CentOS_8.yml) => { "ansible_loop_var": "item", "changed": false, "item": "CentOS_8.yml", "skip_reason": "Conditional result was False" } skipping: [managed-node2] => (item=CentOS_8.yml) => { "ansible_loop_var": "item", "changed": false, "item": "CentOS_8.yml", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Scan sudoers] *************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:5 Monday 27 April 2026 13:30:16 -0400 (0:00:00.031) 0:00:04.777 ********** ok: [managed-node2] => { "ansible_facts": { "sudoers": { "all_scanned_files": [ "/etc/sudoers" ], "sudoers_files": [ { "aliases": { "cmnd_alias": [ { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_NO_SPACES" }, { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_SPACES" } ], "host_alias": [ { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_NO_SPACES" }, { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_SPACES" } ], "runas_alias": [ { "name": "MY_RUNAS_NO_SPACES", "users": [ "myrunasuser" ] }, { "name": "MY_RUNAS_SPACES", "users": [ "myrunasuser" ] } ], "user_alias": [ { "name": "MY_USER_NO_SPACES", "users": [ "myuser" ] }, { "name": "MY_USER_SPACES", "users": [ "myuser" ] } ] }, "path": "/etc/sudoers", "user_specifications": [] } ] } }, "changed": false } META: end_host conditional evaluated to false, continuing execution for managed-node2 TASK [fedora.linux_system_roles.sudo : Ensure sudo is installed] *************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:20 Monday 27 April 2026 13:30:17 -0400 (0:00:00.445) 0:00:05.222 ********** ok: [managed-node2] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do TASK [fedora.linux_system_roles.sudo : Notify user that reboot is needed to apply changes] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:32 Monday 27 April 2026 13:30:20 -0400 (0:00:02.914) 0:00:08.137 ********** skipping: [managed-node2] => {} TASK [fedora.linux_system_roles.sudo : Reboot transactional update systems] **** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:37 Monday 27 April 2026 13:30:20 -0400 (0:00:00.016) 0:00:08.154 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Fail if reboot is needed and not set] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:42 Monday 27 April 2026 13:30:20 -0400 (0:00:00.016) 0:00:08.170 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Set include directories variable] ******* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:50 Monday 27 April 2026 13:30:20 -0400 (0:00:00.014) 0:00:08.185 ********** ok: [managed-node2] => { "ansible_facts": { "sudo_include_dirs": [] }, "changed": false } TASK [fedora.linux_system_roles.sudo : Set sudoer file paths variable] ********* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:54 Monday 27 April 2026 13:30:20 -0400 (0:00:00.024) 0:00:08.210 ********** ok: [managed-node2] => { "ansible_facts": { "sudo_file_paths": [ "/etc/sudoers" ] }, "changed": false } TASK [fedora.linux_system_roles.sudo : Ensure include directories are created] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:58 Monday 27 April 2026 13:30:20 -0400 (0:00:00.025) 0:00:08.235 ********** TASK [fedora.linux_system_roles.sudo : Ensure sudoers include files are configured] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:68 Monday 27 April 2026 13:30:20 -0400 (0:00:00.014) 0:00:08.249 ********** skipping: [managed-node2] => (item=/etc/sudoers) => { "ansible_loop_var": "item", "changed": false, "item": { "aliases": { "cmnd_alias": [ { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_NO_SPACES" }, { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_SPACES" } ], "host_alias": [ { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_NO_SPACES" }, { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_SPACES" } ], "runas_alias": [ { "name": "MY_RUNAS_NO_SPACES", "users": [ "myrunasuser" ] }, { "name": "MY_RUNAS_SPACES", "users": [ "myrunasuser" ] } ], "user_alias": [ { "name": "MY_USER_NO_SPACES", "users": [ "myuser" ] }, { "name": "MY_USER_SPACES", "users": [ "myuser" ] } ] }, "path": "/etc/sudoers" }, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Ensure /etc/sudoers is configured] ****** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:81 Monday 27 April 2026 13:30:20 -0400 (0:00:00.025) 0:00:08.274 ********** changed: [managed-node2] => (item=/etc/sudoers) => { "ansible_loop_var": "item", "changed": true, "checksum": "a623734d7c4e6d53397a22817db5f65eeb780571", "dest": "/etc/sudoers", "gid": 0, "group": "root", "item": { "aliases": { "cmnd_alias": [ { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_NO_SPACES" }, { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_SPACES" } ], "host_alias": [ { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_NO_SPACES" }, { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_SPACES" } ], "runas_alias": [ { "name": "MY_RUNAS_NO_SPACES", "users": [ "myrunasuser" ] }, { "name": "MY_RUNAS_SPACES", "users": [ "myrunasuser" ] } ], "user_alias": [ { "name": "MY_USER_NO_SPACES", "users": [ "myuser" ] }, { "name": "MY_USER_SPACES", "users": [ "myuser" ] } ] }, "path": "/etc/sudoers" }, "md5sum": "6041f5e9ea64897ae99aa556a02fd5b4", "mode": "0440", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 549, "src": "/root/.ansible/tmp/ansible-tmp-1777311020.5168684-10602-212911121337086/source", "state": "file", "uid": 0 } TASK [fedora.linux_system_roles.sudo : Search for sudoers files in included directories] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:101 Monday 27 April 2026 13:30:21 -0400 (0:00:00.675) 0:00:08.949 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Set unauthorized included sudoers files variable] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:109 Monday 27 April 2026 13:30:21 -0400 (0:00:00.014) 0:00:08.964 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Remove unauthorized included sudoers files] *** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:113 Monday 27 April 2026 13:30:21 -0400 (0:00:00.014) 0:00:08.978 ********** skipping: [managed-node2] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.sudo : Record role success fingerprint] ******** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:120 Monday 27 April 2026 13:30:21 -0400 (0:00:00.014) 0:00:08.993 ********** ok: [managed-node2] => { "changed": false } TASK [Get sudoers] ************************************************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:68 Monday 27 April 2026 13:30:21 -0400 (0:00:00.343) 0:00:09.336 ********** ok: [managed-node2] => { "changed": false, "content": "IwojIEFuc2libGUgbWFuYWdlZAojCiMgc3lzdGVtX3JvbGU6c3VkbwoKIyBBbGlhcyBzcGVjaWZpY2F0aW9ucwoKIyMgQ29tbWFuZCBBbGlhc2VzCkNtbmRfQWxpYXMgICAgTVlfQ01ORF9OT19TUEFDRVMgPSAvdXNyL2xvY2FsL2Jpbi9teV9jbWRfYWxpYXMuc2gKQ21uZF9BbGlhcyAgICBNWV9DTU5EX1NQQUNFUyA9IC91c3IvbG9jYWwvYmluL215X2NtZF9hbGlhcy5zaAoKIyMgSG9zdCBBbGlhc2VzCkhvc3RfQWxpYXMgICAgTVlfSE9TVF9OT19TUEFDRVMgPSBteWhvc3RhbGlhcy5leGFtcGxlLmNvbQpIb3N0X0FsaWFzICAgIE1ZX0hPU1RfU1BBQ0VTID0gbXlob3N0YWxpYXMuZXhhbXBsZS5jb20KCiMjIFJ1bmFzIEFsaWFzZXMKUnVuYXNfQWxpYXMgICAgTVlfUlVOQVNfTk9fU1BBQ0VTID0gbXlydW5hc3VzZXIKUnVuYXNfQWxpYXMgICAgTVlfUlVOQVNfU1BBQ0VTID0gbXlydW5hc3VzZXIKCiMjIFVzZXIgQWxpYXNlcwpVc2VyX0FsaWFzICAgIE1ZX1VTRVJfTk9fU1BBQ0VTID0gbXl1c2VyClVzZXJfQWxpYXMgICAgTVlfVVNFUl9TUEFDRVMgPSBteXVzZXIK", "encoding": "base64", "source": "/etc/sudoers" } TASK [Check that lines are properly formatted] ********************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:73 Monday 27 April 2026 13:30:21 -0400 (0:00:00.438) 0:00:09.774 ********** ok: [managed-node2] => (item=['Cmnd_Alias', {'name': 'MY_CMND_NO_SPACES', 'commands': ['/usr/local/bin/my_cmd_alias.sh']}]) => {} MSG: expected Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['Cmnd_Alias', {'name': 'MY_CMND_SPACES', 'commands': ['/usr/local/bin/my_cmd_alias.sh']}]) => {} MSG: expected Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['Host_Alias', {'name': 'MY_HOST_NO_SPACES', 'hosts': ['myhostalias.example.com']}]) => {} MSG: expected Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['Host_Alias', {'name': 'MY_HOST_SPACES', 'hosts': ['myhostalias.example.com']}]) => {} MSG: expected Host_Alias MY_HOST_SPACES = myhostalias.example.com in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['User_Alias', {'name': 'MY_USER_NO_SPACES', 'users': ['myuser']}]) => {} MSG: expected User_Alias MY_USER_NO_SPACES = myuser in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['User_Alias', {'name': 'MY_USER_SPACES', 'users': ['myuser']}]) => {} MSG: expected User_Alias MY_USER_SPACES = myuser in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['Runas_Alias', {'name': 'MY_RUNAS_NO_SPACES', 'users': ['myrunasuser']}]) => {} MSG: expected Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser ok: [managed-node2] => (item=['Runas_Alias', {'name': 'MY_RUNAS_SPACES', 'users': ['myrunasuser']}]) => {} MSG: expected Runas_Alias MY_RUNAS_SPACES = myrunasuser in actual # # Ansible managed # # system_role:sudo # Alias specifications ## Command Aliases Cmnd_Alias MY_CMND_NO_SPACES = /usr/local/bin/my_cmd_alias.sh Cmnd_Alias MY_CMND_SPACES = /usr/local/bin/my_cmd_alias.sh ## Host Aliases Host_Alias MY_HOST_NO_SPACES = myhostalias.example.com Host_Alias MY_HOST_SPACES = myhostalias.example.com ## Runas Aliases Runas_Alias MY_RUNAS_NO_SPACES = myrunasuser Runas_Alias MY_RUNAS_SPACES = myrunasuser ## User Aliases User_Alias MY_USER_NO_SPACES = myuser User_Alias MY_USER_SPACES = myuser TASK [Check that lines are properly formatted] ********************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:82 Monday 27 April 2026 13:30:22 -0400 (0:00:00.094) 0:00:09.868 ********** ok: [managed-node2] => (item=['Cmnd_Alias', {'name': 'MY_CMND_NO_SPACES', 'commands': ['/usr/local/bin/my_cmd_alias.sh']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Cmnd_Alias", { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_NO_SPACES" } ] } MSG: All assertions passed ok: [managed-node2] => (item=['Cmnd_Alias', {'name': 'MY_CMND_SPACES', 'commands': ['/usr/local/bin/my_cmd_alias.sh']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Cmnd_Alias", { "commands": [ "/usr/local/bin/my_cmd_alias.sh" ], "name": "MY_CMND_SPACES" } ] } MSG: All assertions passed ok: [managed-node2] => (item=['Host_Alias', {'name': 'MY_HOST_NO_SPACES', 'hosts': ['myhostalias.example.com']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Host_Alias", { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_NO_SPACES" } ] } MSG: All assertions passed ok: [managed-node2] => (item=['Host_Alias', {'name': 'MY_HOST_SPACES', 'hosts': ['myhostalias.example.com']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Host_Alias", { "hosts": [ "myhostalias.example.com" ], "name": "MY_HOST_SPACES" } ] } MSG: All assertions passed ok: [managed-node2] => (item=['User_Alias', {'name': 'MY_USER_NO_SPACES', 'users': ['myuser']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "User_Alias", { "name": "MY_USER_NO_SPACES", "users": [ "myuser" ] } ] } MSG: All assertions passed ok: [managed-node2] => (item=['User_Alias', {'name': 'MY_USER_SPACES', 'users': ['myuser']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "User_Alias", { "name": "MY_USER_SPACES", "users": [ "myuser" ] } ] } MSG: All assertions passed ok: [managed-node2] => (item=['Runas_Alias', {'name': 'MY_RUNAS_NO_SPACES', 'users': ['myrunasuser']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Runas_Alias", { "name": "MY_RUNAS_NO_SPACES", "users": [ "myrunasuser" ] } ] } MSG: All assertions passed ok: [managed-node2] => (item=['Runas_Alias', {'name': 'MY_RUNAS_SPACES', 'users': ['myrunasuser']}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "Runas_Alias", { "name": "MY_RUNAS_SPACES", "users": [ "myrunasuser" ] } ] } MSG: All assertions passed TASK [Check header for ansible_managed, fingerprint] *************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:91 Monday 27 April 2026 13:30:22 -0400 (0:00:00.094) 0:00:09.963 ********** included: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/check_present_header.yml for managed-node2 TASK [Get file] **************************************************************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/check_present_header.yml:3 Monday 27 April 2026 13:30:22 -0400 (0:00:00.015) 0:00:09.979 ********** ok: [managed-node2] => { "changed": false, "content": "IwojIEFuc2libGUgbWFuYWdlZAojCiMgc3lzdGVtX3JvbGU6c3VkbwoKIyBBbGlhcyBzcGVjaWZpY2F0aW9ucwoKIyMgQ29tbWFuZCBBbGlhc2VzCkNtbmRfQWxpYXMgICAgTVlfQ01ORF9OT19TUEFDRVMgPSAvdXNyL2xvY2FsL2Jpbi9teV9jbWRfYWxpYXMuc2gKQ21uZF9BbGlhcyAgICBNWV9DTU5EX1NQQUNFUyA9IC91c3IvbG9jYWwvYmluL215X2NtZF9hbGlhcy5zaAoKIyMgSG9zdCBBbGlhc2VzCkhvc3RfQWxpYXMgICAgTVlfSE9TVF9OT19TUEFDRVMgPSBteWhvc3RhbGlhcy5leGFtcGxlLmNvbQpIb3N0X0FsaWFzICAgIE1ZX0hPU1RfU1BBQ0VTID0gbXlob3N0YWxpYXMuZXhhbXBsZS5jb20KCiMjIFJ1bmFzIEFsaWFzZXMKUnVuYXNfQWxpYXMgICAgTVlfUlVOQVNfTk9fU1BBQ0VTID0gbXlydW5hc3VzZXIKUnVuYXNfQWxpYXMgICAgTVlfUlVOQVNfU1BBQ0VTID0gbXlydW5hc3VzZXIKCiMjIFVzZXIgQWxpYXNlcwpVc2VyX0FsaWFzICAgIE1ZX1VTRVJfTk9fU1BBQ0VTID0gbXl1c2VyClVzZXJfQWxpYXMgICAgTVlfVVNFUl9TUEFDRVMgPSBteXVzZXIK", "encoding": "base64", "source": "/etc/sudoers" } TASK [Check for presence of ansible managed header, fingerprint] *************** task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/check_present_header.yml:9 Monday 27 April 2026 13:30:22 -0400 (0:00:00.319) 0:00:10.298 ********** ok: [managed-node2] => { "changed": false } MSG: All assertions passed TASK [Test cleanup] ************************************************************ task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:98 Monday 27 April 2026 13:30:22 -0400 (0:00:00.025) 0:00:10.324 ********** included: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml for managed-node2 TASK [Restore sudoers] ********************************************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:3 Monday 27 April 2026 13:30:22 -0400 (0:00:00.015) 0:00:10.340 ********** changed: [managed-node2] => { "changed": true, "checksum": "e683ad5e5d8d7112d14924c11c98be7bf2ef4918", "dest": "/etc/sudoers", "gid": 0, "group": "root", "md5sum": "1b134d95a4618029ff962a63b021e1ca", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 4328, "src": "/var/tmp/sudo_umkrq5s8/sudoers", "state": "file", "uid": 0 } TASK [Restore sudoers.d] ******************************************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:12 Monday 27 April 2026 13:30:22 -0400 (0:00:00.336) 0:00:10.677 ********** changed: [managed-node2] => { "changed": true, "checksum": null, "dest": "/etc/sudoers.d/sudoers.d", "gid": 0, "group": "root", "md5sum": null, "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 23, "src": "/var/tmp/sudo_umkrq5s8/sudoers.d", "state": "directory", "uid": 0 } TASK [Clean up temp directory] ************************************************* task path: /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:21 Monday 27 April 2026 13:30:23 -0400 (0:00:00.336) 0:00:11.013 ********** changed: [managed-node2] => { "changed": true, "path": "/var/tmp/sudo_umkrq5s8", "state": "absent" } META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* managed-node2 : ok=30 changed=8 unreachable=0 failed=0 skipped=10 rescued=0 ignored=0 SYSTEM ROLES ERRORS BEGIN v1 [] SYSTEM ROLES ERRORS END v1 TASKS RECAP ******************************************************************** Monday 27 April 2026 13:30:23 -0400 (0:00:00.430) 0:00:11.444 ********** =============================================================================== fedora.linux_system_roles.sudo : Ensure sudo is installed --------------- 2.91s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:20 Gathering Facts --------------------------------------------------------- 0.89s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:3 Try with no spaces in alias definitions --------------------------------- 0.79s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:45 fedora.linux_system_roles.sudo : Ensure /etc/sudoers is configured ------ 0.68s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:81 fedora.linux_system_roles.sudo : Ensure ansible_facts used by role ------ 0.54s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:2 Backup sudoers ---------------------------------------------------------- 0.48s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:10 Create temp test directory ---------------------------------------------- 0.45s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:3 fedora.linux_system_roles.sudo : Scan sudoers --------------------------- 0.45s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:5 Get sudoers ------------------------------------------------------------- 0.44s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:68 Clean up temp directory ------------------------------------------------- 0.43s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:21 fedora.linux_system_roles.sudo : Record role begin fingerprint ---------- 0.38s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:7 Backup sudoers.d -------------------------------------------------------- 0.36s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/setup.yml:19 fedora.linux_system_roles.sudo : Record role success fingerprint -------- 0.34s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/main.yml:120 Restore sudoers --------------------------------------------------------- 0.34s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:3 Restore sudoers.d ------------------------------------------------------- 0.34s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/cleanup.yml:12 Get file ---------------------------------------------------------------- 0.32s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tasks/check_present_header.yml:3 fedora.linux_system_roles.sudo : Check if system is ostree -------------- 0.31s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:16 fedora.linux_system_roles.sudo : Check if transactional-update exists in /sbin --- 0.31s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/roles/sudo/tasks/set_vars.yml:28 Check that lines are properly formatted --------------------------------- 0.09s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:82 Check that lines are properly formatted --------------------------------- 0.09s /tmp/collections-oOz/ansible_collections/fedora/linux_system_roles/tests/sudo/tests_scan_sudoers.yml:73