%if 0%{?rhel} && ! 0%{?epel} %bcond_with ansible %else %bcond_without ansible %endif %bcond_with collection_artifact %if 0%{?fedora} || 0%{?rhel} > 8 %bcond_without html %else # pandoc is not supported in rhel 7 and older, # which is needed for converting .md to .html. %bcond_with html %endif %global collection_name sap_install %if 0%{?rhel} %define package_name rhel-system-roles-sap %global collection_namespace redhat %else %define package_name linux-system-roles-sap %global collection_namespace community %endif # collection_version has to be increased by every rebuild # otherwise, it cannot be uploaded to Automation Hub and Galaxy # due to version conflict %define collection_version 1.2.1 %global mainid e2a233f5a0cb68363798bf014b16552cca681bd0 %global commit_id_sap_install f0deb287aaa0fb7d992b95a04b14e263b6690c23 %global rolename1 sap_general_preconfigure %global rolename2 sap_hana_preconfigure %global rolename3 sap_netweaver_preconfigure %global rolename4 sap_hana_install %global rolename5 sap_ha_pacemaker_cluster %global rolename6 sap_ha_set_netweaver %global rolename7 sap_hostagent %global rolename8 sap_install_media_detect %global rolename9 sap_storage %global rolename10 sap_swpm %global rolename11 sap_ha_install_hana_hsr %global src_owner linux-system-roles %global github_repo_sap_install community.sap_install %global rolename_rhel %{rolename1} %{rolename2} %{rolename3} %{rolename4} %{rolename5} %{rolename10} %{rolename11} %global rolename_community %{rolename_rhel} %{rolename1} %{rolename6} %{rolename7} %{rolename8} %{rolename9} %if 0%{?fedora} %global rolenames %{rolename_community} %else %global rolenames %{rolename_rhel} %endif Name: %{package_name} Summary: System Roles to configure RHEL for running SAP NetWeaver- or SAP HANA-based products Version: 3.4.0 Release: 3%{?dist} License: GPLv3+ Url: https://github.com/berndfinger/community.sap_install Source0: https://github.com/linux-system-roles/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz Source1: https://github.com/berndfinger/%{github_repo_sap_install}/archive/%{commit_id_sap_install}/%{github_repo_sap_install}-%{commit_id_sap_install}.tar.gz # files/README.md, files/roles/sap_swpm/README.md from https://gitlab.cee.redhat.com/sap-linuxlab/prepare-redhat.sap_install Source2: prepare-redhat.sap_install-main.tar.bz2 Patch1: community.sap_install-shebang.patch BuildArch: noarch %if %{with html} # Requirements for md2html.sh to build the documentation %if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: rubygem-kramdown-parser-gfm %else BuildRequires: pandoc BuildRequires: asciidoc BuildRequires: highlight %endif %endif # Requirements for galaxy_transform.py BuildRequires: python3 %if 0%{?fedora} || 0%{?rhel} >= 8 BuildRequires: python3dist(ruamel.yaml) Requires: python3-jmespath Requires: python3-netaddr %else BuildRequires: python3-ruamel-yaml Requires: python-jmespath Requires: python-netaddr %endif %if %{with ansible} BuildRequires: ansible-core >= 2.9.10 %endif %if %{undefined __ansible_provides} Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{version} %endif # be compatible with the usual Fedora Provides: Provides: ansible-collection-%{collection_namespace}-%{collection_name} = %{version}-%{release} %if 0%{?fedora} || 0%{?rhel} >= 8 %{!?ansible_collection_files:%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/} %else %if %{?ansible_collection_files:0}%{!?ansible_collection_files:1} %define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/ %endif %endif %if %{without ansible} %define ansible_collection_build_install() tar -cf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz .; mkdir -p %{buildroot}%{ansible_collection_files}%{collection_name}; (cd %{buildroot}%{ansible_collection_files}%{collection_name}; tar -xf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz) %else %define ansible_collection_build_install() ansible-galaxy collection build; ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz %endif %description Collection of Ansible roles which configures a RHEL system according to applicable SAP notes so that any SAP software can be installed. %if %{with collection_artifact} %package collection-artifact Summary: Collection artifact to import to Automation Hub / Ansible Galaxy %description collection-artifact Collection artifact for %{name}. This package contains %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz %endif %prep %setup -q -a1 -a2 -n auto-maintenance-%{mainid} # add correct version and namespace for Automation Hub and Galaxy cp %{github_repo_sap_install}-%{commit_id_sap_install}/galaxy.yml . sed -i -e "s|^namespace: .*|namespace: %{collection_namespace}|" galaxy.yml sed -i -e "s|^version: .*|version: %{collection_version}|" galaxy.yml # update README.md and roles/sap_swpm/README.md cp prepare-redhat.sap_install-main/README.md %{github_repo_sap_install}-%{commit_id_sap_install}/ cp prepare-redhat.sap_install-main/files/roles/sap_swpm/README.md %{github_repo_sap_install}-%{commit_id_sap_install}/roles/sap_swpm/README.md pushd %{github_repo_sap_install}-%{commit_id_sap_install}/ # workaround for md2html error sed -i -e "s|for POWER ||g" roles/sap_hana_preconfigure/README.md %patch1 -p1 # modify collection-requirements.yml, fedora.linux_system_roles -> redhat.rhel_system_roles for r in %{rolenames} ; do yml=roles/${r}/meta/collection-requirements.yml [ -f ${yml} ] && sed -i "s,fedora.linux_system_roles,redhat.rhel_system_roles," ${yml} done # modify defaults/main.yml, fedora.linux_system_roles -> redhat.rhel_system_roles for r in %{rolenames} ; do yml=roles/${r}/defaults/main.yml [ -f ${yml} ] && sed -i "s,system_roles_collection: 'fedora.linux_system_roles',system_roles_collection: 'redhat.rhel_system_roles'," ${yml} done popd # remove zero file and symlinks find . -type f -size 0 -delete find . -type l -delete pushd %{github_repo_sap_install}-%{commit_id_sap_install}/roles/ # remove all SLES stuff and RHEL 6 stuff rm -rf */tasks/SLES/ rm -f */vars/SLES_15.yml rm -rf sap_hana_preconfigure/tasks/sapnote/1275776 # SLES - sapconf, saptune, etc rm -rf sap_hana_preconfigure/tasks/sapnote/1944799 # SLES - HANA install and config guidelines rm -f sap_hana_preconfigure/tasks/sapnote/1944799.yml rm -f sap_hana_preconfigure/tasks/sapnote/2013638.yml # RHEL 6.5 - OS settings rm -f sap_hana_preconfigure/tasks/sapnote/2136965.yml # RHEL 6.6 - OS settings rm -f sap_hana_preconfigure/tasks/sapnote/2247020.yml # RHEL 6.7 - OS settings rm -rf sap_hana_preconfigure/tasks/sapnote/2578899 # SLES 15 - installation rm -rf sap_hana_preconfigure/tasks/sapnote/2684254 # SLES 15 - OS settings for HANA rm -f sap_hana_preconfigure/vars/RedHat_6.5.yml rm -f sap_hana_preconfigure/vars/RedHat_6.6.yml rm -f sap_hana_preconfigure/vars/RedHat_6.7.yml popd %build %if %{with html} readmes="" for role in %{rolenames}; do readmes="${readmes} %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.md" done sh md2html.sh $readmes %{github_repo_sap_install}-%{commit_id_sap_install}/README.md %endif # create dest-path mkdir .collections for role in %{rolenames} ; do LANG=en_US.utf-8 LC_ALL=en_US.utf-8 python3 lsr_role2collection.py --role "$role" \ --src-path %{github_repo_sap_install}-%{commit_id_sap_install}/roles/"$role" \ --src-owner %{src_owner} \ --dest-path .collections \ --namespace %{collection_namespace} \ --collection %{collection_name} \ --new-role "$new_role" done cp -p galaxy.yml .collections/ansible_collections/%{collection_namespace}/%{collection_name} %install mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles \ $RPM_BUILD_ROOT%{_pkgdocdir} # create file selection for documents echo "%dir %{_pkgdocdir}" > files_section.txt cp %{github_repo_sap_install}-%{commit_id_sap_install}/README.md $RPM_BUILD_ROOT%{_pkgdocdir}/ %if %{with html} cp %{github_repo_sap_install}-%{commit_id_sap_install}/README.html $RPM_BUILD_ROOT%{_pkgdocdir}/ %endif echo "%{_pkgdocdir}/README.*" >> files_section.txt for role in %{rolenames} ; do mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/$role cp -pR %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role $RPM_BUILD_ROOT%{_datadir}/ansible/roles/ install -m 644 %{github_repo_sap_install}-%{commit_id_sap_install}/LICENSE \ %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.md \ $RPM_BUILD_ROOT%{_pkgdocdir}/$role/ %if %{with html} install -m 644 %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/$role/ %endif echo "%dir %{_pkgdocdir}/$role" >> files_section.txt done # install collection files pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ %ansible_collection_build_install popd # install collection_artifact %if %{with collection_artifact} # Copy collection artifact to /usr/share/ansible/collections/ for collection-artifact pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ mv %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz $RPM_BUILD_ROOT%{_datadir}/ansible/collections/ popd %endif %files -f files_section.txt %dir %{_datadir}/ansible %dir %{_datadir}/ansible/roles %doc %{_pkgdocdir}/*/README.md %if %{with html} %{_pkgdocdir}/*/README.html %endif %license %{_pkgdocdir}/*/LICENSE %{_datadir}/ansible/roles/* %{ansible_collection_files} %if %{with collection_artifact} %files collection-artifact %{_datadir}/ansible/collections/%{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz %endif %changelog * Mon Jan 30 2023 Than Ngo - 3.4.0-3 - Related: #2155876, rebase sap roles to version 1.2.1 * Thu Jan 19 2023 Than Ngo - 3.4.0-2 - Related: #2155876, compat-sap-c++-10 is not available for RHEL 8.2 and earlier on hardware platform s390x * Wed Jan 11 2023 Than Ngo - 3.4.0-1 - Resolves: #2155876, rebase sap roles to version 1.2.0 * Tue Nov 22 2022 Than Ngo - 3.3.0-4 - Resolves: #2142957, drop deprecated paramater for Ansible 2.14 * Fri Jul 15 2022 Than Ngo - 3.3.0-3 - update galaxy.yml and README.md and url Related: #2103633 * Tue Jul 12 2022 Than Ngo - 3.3.0-2 - make the role Ansible 2.13 compliant - get rid of all the new ansible-lint 6.3.0 errors for preconfigure and sap_hana_install roles Resolves: #2103633 * Mon Jul 04 2022 Than Ngo - 3.3.0-1 - Resolves: #2103633, include roles for setting up a two-node SAP HANA pacemaker cluster * Thu Jun 09 2022 Than Ngo - 3.2.0-3 - sap_hana_preconfigure: Add vars for RHEL 9.1 managed nodes - sap_general_preconfigure: fix variable inclusion for RHEL minor releases Related: #2063050 * Wed Jun 08 2022 Than Ngo - 3.2.0-2 - sap_general_preconfigure: do not attempt to enable HANA repos for s390x - sap_hana_preconfigure: using wrong variable name - sap_hana_preconfigure: Fix issue sap-linuxlab#154 Related: #2063050 * Mon Mar 21 2022 Than Ngo - 3.2.0-1 - Resolves: #2063050, rebase to new upstream org sap-linuxlab * Fri Dec 03 2021 Than Ngo - 3.1.1-10 - Related: #2016858, increase release to avoid update conflict * Fri Dec 03 2021 Than Ngo - 3.1.1-8 - Related: #2016858, rebase * Tue Nov 16 2021 Than Ngo - 3.1.1-7 - Resolves: #2016858, ansible-lint cleanup * Wed Sep 08 2021 Than Ngo - 3.1.1-6 - set min kernel version for RHEL 8.4 x86_64 - use grubby for setting tsx=on - add tsx=on to the kernel command line unconditionally * Wed Sep 01 2021 Than Ngo - 3.1.1-5 - Related: #1928398, fix yum group install errors on RHEL 7 * Fri Aug 20 2021 Than Ngo - 3.1.1-4 - Related: #1928398, fix #149, #177, #193, #194 * Mon Jul 12 2021 Than Ngo - 3.1.1-3 - add missing __sap_preconfigure_envgroups for RHEL 7.x - add __sap_hana_preconfigure_req_repos variables for RHEL 8.5 and later Related: #1928398 * Thu Jul 01 2021 Than Ngo - 3.1.1-2 - Related: #1928398, add missing changelogs * Tue Jun 29 2021 Than Ngo - 3.1.1-1 - Resolves: #1928398, rebase to 3.1.1 for Ansible Collections * Fri Mar 05 2021 Than Ngo - 3.0.1-4 - fixed issue #130 in sap-preconfigure - fixed typos in README.md in sap_hana_preconfigure - added detailed explanations for sap_hana_preconfigure_kernel_parameters_ppc64le in README.md - fixed issue #170 in sap_hana_preconfigure Related: #1891642 * Wed Feb 24 2021 Than Ngo - 3.0.1-3 - Related: #1891642, fixed issue #125 in sap-preconfigure and #163 and #164 in sap-hana-preconfigure * Thu Feb 18 2021 Than Ngo - 3.0.1-2 - Related: #1891642, update sap-hana-preconfigure 3.0.1 and fixed Urls * Thu Feb 18 2021 Than Ngo - 3.0.1-1 - Related: #1891642, rebase to 3.0.1 * Mon Feb 15 2021 Than Ngo - 3.0.0-2 - Related: #1891642, more fixes #145, #148, #149, #150 #147 * Thu Jan 28 2021 Than Ngo - 3.0.0-1 - Resolves: #1891638, bug fixes - Resolves: #1891642, new features * Mon Sep 21 2020 Than Ngo - 2.0.0-7 - Related: #1867027, fix #119 * Thu Aug 20 2020 Than Ngo - 2.0.0-6 - Related: #1867027, fix #92 * Fri Aug 07 2020 Than Ngo - 2.0.0-5 - Resolves: #1867027, more fixes for #89, #109, #110, #111, #112, #113, #114, #116 * Tue Jul 21 2020 Than Ngo - 2.0.0-4 - Related: #1844190, more fixes for #84, #85, #86, #88, #98, #104, #105, #107 * Fri Jul 03 2020 Than Ngo - 2.0.0-3 - Related: #1844190, drop 1944799.yml * Mon Jun 29 2020 Than Ngo - 2.0.0-2 - Related: #1844190, more fixes for #78, #79, #81, #82, #94-#97, #99, #101-#102 * Mon Jun 08 2020 Than Ngo - 2.0.0-1 - Resolves: #1844190, rebase to 2.0.0 * Thu May 07 2020 Than Ngo - 1.1.1-2 - Resolves: #1829495, fix summary * Mon Oct 21 2019 Than Ngo - 1.1.1-1 - rebase to 1.1.1 - always use ansible_hostname + ansible_domain instead of ansible_fqdn - use {{ ansible_hostname }}.{{ ansible_domain }} instead of {{ ansible_fqdn }} - added LC_ALL=C before commands for which the outputs are to be evaluated * Thu Sep 12 2019 Than Ngo - 1.1-1 - rebase to 1.1 * Fri Jun 28 2019 Than Ngo - 1.0-1 - Initial release.