mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-25 11:51:26 -07:00
[PR #6211/9f67cbbe backport][stable-6] rhsm modules: cleanly fail when not run as root (#6218)
rhsm modules: cleanly fail when not run as root (#6211)
subscription-manager on RHEL installs a symlink in /usr/bin to
console-helper (part of usermode), which triggers an interactive prompt
for root credentials when run as user. It seems that console-helper
does not handle well non-interactive contexts (e.g. without a TTY for
input), and thus it will hang waiting for input when run as user in an
Ansible task.
Since subscription-manager requires root already anyway (and it will
fail when explicitly run as user), then apply the same logic locally on
all the modules that interact with it: redhat_subscription,
rhsm_release, and rhsm_repository.
(cherry picked from commit 9f67cbbe36
)
Co-authored-by: Pino Toscano <ptoscano@redhat.com>
This commit is contained in:
parent
e0465d1f48
commit
9c411586ea
6 changed files with 40 additions and 4 deletions
|
@ -18,6 +18,8 @@ notes:
|
|||
- This module will fail on an unregistered system.
|
||||
Use the C(redhat_subscription) module to register a system
|
||||
prior to setting the RHSM release.
|
||||
- It is possible to interact with C(subscription-manager) only as root,
|
||||
so root permissions are required to successfully run this module.
|
||||
requirements:
|
||||
- Red Hat Enterprise Linux 6+ with subscription-manager installed
|
||||
extends_documentation_fragment:
|
||||
|
@ -63,6 +65,7 @@ current_release:
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
# Matches release-like values such as 7.2, 5.10, 6Server, 8
|
||||
|
@ -109,6 +112,11 @@ def main():
|
|||
supports_check_mode=True
|
||||
)
|
||||
|
||||
if os.getuid() != 0:
|
||||
module.fail_json(
|
||||
msg="Interacting with subscription-manager requires root permissions ('become: true')"
|
||||
)
|
||||
|
||||
target_release = module.params['release']
|
||||
|
||||
# sanity check: the target release at least looks like a valid release
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue