From fc5894171d5daa6008ce0c723440d27ddec2ca1f Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Tue, 15 Nov 2022 16:59:48 -0600 Subject: [PATCH] add rhel_facts, move r4e_rpm_ostree to rhel_rpm_ostree Signed-off-by: Adam Miller --- plugins/modules/rhel_facts.py | 73 +++++++++++++++++++ .../{r4e_rpm_ostree.py => rhel_rpm_ostree.py} | 6 +- 2 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 plugins/modules/rhel_facts.py rename plugins/modules/{r4e_rpm_ostree.py => rhel_rpm_ostree.py} (97%) diff --git a/plugins/modules/rhel_facts.py b/plugins/modules/rhel_facts.py new file mode 100644 index 0000000..e8084e5 --- /dev/null +++ b/plugins/modules/rhel_facts.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright: Red Hat Inc. +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = ''' +--- +module: rhel_facts +version_added: 1.5.0 +short_description: Facts module to set or override RHEL specific facts +description: + - Compatibility layer for using the "package" module for rpm-ostree based systems via setting the "pkg_mgr" fact correctly. +author: + - Adam Miller (@maxamillion) +requirements: + - rpm-ostree +seealso: + - module: ansible.builtin.package +options: {} +''' + +EXAMPLES = ''' +- name: Playbook to use the package module on all RHEL footprints + vars: + ansible_facts_modules: + - setup # REQUIRED to be run before all custom fact modules + - ansible.posix.rhel_facts + tasks: + - name: Ensure packages are installed + ansible.builtin.package: + name: + - htop + - ansible + state: present +''' + +RETURN = """ +ansible_facts: + description: Relevant Ansible Facts + returned: always + type: complex + sample: {'pkg_mgr': 'ansible.posix.rhel_facts'} +""" + +import os +import traceback + +from ansible.module_utils.basic import AnsibleModule + +def main(): + module = AnsibleModule( + argument_spec=dict(), + ) + + ansible_facts = {} + + # Verify that the platform is an rpm-ostree based system + if os.path.exists("/run/ostree-booted"): + ansible_facts['pkg_mgr'] = 'ansible.posix.rhel_rpm_ostree' + + module.exit_json(ansible_facts, changed=False) + + +if __name__ == '__main__': + main() diff --git a/plugins/modules/r4e_rpm_ostree.py b/plugins/modules/rhel_rpm_ostree.py similarity index 97% rename from plugins/modules/r4e_rpm_ostree.py rename to plugins/modules/rhel_rpm_ostree.py index 47b0d7e..84ca19a 100644 --- a/plugins/modules/r4e_rpm_ostree.py +++ b/plugins/modules/rhel_rpm_ostree.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', DOCUMENTATION = ''' --- -module: r4e_rpm_ostree +module: rhel_rpm_ostree version_added: 1.5.0 short_description: Ensure packages exist in a RHEL for Edge rpm-ostree based system description: @@ -52,8 +52,8 @@ notes: ''' EXAMPLES = ''' -- name: Install htop and ansible on rpm-ostree based overlay - ansible.posix.r4e_rpm_ostree: +- name: Ensure htop and ansible are installed on rpm-ostree based RHEL + ansible.posix.rhel_rpm_ostree: name: - htop - ansible