From e662d23188b1b06ae669230e1b1670f667169ea6 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Mar 30 2021 12:15:18 +0000 Subject: import rhel-system-roles-1.0.0-31.el8 --- diff --git a/.gitignore b/.gitignore index aa3d908..48b2ab6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,18 @@ -SOURCES/certificate-27986c2.tar.gz -SOURCES/kdump-0c2bb28.tar.gz -SOURCES/kernel_settings-f760285.tar.gz -SOURCES/logging-95e2574.tar.gz -SOURCES/metrics-e1ca747.tar.gz -SOURCES/nbde_client-da2db56.tar.gz -SOURCES/nbde_server-8110159.tar.gz -SOURCES/network-e0c7d55.tar.gz +SOURCES/ansible-sshd-e1de59b3c54e9d48a010eeca73755df339c7e628.tar.gz +SOURCES/auto-maintenance-e5ed203b2d7224c0bf0c3fd55452456c8f468cad.tar.gz +SOURCES/certificate-50041ce55348fcce34aba4cbe3ea160c5d890ab3.tar.gz +SOURCES/crypto_policies-76b2d5b0460dba22c5d290c1af96e4fdb3434cb9.tar.gz +SOURCES/ha_cluster-779bb78559de58bb5a1f25a4b92039c373ef59a4.tar.gz +SOURCES/kdump-77596fdd976c6160d6152c200a5432c609725a14.tar.gz +SOURCES/kernel_settings-e5e5abb35fb695e22ccffa855c98ab882650480e.tar.gz +SOURCES/logging-4b07edf4e84882c9d0fb979092ba5953aac0b4d5.tar.gz +SOURCES/metrics-e81b2650108727f38b1c856699aad26af0f44a46.tar.gz +SOURCES/nbde_client-3af7452e4861ee2363b29b23bf78bf11e06be142.tar.gz +SOURCES/nbde_server-1.0.1.tar.gz +SOURCES/network-bda206d45c87ee8c1a5284de84f5acf5e629de97.tar.gz SOURCES/postfix-0.1.tar.gz -SOURCES/selinux-6cd1ec8.tar.gz -SOURCES/storage-36c4803.tar.gz -SOURCES/timesync-924650d.tar.gz -SOURCES/tlog-2b3ffab.tar.gz +SOURCES/selinux-1.1.1.tar.gz +SOURCES/ssh-effa0a0d993832dee726290f263a2182cf3eacda.tar.gz +SOURCES/storage-485de47b0dc0787aea077ba448ecb954f53e40c4.tar.gz +SOURCES/timesync-924650d0cd4117f73a7f0413ab745a8632bc5cec.tar.gz +SOURCES/tlog-1.1.0.tar.gz diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata index e413b49..dedf84c 100644 --- a/.rhel-system-roles.metadata +++ b/.rhel-system-roles.metadata @@ -1,13 +1,18 @@ -76558f143e91d425a3fafd870d27ca159fe10696 SOURCES/certificate-27986c2.tar.gz -36b200d1c6a8d1cb1ea87e3e9aa8c4f6bbd8155d SOURCES/kdump-0c2bb28.tar.gz -da22df6ef24c73b447638b6d26ff09bab2ead1c8 SOURCES/kernel_settings-f760285.tar.gz -ec33cb64813a896c5dc3673ee22e0b343b60cfbf SOURCES/logging-95e2574.tar.gz -20e613542ae7f17b050ffe6b94e46e76295ed891 SOURCES/metrics-e1ca747.tar.gz -cbc09ce6f6460e828b46a7cfdc2fc32cb5b7b8d7 SOURCES/nbde_client-da2db56.tar.gz -4a6b50b20e61a96e3d6448203a443d1d9b0c7d17 SOURCES/nbde_server-8110159.tar.gz -5a9597aa5142df3564dd3d85c3bebc1bb62f465d SOURCES/network-e0c7d55.tar.gz +77e952b62e634c69e36115845b4f24ee3bfe76b7 SOURCES/ansible-sshd-e1de59b3c54e9d48a010eeca73755df339c7e628.tar.gz +c354a1d24b522a356ef487cf8a3f357ab6213b41 SOURCES/auto-maintenance-e5ed203b2d7224c0bf0c3fd55452456c8f468cad.tar.gz +20590d1e4ed8df7578926b7aab79e8fa1344be73 SOURCES/certificate-50041ce55348fcce34aba4cbe3ea160c5d890ab3.tar.gz +513057251590e81b629a69a4ed704b0976b1bc44 SOURCES/crypto_policies-76b2d5b0460dba22c5d290c1af96e4fdb3434cb9.tar.gz +838ed06d8d092271fff04bd5e7c16db4661e8567 SOURCES/ha_cluster-779bb78559de58bb5a1f25a4b92039c373ef59a4.tar.gz +fa3d5daf6cf1ceeaa87f58c16e11153cf250e2fa SOURCES/kdump-77596fdd976c6160d6152c200a5432c609725a14.tar.gz +c81700b81d7acf48b9eadb1ed7a9bf04b994cdb1 SOURCES/kernel_settings-e5e5abb35fb695e22ccffa855c98ab882650480e.tar.gz +3c94b12780f01bbdb8b77fc3515ccef1200ec1f6 SOURCES/logging-4b07edf4e84882c9d0fb979092ba5953aac0b4d5.tar.gz +821d8ebef2d30a41f0fa65bdc5e550f09b375370 SOURCES/metrics-e81b2650108727f38b1c856699aad26af0f44a46.tar.gz +a59b3d28bf5da0abbb3e2e188b0b65b2a78cd500 SOURCES/nbde_client-3af7452e4861ee2363b29b23bf78bf11e06be142.tar.gz +c55d45d134042b00ece17f2a21bb945c571310b3 SOURCES/nbde_server-1.0.1.tar.gz +c2d1aaca43cbe787ee7b1e41e875a76b8f95831d SOURCES/network-bda206d45c87ee8c1a5284de84f5acf5e629de97.tar.gz 66c82331f4ac9598c506c3999965b4d07dbfe49d SOURCES/postfix-0.1.tar.gz -246383bd6823533ed3a51a0501b75e38ba852908 SOURCES/selinux-6cd1ec8.tar.gz -b1f2825eca9a9e06c48d1ec4841a1bf1e52abf7b SOURCES/storage-36c4803.tar.gz -ffd2a706e4e3007684aa9874c8457ad5c8920050 SOURCES/timesync-924650d.tar.gz -43783aa7130ae254e8d848ab1295556628d0b1ef SOURCES/tlog-2b3ffab.tar.gz +f2ad38bd93487962de511b1f4bc9dc6607a5ab36 SOURCES/selinux-1.1.1.tar.gz +b160fd539c99429a33c0d65c818ad0c98c5ca7a4 SOURCES/ssh-effa0a0d993832dee726290f263a2182cf3eacda.tar.gz +8b7d7c14e76aa1a872f22d5cd6d3c9a850868ed3 SOURCES/storage-485de47b0dc0787aea077ba448ecb954f53e40c4.tar.gz +ffd2a706e4e3007684aa9874c8457ad5c8920050 SOURCES/timesync-924650d0cd4117f73a7f0413ab745a8632bc5cec.tar.gz +486d7b845348755e7f189afd95f32bbe97c74661 SOURCES/tlog-1.1.0.tar.gz diff --git a/SOURCES/collection_readme.sh b/SOURCES/collection_readme.sh new file mode 100755 index 0000000..a229311 --- /dev/null +++ b/SOURCES/collection_readme.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -euxo pipefail + +readme_md=${1:-"lsr_role2collection/collection_readme.md"} + +sed -i -e '/## Currently supported distributions/{:1;/## Dependencies/!{N;b 1};s|.*|## Dependencies|}' \ + -e 's/\(Linux System Roles is a set of roles for managing Linux system components.\)/\1\n\nThis collection is available as a Technology Preview./' \ + -e 's/Linux/RHEL/g' \ + -e 's/Ansible Galaxy/Automation Hub/g' \ + -e 's/fedora\(.\)linux_system_roles/redhat\1rhel_system_roles/g' \ + -e 's/linux-system-roles/rhel-system-roles/g' \ + -e '/## Documentation/{:a;/## Support/!{N;b a};s|.*|## Documentation\nThe official RHEL System Roles documentation can be found in the [Product Documentation section of the Red Hat Customer Portal](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/administration_and_configuration_tasks_using_system_roles_in_rhel/index).\n\n## Support|}' \ + -e 's/ $//' \ + $readme_md diff --git a/SOURCES/kdump-fix-newline.diff b/SOURCES/kdump-fix-newline.diff new file mode 100644 index 0000000..52a1a7e --- /dev/null +++ b/SOURCES/kdump-fix-newline.diff @@ -0,0 +1,28 @@ +commit cafd95d0b03360d12e86170eb10fc1fc3dcade06 +Author: Pavel Cahyna +Date: Thu Jan 14 11:42:48 2021 +0100 + + Get rid of the extra final newline in string + + Use the `-` chomping indicator to indicate that the trailing newline is + not intended as a part of the string. + https://yaml.org/spec/1.1/#chomping/ + + The trailing newline was causing an actual problem in the test. + + Also use the `>` folded style, which is more appropriate here than the + `|` literal style. + +diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml +index 6d3699c..d3503f7 100644 +--- a/tests/tests_ssh.yml ++++ b/tests/tests_ssh.yml +@@ -27,7 +27,7 @@ + - include_role: + name: linux-system-roles.kdump + vars: +- kdump_ssh_user: | ++ kdump_ssh_user: >- + {{ hostvars[kdump_ssh_server_outside]['ansible_user_id'] }} + # This is the outside address. Ansible will connect to it to + # copy the ssh key. diff --git a/SOURCES/kdump-meta-el8.diff b/SOURCES/kdump-meta-el8.diff new file mode 100644 index 0000000..d8f2764 --- /dev/null +++ b/SOURCES/kdump-meta-el8.diff @@ -0,0 +1,13 @@ +diff --git a/meta/main.yml b/meta/main.yml +index 2478fa6..ad8f4c6 100644 +--- a/meta/main.yml ++++ b/meta/main.yml +@@ -7,6 +7,6 @@ galaxy_info: + min_ansible_version: 2.4 + platforms: + - name: Fedora +- versions: [ 27, 28 ] ++ versions: [ 31, 32 ] + - name: EL +- versions: [ 6, 7 ] ++ versions: [ 6, 7, 8 ] diff --git a/SOURCES/kdump-tier1-tags.diff b/SOURCES/kdump-tier1-tags.diff index 22c0684..f80af83 100644 --- a/SOURCES/kdump-tier1-tags.diff +++ b/SOURCES/kdump-tier1-tags.diff @@ -45,13 +45,13 @@ index 0000000..2035dfc + with_items: "{{ restore_services }}" + tags: tests::cleanup diff --git a/tests/tests_default.yml b/tests/tests_default.yml -index 4c93830..9e7743a 100644 +index af0b2a0..6ce5241 100644 --- a/tests/tests_default.yml +++ b/tests/tests_default.yml -@@ -4,3 +4,13 @@ +@@ -3,3 +3,13 @@ roles: - - kdump + - linux-system-roles.kdump + + pre_tasks: + - name: Import tasks @@ -63,7 +63,7 @@ index 4c93830..9e7743a 100644 +# tags: tests::tier1::cleanup + import_tasks: restore_services_state.yml diff --git a/tests/tests_default_wrapper.yml b/tests/tests_default_wrapper.yml -index 2763fbd..95b3886 100644 +index eba31a0..857aab8 100644 --- a/tests/tests_default_wrapper.yml +++ b/tests/tests_default_wrapper.yml @@ -1,6 +1,9 @@ @@ -92,12 +92,12 @@ index 2763fbd..95b3886 100644 + - 'tests::slow' tasks: - name: Run ansible-playbook with tests_default.yml in check mode - command: ansible-playbook -vvv -i {{ tempinventory.path }} --check tests_default.yml + command: > diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml -index 14a59d9..23bc7eb 100644 +index d12e884..6d3699c 100644 --- a/tests/tests_ssh.yml +++ b/tests/tests_ssh.yml -@@ -11,6 +11,13 @@ +@@ -10,6 +10,13 @@ # this is the address at which the ssh dump server can be reached # from the managed host. Dumps will be uploaded there. kdump_ssh_server_inside: "{{ kdump_ssh_source if kdump_ssh_source in hostvars[kdump_ssh_server_outside]['ansible_all_ipv4_addresses'] + hostvars[kdump_ssh_server_outside]['ansible_all_ipv6_addresses'] else hostvars[kdump_ssh_server_outside]['ansible_default_ipv4']['address'] }}" @@ -112,7 +112,7 @@ index 14a59d9..23bc7eb 100644 tasks: - name: gather facts from {{ kdump_ssh_server_outside }} diff --git a/tests/tests_ssh_wrapper.yml b/tests/tests_ssh_wrapper.yml -index 9a8ecfd..1a6db73 100644 +index 2203f3f..96a764e 100644 --- a/tests/tests_ssh_wrapper.yml +++ b/tests/tests_ssh_wrapper.yml @@ -1,6 +1,8 @@ @@ -139,4 +139,4 @@ index 9a8ecfd..1a6db73 100644 + - 'tests::multihost_localhost' tasks: - name: Run ansible-playbook with tests_ssh.yml in check mode - command: ansible-playbook -vvv -i {{ tempinventory.path }} --check tests_ssh.yml + command: | diff --git a/SOURCES/md2html.sh b/SOURCES/md2html.sh deleted file mode 100644 index f3da649..0000000 --- a/SOURCES/md2html.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -euxo pipefail - -for file in "$@"; do - pandoc -f markdown_github "${file}" -t asciidoc -o "${file%.md}.tmp.adoc" - touch -r "${file}" "${file%.md}.tmp.adoc" - TZ=UTC asciidoc -o "${file%.md}.html" -a footer-style=none -a toc2 -a source-highlighter=highlight "${file%.md}.tmp.adoc" - rm "${file%.md}.tmp.adoc" -done diff --git a/SOURCES/metrics-mssql-x86.diff b/SOURCES/metrics-mssql-x86.diff new file mode 100644 index 0000000..80bb0e5 --- /dev/null +++ b/SOURCES/metrics-mssql-x86.diff @@ -0,0 +1,24 @@ +From 7ff86f2fa05998afcd8ae87d9cdd660ef5b6ee2c Mon Sep 17 00:00:00 2001 +From: Jan Kurik +Date: Thu, 18 Feb 2021 17:09:48 +1100 +Subject: [PATCH] Update mssql test to exclude non-x86_64 architectures + +pcp-pmda-mssql (and SQL Server itself) are x86_64-only. +--- + tests/tests_sanity_mssql.yml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/tests/tests_sanity_mssql.yml b/tests/tests_sanity_mssql.yml +index 6f1e2cc..8602c36 100644 +--- a/tests/tests_sanity_mssql.yml ++++ b/tests/tests_sanity_mssql.yml +@@ -12,7 +12,8 @@ + - meta: end_host + when: (ansible_distribution in ['RedHat'] and + ( ansible_facts['distribution_version'] is version('8.4', '<'))) or +- ansible_distribution not in ['Fedora', 'RedHat'] ++ ansible_distribution not in ['Fedora', 'RedHat'] or ++ ansible_architecture not in ['x86_64'] + + - name: Save state of services + import_tasks: get_services_state.yml diff --git a/SOURCES/network-disable-bondtests.diff b/SOURCES/network-disable-bondtests.diff new file mode 100644 index 0000000..086edd4 --- /dev/null +++ b/SOURCES/network-disable-bondtests.diff @@ -0,0 +1,48 @@ +diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml +index d646a0b..8689d59 100644 +--- a/tests/playbooks/tests_bond_deprecated.yml ++++ b/tests/playbooks/tests_bond_deprecated.yml +@@ -8,6 +8,8 @@ + dhcp_interface1: test1 + slave2_profile: bond0.1 + dhcp_interface2: test2 ++ tags: ++ - "tests::expfail" + tasks: + - name: "INIT Prepare setup" + debug: +diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml +index 8fa74c5..6a231c4 100644 +--- a/tests/tests_bond_deprecated_initscripts.yml ++++ b/tests/tests_bond_deprecated_initscripts.yml +@@ -9,5 +9,6 @@ + network_provider: initscripts + tags: + - always ++ - "tests::expfail" + + - import_playbook: playbooks/tests_bond_deprecated.yml +diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml +index d646a0b..8689d59 100644 +--- a/tests/playbooks/tests_bond.yml ++++ b/tests/playbooks/tests_bond.yml +@@ -13,6 +13,8 @@ + dhcp_interface1: test1 + port2_profile: bond0.1 + dhcp_interface2: test2 ++ tags: ++ - "tests::expfail" + tasks: + - name: "INIT Prepare setup" + debug: +diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml +index 8fa74c5..6a231c4 100644 +--- a/tests/tests_bond_initscripts.yml ++++ b/tests/tests_bond_initscripts.yml +@@ -9,5 +9,6 @@ + network_provider: initscripts + tags: + - always ++ - "tests::expfail" + + - import_playbook: playbooks/tests_bond.yml diff --git a/SOURCES/network-epel-minimal.diff b/SOURCES/network-epel-minimal.diff new file mode 100644 index 0000000..af8b0ef --- /dev/null +++ b/SOURCES/network-epel-minimal.diff @@ -0,0 +1,401 @@ +diff --git a/tests/playbooks/integration_pytest_python3.yml b/tests/playbooks/integration_pytest_python3.yml +index 075355b..5fc9dea 100644 +--- a/tests/playbooks/integration_pytest_python3.yml ++++ b/tests/playbooks/integration_pytest_python3.yml +@@ -9,6 +9,11 @@ + - rsync + + tasks: ++ - name: Install EPEL for RHEL and CentOS ++ # yamllint disable-line rule:line-length ++ command: "yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm" ++ when: ansible_distribution in ["CentOS", "RedHat"] ++ + - name: Install rpm dependencies + package: + state: present +diff --git a/tests/tasks/el_repo_setup.yml b/tests/tasks/el_repo_setup.yml +deleted file mode 100644 +index 0656e8c..0000000 +--- a/tests/tasks/el_repo_setup.yml ++++ /dev/null +@@ -1,26 +0,0 @@ +-# SPDX-License-Identifier: BSD-3-Clause +-- name: Fix CentOS6 Base repo +- copy: +- dest: /etc/yum.repos.d/CentOS-Base.repo +- content: | +- [base] +- name=CentOS-$releasever - Base +- baseurl=https://vault.centos.org/6.10/os/$basearch/ +- gpgcheck=1 +- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 +- +- [updates] +- name=CentOS-$releasever - Updates +- baseurl=https://vault.centos.org/6.10/updates/$basearch/ +- gpgcheck=1 +- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 +- +- [extras] +- name=CentOS-$releasever - Extras +- baseurl=https://vault.centos.org/6.10/extras/$basearch/ +- gpgcheck=1 +- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 +- when: +- - ansible_distribution == 'CentOS' +- - ansible_distribution_major_version == '6' +-- include_tasks: enable_epel.yml +diff --git a/tests/tasks/setup_802_1x_server.yml b/tests/tasks/setup_802_1x_server.yml +index 49d1ce1..3bf16a9 100644 +--- a/tests/tasks/setup_802_1x_server.yml ++++ b/tests/tasks/setup_802_1x_server.yml +@@ -1,5 +1,7 @@ + # SPDX-License-Identifier: BSD-3-Clause + --- ++- include_tasks: enable_epel.yml ++ + - name: Install hostapd + package: + name: hostapd +diff --git a/tests/tasks/setup_mock_wifi.yml b/tests/tasks/setup_mock_wifi.yml +index 997b704..d7a1e22 100644 +--- a/tests/tasks/setup_mock_wifi.yml ++++ b/tests/tasks/setup_mock_wifi.yml +@@ -1,5 +1,7 @@ + # SPDX-License-Identifier: BSD-3-Clause + --- ++- include_tasks: enable_epel.yml ++ + - name: Install packages required to set up mock wifi network + package: + name: +diff --git a/tests/tests_802_1x_nm.yml b/tests/tests_802_1x_nm.yml +index a27d8ea..288cd5d 100644 +--- a/tests/tests_802_1x_nm.yml ++++ b/tests/tests_802_1x_nm.yml +@@ -5,7 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_802_1x.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_802_1x_updated_nm.yml b/tests/tests_802_1x_updated_nm.yml +index 5a25f5b..bd335e4 100644 +--- a/tests/tests_802_1x_updated_nm.yml ++++ b/tests/tests_802_1x_updated_nm.yml +@@ -5,7 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_802_1x_updated.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_bond_deprecated_initscripts.yml b/tests/tests_bond_deprecated_initscripts.yml +index 1e74bcc..383b488 100644 +--- a/tests/tests_bond_deprecated_initscripts.yml ++++ b/tests/tests_bond_deprecated_initscripts.yml +@@ -4,7 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_bond_deprecated.yml' with initscripts + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml +index 32fcc32..8fa74c5 100644 +--- a/tests/tests_bond_initscripts.yml ++++ b/tests/tests_bond_initscripts.yml +@@ -4,7 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_bond.yml' with initscripts as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_bond_nm.yml b/tests/tests_bond_nm.yml +index 7075d95..8ac6cbd 100644 +--- a/tests/tests_bond_nm.yml ++++ b/tests/tests_bond_nm.yml +@@ -5,7 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_bond.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_bridge_initscripts.yml b/tests/tests_bridge_initscripts.yml +index 8ce42e6..db5663c 100644 +--- a/tests/tests_bridge_initscripts.yml ++++ b/tests/tests_bridge_initscripts.yml +@@ -4,7 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_bridge.yml' with initscripts as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_bridge_nm.yml b/tests/tests_bridge_nm.yml +index 3d1b53a..c565952 100644 +--- a/tests/tests_bridge_nm.yml ++++ b/tests/tests_bridge_nm.yml +@@ -5,7 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_bridge.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_default.yml b/tests/tests_default.yml +index e196314..f6f7550 100644 +--- a/tests/tests_default.yml ++++ b/tests/tests_default.yml +@@ -5,7 +5,6 @@ + roles: + - linux-system-roles.network + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Test warning and info logs + assert: + that: +diff --git a/tests/tests_default_initscripts.yml b/tests/tests_default_initscripts.yml +index 006889c..cc8b875 100644 +--- a/tests/tests_default_initscripts.yml ++++ b/tests/tests_default_initscripts.yml +@@ -2,7 +2,6 @@ + --- + - hosts: all + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_default_nm.yml b/tests/tests_default_nm.yml +index 54bc3e1..8138ca9 100644 +--- a/tests/tests_default_nm.yml ++++ b/tests/tests_default_nm.yml +@@ -2,7 +2,6 @@ + --- + - hosts: all + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_ethernet_initscripts.yml b/tests/tests_ethernet_initscripts.yml +index 366b052..62e75fe 100644 +--- a/tests/tests_ethernet_initscripts.yml ++++ b/tests/tests_ethernet_initscripts.yml +@@ -4,8 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_ethernet.yml' with initscripts as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_ethernet_nm.yml b/tests/tests_ethernet_nm.yml +index 238172d..ecefa14 100644 +--- a/tests/tests_ethernet_nm.yml ++++ b/tests/tests_ethernet_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_ethernet.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_ethtool_features_initscripts.yml b/tests/tests_ethtool_features_initscripts.yml +index 5bac5d3..6aea73b 100644 +--- a/tests/tests_ethtool_features_initscripts.yml ++++ b/tests/tests_ethtool_features_initscripts.yml +@@ -2,7 +2,6 @@ + # set network provider and gather facts + - hosts: all + tasks: +- - include_tasks: tasks/el_repo_setup.yml + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_ethtool_features_nm.yml b/tests/tests_ethtool_features_nm.yml +index 2027862..30c6faa 100644 +--- a/tests/tests_ethtool_features_nm.yml ++++ b/tests/tests_ethtool_features_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_ethtool_features.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_helpers_and_asserts.yml b/tests/tests_helpers_and_asserts.yml +index 64e2875..5514182 100644 +--- a/tests/tests_helpers_and_asserts.yml ++++ b/tests/tests_helpers_and_asserts.yml +@@ -3,8 +3,6 @@ + - name: Check that creating and removing test devices and assertions work + hosts: all + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: test veth interface management + include_tasks: tasks/create_and_remove_interface.yml + vars: +diff --git a/tests/tests_integration_pytest.yml b/tests/tests_integration_pytest.yml +index 9b80bd4..153214d 100644 +--- a/tests/tests_integration_pytest.yml ++++ b/tests/tests_integration_pytest.yml +@@ -1,8 +1,7 @@ + # SPDX-License-Identifier: BSD-3-Clause + --- +-- hosts: all +- tasks: +- - include_tasks: tasks/el_repo_setup.yml ++- name: Empty play to gather facts ++ hosts: all + + - import_playbook: playbooks/integration_pytest_python3.yml + when: (ansible_distribution in ["CentOS", "RedHat"] and +diff --git a/tests/tests_provider_nm.yml b/tests/tests_provider_nm.yml +index 67fcffe..99306a1 100644 +--- a/tests/tests_provider_nm.yml ++++ b/tests/tests_provider_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_provider.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_reapply_nm.yml b/tests/tests_reapply_nm.yml +index eb48ddb..69fb208 100644 +--- a/tests/tests_reapply_nm.yml ++++ b/tests/tests_reapply_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_reapply.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_regression_nm.yml b/tests/tests_regression_nm.yml +index b2c46e9..9eb8084 100644 +--- a/tests/tests_regression_nm.yml ++++ b/tests/tests_regression_nm.yml +@@ -3,8 +3,6 @@ + # set network provider and gather facts + - hosts: all + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_states_initscripts.yml b/tests/tests_states_initscripts.yml +index fa94103..3e55a43 100644 +--- a/tests/tests_states_initscripts.yml ++++ b/tests/tests_states_initscripts.yml +@@ -4,8 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_states.yml' with initscripts as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_states_nm.yml b/tests/tests_states_nm.yml +index 34c8a24..3164a3a 100644 +--- a/tests/tests_states_nm.yml ++++ b/tests/tests_states_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_states.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_team_nm.yml b/tests/tests_team_nm.yml +index 8048029..0516765 100644 +--- a/tests/tests_team_nm.yml ++++ b/tests/tests_team_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_team.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_unit.yml b/tests/tests_unit.yml +index 44dfaec..8c5388b 100644 +--- a/tests/tests_unit.yml ++++ b/tests/tests_unit.yml +@@ -3,7 +3,7 @@ + - hosts: all + name: Setup for test running + tasks: +- - include_tasks: tasks/el_repo_setup.yml ++ - include_tasks: tasks/enable_epel.yml + + - name: Install dependencies + package: +diff --git a/tests/tests_vlan_mtu_initscripts.yml b/tests/tests_vlan_mtu_initscripts.yml +index dcd5d74..37770a9 100644 +--- a/tests/tests_vlan_mtu_initscripts.yml ++++ b/tests/tests_vlan_mtu_initscripts.yml +@@ -4,8 +4,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_vlan_mtu.yml' with initscripts as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'initscripts' + set_fact: + network_provider: initscripts +diff --git a/tests/tests_vlan_mtu_nm.yml b/tests/tests_vlan_mtu_nm.yml +index c38263c..f201de3 100644 +--- a/tests/tests_vlan_mtu_nm.yml ++++ b/tests/tests_vlan_mtu_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_vlan_mtu.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm +diff --git a/tests/tests_wireless_nm.yml b/tests/tests_wireless_nm.yml +index 03b5ad6..86baf67 100644 +--- a/tests/tests_wireless_nm.yml ++++ b/tests/tests_wireless_nm.yml +@@ -5,8 +5,6 @@ + - hosts: all + name: Run playbook 'playbooks/tests_wireless.yml' with nm as provider + tasks: +- - include_tasks: tasks/el_repo_setup.yml +- + - name: Set network provider to 'nm' + set_fact: + network_provider: nm diff --git a/SOURCES/network-nm-reload-profile.diff b/SOURCES/network-nm-reload-profile.diff deleted file mode 100644 index 8920653..0000000 --- a/SOURCES/network-nm-reload-profile.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/tests/playbooks/tests_ethtool_features.yml b/tests/playbooks/tests_ethtool_features.yml -index 9b51cab..57c48bd 100644 ---- a/tests/playbooks/tests_ethtool_features.yml -+++ b/tests/playbooks/tests_ethtool_features.yml -@@ -186,6 +186,9 @@ - - include_tasks: tasks/manage_test_interface.yml - vars: - state: absent -+ - name: Reload NetworkManager config -+ command: nmcli connection reload -+ ignore_errors: true - tags: - - "tests::cleanup" - diff --git a/SOURCES/network-tier1-tags.diff b/SOURCES/network-tier1-tags.diff index 582c071..1c4cb67 100644 --- a/SOURCES/network-tier1-tags.diff +++ b/SOURCES/network-tier1-tags.diff @@ -22,6 +22,30 @@ index 9cce1ae..76d99e9 100644 + hosts: all + tasks: + - import_tasks: tasks/restore_state.yml +diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml +index 69f07f8..1e45788 100644 +--- a/tests/playbooks/tests_bond.yml ++++ b/tests/playbooks/tests_bond.yml +@@ -1,5 +1,10 @@ + # SPDX-License-Identifier: BSD-3-Clause + --- ++- name: Save host state ++ hosts: all ++ tasks: ++ - import_tasks: tasks/save_state.yml ++ + - hosts: all + vars: + controller_profile: bond0 +@@ -95,3 +100,8 @@ + - import_tasks: tasks/remove_test_interfaces_with_dhcp.yml + tags: + - "tests::cleanup" ++ ++- name: Restore host state ++ hosts: all ++ tasks: ++ - import_tasks: tasks/restore_state.yml diff --git a/tests/playbooks/tests_bridge.yml b/tests/playbooks/tests_bridge.yml index d79d6ad..c8cf3cd 100644 --- a/tests/playbooks/tests_bridge.yml @@ -172,7 +196,7 @@ index cd02579..adcffee 100644 + tasks: + - import_tasks: tasks/restore_state.yml diff --git a/tests/playbooks/tests_ethtool_features.yml b/tests/playbooks/tests_ethtool_features.yml -index 76b0f8a..9b51cab 100644 +index 43fddc3..d1a87fe 100644 --- a/tests/playbooks/tests_ethtool_features.yml +++ b/tests/playbooks/tests_ethtool_features.yml @@ -1,5 +1,10 @@ @@ -185,8 +209,8 @@ index 76b0f8a..9b51cab 100644 + - hosts: all vars: - interface: lsrfeat1 -@@ -183,3 +188,8 @@ + interface: testnic1 +@@ -198,3 +203,8 @@ state: absent tags: - "tests::cleanup" @@ -195,6 +219,30 @@ index 76b0f8a..9b51cab 100644 + hosts: all + tasks: + - import_tasks: tasks/restore_state.yml +diff --git a/tests/playbooks/tests_provider.yml b/tests/playbooks/tests_provider.yml +index 1db2d08..e097b4b 100644 +--- a/tests/playbooks/tests_provider.yml ++++ b/tests/playbooks/tests_provider.yml +@@ -1,5 +1,10 @@ + # SPDX-License-Identifier: BSD-3-Clause + --- ++- name: Save host state ++ hosts: all ++ tasks: ++ - import_tasks: tasks/save_state.yml ++ + - hosts: all + vars: + interface: testnic1 +@@ -33,3 +38,8 @@ + - tasks/cleanup_profile+device.yml + tags: + - tests::provider:initscripts_to_nm ++ ++- name: Restore host state ++ hosts: all ++ tasks: ++ - import_tasks: tasks/restore_state.yml diff --git a/tests/playbooks/tests_reapply.yml b/tests/playbooks/tests_reapply.yml index 4b1cb09..6995607 100644 --- a/tests/playbooks/tests_reapply.yml @@ -221,10 +269,10 @@ index 4b1cb09..6995607 100644 + tasks: + - import_tasks: tasks/restore_state.yml diff --git a/tests/playbooks/tests_states.yml b/tests/playbooks/tests_states.yml -index 5926ad0..e936d4e 100644 +index eec27c0..a8d0ecd 100644 --- a/tests/playbooks/tests_states.yml +++ b/tests/playbooks/tests_states.yml -@@ -135,3 +135,18 @@ +@@ -135,3 +135,23 @@ - tasks/cleanup_profile+device.yml tags: - tests::states:remove_down_twice @@ -234,12 +282,17 @@ index 5926ad0..e936d4e 100644 + import_tasks: tasks/save_state.yml + + post_tasks: -+ - name: Remove test bridge in case it is still lingering -+ command: 'ip link delete "{{ interface }}"' ++ - name: Remove test profile + tags: + - 'tests::cleanup' + - 'tests::net::bridge::cleanup' -+ ignore_errors: yes ++ import_role: ++ name: linux-system-roles.network ++ vars: ++ network_connections: ++ - name: statebr ++ state: down ++ persistent_state: absent + + - name: Restore host state + import_tasks: tasks/restore_state.yml @@ -404,7 +457,7 @@ index 0000000..5690aed + register: etc_sysconfig_network_stat + ignore_errors: yes diff --git a/tests/tests_802_1x_nm.yml b/tests/tests_802_1x_nm.yml -index 3bd0719..77cf2d9 100644 +index 288cd5d..840958d 100644 --- a/tests/tests_802_1x_nm.yml +++ b/tests/tests_802_1x_nm.yml @@ -4,6 +4,8 @@ @@ -416,14 +469,14 @@ index 3bd0719..77cf2d9 100644 tasks: - name: Set network provider to 'nm' set_fact: -@@ -21,3 +23,5 @@ +@@ -17,3 +19,5 @@ - import_playbook: playbooks/tests_802_1x.yml when: - ansible_distribution_major_version != '6' + tags: + - tests::expfail diff --git a/tests/tests_802_1x_updated_nm.yml b/tests/tests_802_1x_updated_nm.yml -index 0d4c741..ca666a6 100644 +index bd335e4..4ebcaf9 100644 --- a/tests/tests_802_1x_updated_nm.yml +++ b/tests/tests_802_1x_updated_nm.yml @@ -4,6 +4,8 @@ @@ -435,7 +488,7 @@ index 0d4c741..ca666a6 100644 tasks: - name: Set network provider to 'nm' set_fact: -@@ -21,3 +23,5 @@ +@@ -17,3 +19,5 @@ - import_playbook: playbooks/tests_802_1x_updated.yml when: - ansible_distribution_major_version != '6' diff --git a/SOURCES/postfix-meta-el8.diff b/SOURCES/postfix-meta-el8.diff new file mode 100644 index 0000000..41cb91b --- /dev/null +++ b/SOURCES/postfix-meta-el8.diff @@ -0,0 +1,16 @@ +diff --git a/meta/main.yml b/meta/main.yml +index a0ef6f4..da22270 100644 +--- a/meta/main.yml ++++ b/meta/main.yml +@@ -7,8 +7,8 @@ galaxy_info: + min_ansible_version: 2.2 + platforms: + - name: Fedora +- versions: [ 24, 25 ] ++ versions: [ 31, 32 ] + - name: EL +- versions: [ 6, 7 ] ++ versions: [ 6, 7, 8 ] + + + diff --git a/SOURCES/rhel-system-roles-kdump-pr22.diff b/SOURCES/rhel-system-roles-kdump-pr22.diff index d7d2796..342eddc 100644 --- a/SOURCES/rhel-system-roles-kdump-pr22.diff +++ b/SOURCES/rhel-system-roles-kdump-pr22.diff @@ -44,10 +44,10 @@ index bf24210..504ff34 100644 path {{ kdump_path }} {% if kdump_core_collector %} diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml -index 679148e..14a59d9 100644 +index 1da99df..d12e884 100644 --- a/tests/tests_ssh.yml +++ b/tests/tests_ssh.yml -@@ -6,6 +6,11 @@ +@@ -5,6 +5,11 @@ # known and ansible is supposed to be configured to be able to # connect to it (via inventory). kdump_ssh_server_outside: localhost diff --git a/SOURCES/rhel-system-roles-network-prefix.diff b/SOURCES/rhel-system-roles-network-prefix.diff deleted file mode 100644 index f729eee..0000000 --- a/SOURCES/rhel-system-roles-network-prefix.diff +++ /dev/null @@ -1,148 +0,0 @@ -diff --git a/examples/bond_simple.yml b/examples/bond_simple.yml -index 4ca9811..f6f5897 100644 ---- a/examples/bond_simple.yml -+++ b/examples/bond_simple.yml -@@ -32,5 +32,5 @@ - interface_name: eth2 - master: bond0 - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network - ... -diff --git a/examples/bond_with_vlan.yml b/examples/bond_with_vlan.yml -index 2e6be23..3b7a6dc 100644 ---- a/examples/bond_with_vlan.yml -+++ b/examples/bond_with_vlan.yml -@@ -35,4 +35,4 @@ - - "192.0.2.{{ network_iphost }}/24" - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/bridge_with_vlan.yml b/examples/bridge_with_vlan.yml -index 037ff8e..83c586d 100644 ---- a/examples/bridge_with_vlan.yml -+++ b/examples/bridge_with_vlan.yml -@@ -33,4 +33,4 @@ - - "192.0.2.{{ network_iphost }}/24" - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/eth_simple_auto.yml b/examples/eth_simple_auto.yml -index 0ba168a..e4c4a54 100644 ---- a/examples/eth_simple_auto.yml -+++ b/examples/eth_simple_auto.yml -@@ -15,4 +15,4 @@ - mtu: 1450 - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/eth_with_802_1x.yml b/examples/eth_with_802_1x.yml -index 92a93a9..7731b7d 100644 ---- a/examples/eth_with_802_1x.yml -+++ b/examples/eth_with_802_1x.yml -@@ -27,4 +27,4 @@ - - client.pem - - cacert.pem - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/eth_with_vlan.yml b/examples/eth_with_vlan.yml -index 69da673..e0c2f11 100644 ---- a/examples/eth_with_vlan.yml -+++ b/examples/eth_with_vlan.yml -@@ -26,4 +26,4 @@ - - "192.0.2.{{ network_iphost }}/24" - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/ethtool_features.yml b/examples/ethtool_features.yml -index c580f89..0881316 100644 ---- a/examples/ethtool_features.yml -+++ b/examples/ethtool_features.yml -@@ -3,7 +3,7 @@ - - hosts: all - tasks: - - include_role: -- name: linux-system-roles.network -+ name: rhel-system-roles.network - vars: - network_connections: - - name: "{{ network_interface_name1 }}" -diff --git a/examples/ethtool_features_default.yml b/examples/ethtool_features_default.yml -index 78965e6..3cdd731 100644 ---- a/examples/ethtool_features_default.yml -+++ b/examples/ethtool_features_default.yml -@@ -3,7 +3,7 @@ - - hosts: all - tasks: - - include_role: -- name: linux-system-roles.network -+ name: rhel-system-roles.network - vars: - network_connections: - - name: "{{ network_interface_name1 }}" -diff --git a/examples/infiniband.yml b/examples/infiniband.yml -index 22603d9..9e7e267 100644 ---- a/examples/infiniband.yml -+++ b/examples/infiniband.yml -@@ -23,4 +23,4 @@ - - 198.51.100.133/30 - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/macvlan.yml b/examples/macvlan.yml -index 90cd09d..0064ad4 100644 ---- a/examples/macvlan.yml -+++ b/examples/macvlan.yml -@@ -26,4 +26,4 @@ - - 192.168.1.1/24 - - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/examples/remove+down_profile.yml b/examples/remove+down_profile.yml -index da2b1b8..f2d93e8 100644 ---- a/examples/remove+down_profile.yml -+++ b/examples/remove+down_profile.yml -@@ -8,5 +8,5 @@ - persistent_state: absent - state: down - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network - ... -diff --git a/examples/wireless_wpa_psk.yml b/examples/wireless_wpa_psk.yml -index eeec22f..60b0d83 100644 ---- a/examples/wireless_wpa_psk.yml -+++ b/examples/wireless_wpa_psk.yml -@@ -12,4 +12,4 @@ - # see https://docs.ansible.com/ansible/latest/user_guide/vault.html - password: "p@55w0rD" - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/tests/playbooks/down_profile.yml b/tests/playbooks/down_profile.yml -index 5087240..65e542d 100644 ---- a/tests/playbooks/down_profile.yml -+++ b/tests/playbooks/down_profile.yml -@@ -7,4 +7,4 @@ - - name: "{{ profile }}" - state: down - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network -diff --git a/tests/playbooks/remove_profile.yml b/tests/playbooks/remove_profile.yml -index a50e848..b6e6796 100644 ---- a/tests/playbooks/remove_profile.yml -+++ b/tests/playbooks/remove_profile.yml -@@ -7,4 +7,4 @@ - - name: "{{ profile }}" - persistent_state: absent - roles: -- - linux-system-roles.network -+ - rhel-system-roles.network diff --git a/SOURCES/rhel-system-roles-postfix-prefix.diff b/SOURCES/rhel-system-roles-postfix-prefix.diff deleted file mode 100644 index 65ab2a1..0000000 --- a/SOURCES/rhel-system-roles-postfix-prefix.diff +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/README.md b/README.md -index 5950215..a59d72f 100644 ---- a/README.md -+++ b/README.md -@@ -25,7 +25,7 @@ Install and enable postfix. Configure "relay_domains=$mydestination" and - relay_domains: "$mydestination" - relay_host: "example.com" - roles: -- - postfix -+ - linux-system-roles.postfix - ``` - - Install and enable postfix. Do not run 'postfix check' before restarting -@@ -37,7 +37,7 @@ postfix: - vars: - postfix_check: false - roles: -- - postfix -+ - linux-system-roles.postfix - ``` - - Install and enable postfix. Do single backup of main.cf (older backup will be -@@ -51,7 +51,7 @@ rewritten) and configure "relay_host=example.com": - relay_host: "example.com" - postfix_backup: true - roles: -- - postfix -+ - linux-system-roles.postfix - ``` - - Install and enable postfix. Do timestamped backup of main.cf and -@@ -66,7 +66,7 @@ set to true postfix_backup is ignored): - relay_host: "example.com" - postfix_backup_multiple: true - roles: -- - postfix -+ - linux-system-roles.postfix - ``` - - diff --git a/SOURCES/rhel-system-roles-selinux-prefix.diff b/SOURCES/rhel-system-roles-selinux-prefix.diff deleted file mode 100644 index 7e80daa..0000000 --- a/SOURCES/rhel-system-roles-selinux-prefix.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/README.md b/README.md -index a0385b0..6efc62d 100644 ---- a/README.md -+++ b/README.md -@@ -42,7 +42,7 @@ This role can be configured using variab - vars: - [ see below ] - roles: -- - role: linux-system-roles.selinux -+ - role: rhel-system-roles.selinux - become: true - ``` - -diff --git a/selinux-playbook.yml b/selinux-playbook.yml -index 78d3953..b2348d5 100644 ---- a/selinux-playbook.yml -+++ b/selinux-playbook.yml -@@ -31,7 +31,7 @@ - - name: execute the role and catch errors - block: - - include_role: -- name: linux-system-roles.selinux -+ name: rhel-system-roles.selinux - rescue: - # Fail if failed for a different reason than selinux_reboot_required. - - name: handle errors -@@ -52,4 +52,4 @@ - - - name: reapply the role - include_role: -- name: linux-system-roles.selinux -+ name: rhel-system-roles.selinux diff --git a/SOURCES/rhel-system-roles-storage-prefix.diff b/SOURCES/rhel-system-roles-storage-prefix.diff deleted file mode 100644 index 8bd9ea1..0000000 --- a/SOURCES/rhel-system-roles-storage-prefix.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/README.md b/README.md -index c2debc9..d9e40b3 100644 ---- a/README.md -+++ b/README.md -@@ -81,7 +81,7 @@ Example Playbook - - hosts: all - - roles: -- - name: linux-system-roles.storage -+ - name: rhel-system-roles.storage - storage_pools: - - name: app - disks: diff --git a/SOURCES/rhel-system-roles-timesync-prefix.diff b/SOURCES/rhel-system-roles-timesync-prefix.diff deleted file mode 100644 index 6fe1889..0000000 --- a/SOURCES/rhel-system-roles-timesync-prefix.diff +++ /dev/null @@ -1,46 +0,0 @@ -diff -up timesync-1.0.0/README.md.orig timesync-1.0.0/README.md ---- timesync-1.0.0/README.md.orig 2018-08-21 11:46:41.000000000 +0200 -+++ timesync-1.0.0/README.md 2018-11-06 22:29:14.586770442 +0100 -@@ -82,7 +82,7 @@ Install and configure ntp to synchronize - - hostname: baz.example.com - iburst: yes - roles: -- - linux-system-roles.timesync -+ - rhel-system-roles.timesync - ``` - - Install and configure linuxptp to synchronize the system clock with a -@@ -95,7 +95,7 @@ grandmaster in PTP domain number 0, whic - - number: 0 - interfaces: [ eth0 ] - roles: -- - linux-system-roles.timesync -+ - rhel-system-roles.timesync - ``` - - Install and configure chrony and linuxptp to synchronize the system clock with -@@ -122,5 +122,5 @@ synchronization: - transport: UDPv4 - delay: 0.000010 - roles: -- - linux-system-roles.timesync -+ - rhel-system-roles.timesync - ``` -diff -up timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/multiple-ntp-servers.yml.orig timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/multiple-ntp-servers.yml ---- timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/multiple-ntp-servers.yml.orig 2019-06-03 18:03:18.081868584 +0200 -+++ timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/multiple-ntp-servers.yml 2019-06-03 18:03:26.718704991 +0200 -@@ -11,4 +11,4 @@ - - hostname: 3.pool.ntp.org - iburst: yes - roles: -- - linux-system-roles.timesync -+ - rhel-system-roles.timesync -diff -up timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/single-pool.yml.orig timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/single-pool.yml ---- timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/single-pool.yml.orig 2019-06-03 16:36:40.000000000 +0200 -+++ timesync-85b90feedee2a5b3148fd3f72b229b44ec597682/examples/single-pool.yml 2019-06-03 18:03:36.721515519 +0200 -@@ -6,4 +6,4 @@ - pool: yes - iburst: yes - roles: -- - linux-system-roles.timesync -+ - rhel-system-roles.timesync diff --git a/SOURCES/selinux-bz-1926947-no-variable-named-present.diff b/SOURCES/selinux-bz-1926947-no-variable-named-present.diff new file mode 100644 index 0000000..f9bdf2e --- /dev/null +++ b/SOURCES/selinux-bz-1926947-no-variable-named-present.diff @@ -0,0 +1,34 @@ +From 035a9b2db26af071a95e02a0af08bcbb73b69abf Mon Sep 17 00:00:00 2001 +From: Florian Bachmann +Date: Fri, 5 Feb 2021 11:48:53 +0100 +Subject: [PATCH] fix incorrect default value (there is no variable named + "present") + +--- + tasks/main.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tasks/main.yml b/tasks/main.yml +index afbe81f..702e369 100644 +--- a/tasks/main.yml ++++ b/tasks/main.yml +@@ -118,7 +118,7 @@ + ports: "{{ item.ports }}" + proto: "{{ item.proto | default('tcp') }}" + setype: "{{ item.setype }}" +- state: "{{ item.state | default(present) }}" ++ state: "{{ item.state | default('present') }}" + with_items: "{{ selinux_ports }}" + + - name: Set linux user to SELinux user mapping +@@ -126,6 +126,6 @@ + login: "{{ item.login }}" + seuser: "{{ item.seuser }}" + serange: "{{ item.serange | default('s0') }}" +- state: "{{ item.state | default(present) }}" ++ state: "{{ item.state | default('present') }}" + reload: "{{ item.reload | default(False) }}" + with_items: "{{ selinux_logins }}" +-- +2.29.2 + diff --git a/SOURCES/selinux-tier1-tags.diff b/SOURCES/selinux-tier1-tags.diff index d0c785c..c2c4abd 100644 --- a/SOURCES/selinux-tier1-tags.diff +++ b/SOURCES/selinux-tier1-tags.diff @@ -16,10 +16,18 @@ index f294101..7571066 100644 command: /usr/sbin/semanage boolean -l -n -C register: selinux_role_boolean diff --git a/tests/tests_all_purge.yml b/tests/tests_all_purge.yml -index 03dfe05..c686837 100644 +index 03dfe05..6775847 100644 --- a/tests/tests_all_purge.yml +++ b/tests/tests_all_purge.yml -@@ -14,7 +14,9 @@ +@@ -8,13 +8,17 @@ + fcontext -a -t user_home_dir_t /tmp/test_dir + login -a -s staff_u sar-user + ++ tags: ++ - 'tests::avc' + tasks: + - name: Install SELinux tool semanage on Fedora + package: name: - policycoreutils-python-utils state: present @@ -47,8 +55,7 @@ diff --git a/tests/tests_boolean.yml b/tests/tests_boolean.yml index 47eafc0..2aa0025 100644 --- a/tests/tests_boolean.yml +++ b/tests/tests_boolean.yml -@@ -1,5 +1,6 @@ - +@@ -1,4 +1,5 @@ - name: Check if selinux role sets SELinux booleans + tags: tests::expfail hosts: all @@ -80,10 +87,9 @@ diff --git a/tests/tests_login.yml b/tests/tests_login.yml index efa826d..c7ce462 100644 --- a/tests/tests_login.yml +++ b/tests/tests_login.yml -@@ -18,7 +18,7 @@ +@@ -18,6 +18,6 @@ - { login: 'sar-user', seuser: 'staff_u', serange: 's0-s0:c0.c1023', state: 'present' } - - - include: set_selinux_variables.yml + - import_tasks: set_selinux_variables.yml - name: save state after initial changes and before other changes @@ -103,10 +109,18 @@ index 446f79d..7bb112e 100644 set_fact: port_after: "{{ selinux_role_port.stdout }}" diff --git a/tests/tests_selinux_disabled.yml b/tests/tests_selinux_disabled.yml -index afd23e4..706882f 100644 +index afd23e4..883dc6d 100644 --- a/tests/tests_selinux_disabled.yml +++ b/tests/tests_selinux_disabled.yml -@@ -18,7 +18,9 @@ +@@ -12,13 +12,17 @@ + fcontext -a -t user_home_dir_t /tmp/test_dir + login -a -s staff_u sar-user + ++ tags: ++ - 'tests::avc' + tasks: + - name: Install SELinux tool semanage on Fedora + package: name: - policycoreutils-python-utils state: present @@ -157,6 +171,6 @@ index afd23e4..706882f 100644 + state: absent + + - import_role: -+ name: selinux ++ name: linux-system-roles.selinux + vars: + selinux_all_purge: true diff --git a/SOURCES/sshd-example.diff b/SOURCES/sshd-example.diff new file mode 100644 index 0000000..48243e3 --- /dev/null +++ b/SOURCES/sshd-example.diff @@ -0,0 +1,43 @@ +diff --git a/README.md b/README.md +index 676ad72..dc06d85 100644 +--- a/README.md ++++ b/README.md +@@ -190,7 +190,7 @@ defaults. This is useful if the role is used in deployment stage to make sure + the service is able to start on the first attempt. To disable this check, set + this to empty list. + +-* `sshd_hostkey_owner`, `sshd_hostkey_group`, `sshd_hostkey_group` ++* `sshd_hostkey_owner`, `sshd_hostkey_group`, `sshd_hostkey_mode` + + Use these variables to set the ownership and permissions for the host keys from + the above list. +@@ -273,6 +273,8 @@ for example: + X11Forwarding: yes + ``` + ++More example playbooks can be found in [`examples/`](examples/) directory. ++ + Template Generation + ------------------- + +diff --git a/examples/example-root-login.yml b/examples/example-root-login.yml +new file mode 100644 +index 0000000..156e629 +--- /dev/null ++++ b/examples/example-root-login.yml +@@ -0,0 +1,15 @@ ++--- ++- hosts: all ++ tasks: ++ - name: Configure sshd to prevent root and password login except from particular subnet ++ include_role: ++ name: ansible-sshd ++ vars: ++ sshd: ++ # root login and password login is enabled only from a particular subnet ++ PermitRootLogin: no ++ PasswordAuthentication: no ++ Match: ++ - Condition: "Address 192.0.2.0/24" ++ PermitRootLogin: yes ++ PasswordAuthentication: yes diff --git a/SOURCES/sshd-work-on-ansible28-jinja27.diff b/SOURCES/sshd-work-on-ansible28-jinja27.diff new file mode 100644 index 0000000..268d31f --- /dev/null +++ b/SOURCES/sshd-work-on-ansible28-jinja27.diff @@ -0,0 +1,25 @@ +From bb612fb6c5f76a40fce368acb43d2847e699213d Mon Sep 17 00:00:00 2001 +From: Rich Megginson +Date: Thu, 28 Jan 2021 15:56:14 -0700 +Subject: [PATCH] use state: absent instead of state: missing + +--- + tests/tests_hostkeys_missing.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/tests_hostkeys_missing.yml b/tests/tests_hostkeys_missing.yml +index 9dfe77b..5790684 100644 +--- a/tests/tests_hostkeys_missing.yml ++++ b/tests/tests_hostkeys_missing.yml +@@ -40,7 +40,7 @@ + - name: Make sure the key was not created + file: + path: /tmp/missing_ssh_host_rsa_key +- state: missing ++ state: absent + register: key + failed_when: key.changed + tags: tests::verify +-- +2.29.2 + diff --git a/SOURCES/storage-no-disks-existing.diff b/SOURCES/storage-no-disks-existing.diff new file mode 100644 index 0000000..68b1e8d --- /dev/null +++ b/SOURCES/storage-no-disks-existing.diff @@ -0,0 +1,142 @@ +diff --git a/library/blivet.py b/library/blivet.py +index eb8bb11..e927121 100644 +--- a/library/blivet.py ++++ b/library/blivet.py +@@ -104,6 +104,7 @@ try: + from blivet3.formats import get_format + from blivet3.partitioning import do_partitioning + from blivet3.size import Size ++ from blivet3.udev import trigger + from blivet3.util import set_up_logging + BLIVET_PACKAGE = 'blivet3' + except ImportError: +@@ -116,6 +117,7 @@ except ImportError: + from blivet.formats import get_format + from blivet.partitioning import do_partitioning + from blivet.size import Size ++ from blivet.udev import trigger + from blivet.util import set_up_logging + BLIVET_PACKAGE = 'blivet' + except ImportError: +@@ -821,7 +823,10 @@ class BlivetPool(BlivetBase): + + def _look_up_disks(self): + """ Look up the pool's disks in blivet's device tree. """ +- if not self._pool['disks']: ++ if self._disks: ++ return ++ ++ if not self._device and not self._pool['disks']: + raise BlivetAnsibleError("no disks specified for pool '%s'" % self._pool['name']) + elif not isinstance(self._pool['disks'], list): + raise BlivetAnsibleError("pool disks must be specified as a list") +@@ -832,7 +837,7 @@ class BlivetPool(BlivetBase): + if device is not None: # XXX fail if any disk isn't resolved? + disks.append(device) + +- if self._pool['disks'] and not disks: ++ if self._pool['disks'] and not self._device and not disks: + raise BlivetAnsibleError("unable to resolve any disks specified for pool '%s' (%s)" % (self._pool['name'], self._pool['disks'])) + + self._disks = disks +@@ -974,9 +979,9 @@ class BlivetPool(BlivetBase): + """ Schedule actions to configure this pool according to the yaml input. """ + global safe_mode + # look up the device +- self._look_up_disks() + self._look_up_device() + self._apply_defaults() ++ self._look_up_disks() + + # schedule destroy if appropriate, including member type change + if not self.ultimately_present: +@@ -999,6 +1004,7 @@ class BlivetPartitionPool(BlivetPool): + return self._device.partitionable + + def _look_up_device(self): ++ self._look_up_disks() + self._device = self._disks[0] + + def _create(self): +@@ -1354,6 +1360,13 @@ def run_module(): + + actions.append(action) + ++ def ensure_udev_update(action): ++ if action.is_create: ++ sys_path = action.device.path ++ if os.path.islink(sys_path): ++ sys_path = os.readlink(action.device.path) ++ trigger(action='change', subsystem='block', name=os.path.basename(sys_path)) ++ + def action_dict(action): + return dict(action=action.type_desc_str, + fs_type=action.format.type if action.is_format else None, +@@ -1395,6 +1408,7 @@ def run_module(): + if scheduled: + # execute the scheduled actions, committing changes to disk + callbacks.action_executed.add(record_action) ++ callbacks.action_executed.add(ensure_udev_update) + try: + b.devicetree.actions.process(devices=b.devicetree.devices, dry_run=module.check_mode) + except Exception as e: +diff --git a/tests/tests_existing_lvm_pool.yml b/tests/tests_existing_lvm_pool.yml +new file mode 100644 +index 0000000..854ac0d +--- /dev/null ++++ b/tests/tests_existing_lvm_pool.yml +@@ -0,0 +1,54 @@ ++--- ++- hosts: all ++ become: true ++ vars: ++ mount_location: '/opt/test1' ++ volume_group_size: '5g' ++ volume_size: '4g' ++ pool_name: foo ++ ++ tasks: ++ - include_role: ++ name: linux-system-roles.storage ++ ++ - include_tasks: get_unused_disk.yml ++ vars: ++ min_size: "{{ volume_group_size }}" ++ max_return: 1 ++ ++ - name: Create one LVM logical volume under one volume group ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: "{{ pool_name }}" ++ disks: "{{ unused_disks }}" ++ volumes: ++ - name: test1 ++ size: "{{ volume_size }}" ++ ++ - include_tasks: verify-role-results.yml ++ ++ - name: Create another volume in the existing pool, identified only by name. ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: "{{ pool_name }}" ++ volumes: ++ - name: newvol ++ size: '2 GiB' ++ fs_type: ext4 ++ fs_label: newvol ++ ++ - include_tasks: verify-role-results.yml ++ ++ - name: Clean up. ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: "{{ pool_name }}" ++ state: absent ++ ++ - include_tasks: verify-role-results.yml diff --git a/SOURCES/storage-partition-name.diff b/SOURCES/storage-partition-name.diff new file mode 100644 index 0000000..c206dc0 --- /dev/null +++ b/SOURCES/storage-partition-name.diff @@ -0,0 +1,30 @@ +commit effb7faf20301ddcee8ee36a1b156a0b9f006bb0 +Author: David Lehman +Date: Tue Aug 4 16:00:33 2020 -0400 + + Be smarter in choosing expected partition name. + + BlivetVolume._get_device_id is only used to look up pre-existing + volumes, so we don't have to try too hard to guess it by name. + We can just see if the disk has a single partition and, if so, + return the name of that partition. + + Fixes: #141 + +diff --git a/library/blivet.py b/library/blivet.py +index eb8bb11..0f7ce98 100644 +--- a/library/blivet.py ++++ b/library/blivet.py +@@ -554,7 +554,11 @@ class BlivetPartitionVolume(BlivetVolume): + return self._device.raw_device.type == 'partition' + + def _get_device_id(self): +- return self._blivet_pool._disks[0].name + '1' ++ device_id = None ++ if self._blivet_pool._disks[0].partitioned and len(self._blivet_pool._disks[0].children) == 1: ++ device_id = self._blivet_pool._disks[0].children[0].name ++ ++ return device_id + + def _resize(self): + pass diff --git a/SOURCES/storage-trim-volume-size.diff b/SOURCES/storage-trim-volume-size.diff new file mode 100644 index 0000000..ef947c7 --- /dev/null +++ b/SOURCES/storage-trim-volume-size.diff @@ -0,0 +1,326 @@ +diff --git a/library/blivet.py b/library/blivet.py +index e927121..f59f821 100644 +--- a/library/blivet.py ++++ b/library/blivet.py +@@ -130,6 +130,9 @@ if BLIVET_PACKAGE: + set_up_logging() + log = logging.getLogger(BLIVET_PACKAGE + ".ansible") + ++ ++MAX_TRIM_PERCENT = 2 ++ + use_partitions = None # create partitions on pool backing device disks? + disklabel_type = None # user-specified disklabel type + safe_mode = None # do not remove any existing devices or formatting +@@ -445,8 +448,16 @@ class BlivetVolume(BlivetBase): + if not self._device.resizable: + return + +- if self._device.format.resizable: +- self._device.format.update_size_info() ++ trim_percent = (1.0 - float(self._device.max_size / size))*100 ++ log.debug("resize: size=%s->%s ; trim=%s", self._device.size, size, trim_percent) ++ if size > self._device.max_size and trim_percent <= MAX_TRIM_PERCENT: ++ log.info("adjusting %s resize target from %s to %s to fit in free space", ++ self._volume['name'], ++ size, ++ self._device.max_size) ++ size = self._device.max_size ++ if size == self._device.size: ++ return + + if not self._device.min_size <= size <= self._device.max_size: + raise BlivetAnsibleError("volume '%s' cannot be resized to '%s'" % (self._volume['name'], size)) +@@ -610,10 +621,18 @@ class BlivetLVMVolume(BlivetVolume): + raise BlivetAnsibleError("invalid size '%s' specified for volume '%s'" % (self._volume['size'], self._volume['name'])) + + fmt = self._get_format() ++ trim_percent = (1.0 - float(parent.free_space / size))*100 ++ log.debug("size: %s ; %s", size, trim_percent) + if size > parent.free_space: +- raise BlivetAnsibleError("specified size for volume '%s' exceeds available space in pool '%s' (%s)" % (size, +- parent.name, +- parent.free_space)) ++ if trim_percent > MAX_TRIM_PERCENT: ++ raise BlivetAnsibleError("specified size for volume '%s' exceeds available space in pool '%s' (%s)" ++ % (size, parent.name, parent.free_space)) ++ else: ++ log.info("adjusting %s size from %s to %s to fit in %s free space", self._volume['name'], ++ size, ++ parent.free_space, ++ parent.name) ++ size = parent.free_space + + try: + device = self._blivet.new_lv(name=self._volume['name'], +diff --git a/tests/tests_create_lv_size_equal_to_vg.yml b/tests/tests_create_lv_size_equal_to_vg.yml +new file mode 100644 +index 0000000..21a5788 +--- /dev/null ++++ b/tests/tests_create_lv_size_equal_to_vg.yml +@@ -0,0 +1,48 @@ ++--- ++- hosts: all ++ become: true ++ vars: ++ storage_safe_mode: false ++ mount_location: '/opt/test1' ++ volume_group_size: '10g' ++ lv_size: '10g' ++ unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}' ++ disk_size: '{{ unused_disk_subfact.sectors|int * ++ unused_disk_subfact.sectorsize|int }}' ++ ++ tasks: ++ - include_role: ++ name: linux-system-roles.storage ++ ++ - include_tasks: get_unused_disk.yml ++ vars: ++ min_size: "{{ volume_group_size }}" ++ max_return: 1 ++ ++ - name: Create one lv which size is equal to vg size ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ disks: "{{ unused_disks }}" ++ volumes: ++ - name: test1 ++ size: "{{ lv_size }}" ++ mount_point: "{{ mount_location }}" ++ ++ - include_tasks: verify-role-results.yml ++ ++ - name: Clean up ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ disks: "{{ unused_disks }}" ++ state: "absent" ++ volumes: ++ - name: test1 ++ mount_point: "{{ mount_location }}" ++ ++ - include_tasks: verify-role-results.yml +diff --git a/tests/tests_lvm_auto_size_cap.yml b/tests/tests_lvm_auto_size_cap.yml +new file mode 100644 +index 0000000..fb17c23 +--- /dev/null ++++ b/tests/tests_lvm_auto_size_cap.yml +@@ -0,0 +1,89 @@ ++--- ++- hosts: all ++ become: true ++ ++ tasks: ++ - include_role: ++ name: linux-system-roles.storage ++ ++ - include_tasks: get_unused_disk.yml ++ vars: ++ min_size: 10g ++ max_return: 1 ++ ++ - command: lsblk -b -l --noheadings -o NAME,SIZE ++ register: storage_test_lsblk ++ ++ - set_fact: ++ test_disk_size: "{{ storage_test_lsblk.stdout_lines|map('regex_search', '^' + unused_disks[0] + '\\s+\\d+$')|select('string')|first|regex_replace('^\\w+\\s+', '') }}" ++ ++ - package: ++ name: bc ++ state: installed ++ ++ - command: ++ cmd: bc ++ stdin: "{{ test_disk_size }} *2" ++ register: doubled_size ++ ++ - name: Test handling of too-large LVM volume size ++ block: ++ - name: Try to create a pool containing one volume twice the size of the backing disk ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ type: lvm ++ disks: "{{ unused_disks }}" ++ volumes: ++ - name: test1 ++ size: "{{ doubled_size.stdout|trim }}" ++ - name: unreachable task ++ fail: ++ msg: UNREACH ++ rescue: ++ - name: Check that we failed in the role ++ assert: ++ that: ++ - ansible_failed_result.msg != 'UNREACH' ++ - blivet_output.failed and ++ blivet_output.msg|regex_search('specified size for volume.+exceeds available') ++ msg: "Role has not failed when it should have" ++ ++ - name: Create a pool containing one volume the same size as the backing disk ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ disks: "{{ unused_disks }}" ++ volumes: ++ - name: test1 ++ size: "{{ test_disk_size }}" ++ ++ - include_tasks: verify-role-results.yml ++ ++ - name: Repeat the previous invocation to verify idempotence ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ type: lvm ++ disks: "{{ unused_disks }}" ++ volumes: ++ - name: test1 ++ size: "{{ test_disk_size }}" ++ ++ - include_tasks: verify-role-results.yml ++ ++ - name: Clean up ++ include_role: ++ name: linux-system-roles.storage ++ vars: ++ storage_pools: ++ - name: foo ++ disks: "{{ unused_disks }}" ++ state: absent ++ volumes: [] +diff --git a/tests/tests_lvm_errors.yml b/tests/tests_lvm_errors.yml +index 37d41dc..e8dc4f4 100644 +--- a/tests/tests_lvm_errors.yml ++++ b/tests/tests_lvm_errors.yml +@@ -11,8 +11,6 @@ + - '/non/existent/disk' + invalid_size: 'xyz GiB' + unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}' +- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) * +- unused_disk_subfact.sectorsize|int }}' + + tasks: + - include_role: +@@ -86,39 +84,6 @@ + - ansible_failed_result.msg != 'UNREACH' + msg: "Role has not failed when it should have" + +- # the following does not work properly +- # - name: Verify the output +- # assert: +- # that: "{{ blivet_output.failed and +- # blivet_output.msg|regex_search('invalid size.+for volume') and +- # not blivet_output.changed }}" +- # msg: "Unexpected behavior w/ invalid volume size" +- +- - name: Test for correct handling of too-large volume size. +- block: +- - name: Try to create LVM with a too-large volume size. +- include_role: +- name: linux-system-roles.storage +- vars: +- storage_pools: +- - name: foo +- disks: "{{ unused_disks }}" +- volumes: +- - name: test1 +- size: "{{ too_large_size }}" +- mount_point: "{{ mount_location1 }}" +- +- - name: unreachable task +- fail: +- msg: UNREACH +- +- rescue: +- - name: Check that we failed in the role +- assert: +- that: +- - ansible_failed_result.msg != 'UNREACH' +- msg: "Role has not failed when it should have" +- + # the following does not work properly + # - name: Verify the output + # assert: +@@ -138,7 +103,7 @@ + disks: "{{ unused_disks[0] }}" + volumes: + - name: test1 +- size: "{{ too_large_size }}" ++ size: "{{ volume_size }}" + mount_point: "{{ mount_location1 }}" + + - name: unreachable task +@@ -171,7 +136,7 @@ + disks: [] + volumes: + - name: test1 +- size: "{{ too_large_size }}" ++ size: "{{ volume1_size }}" + mount_point: "{{ mount_location1 }}" + + - name: unreachable task +diff --git a/tests/tests_misc.yml b/tests/tests_misc.yml +index a69ee98..3139bc7 100644 +--- a/tests/tests_misc.yml ++++ b/tests/tests_misc.yml +@@ -7,7 +7,7 @@ + volume_group_size: '5g' + volume1_size: '4g' + unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}' +- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) * ++ too_large_size: '{{ (unused_disk_subfact.sectors|int * 1.2) * + unused_disk_subfact.sectorsize|int }}' + + tasks: +diff --git a/tests/tests_resize.yml b/tests/tests_resize.yml +index 9eeb2b9..209d129 100644 +--- a/tests/tests_resize.yml ++++ b/tests/tests_resize.yml +@@ -9,7 +9,7 @@ + invalid_size1: 'xyz GiB' + invalid_size2: 'none' + unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}' +- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) * ++ too_large_size: '{{ unused_disk_subfact.sectors|int * 1.2 * + unused_disk_subfact.sectorsize|int }}' + disk_size: '{{ unused_disk_subfact.sectors|int * + unused_disk_subfact.sectorsize|int }}' +@@ -122,23 +122,7 @@ + size: "{{ disk_size }}" + mount_point: "{{ mount_location }}" + +- - name: Unreachable task +- fail: +- msg: UNREACH +- +- rescue: +- - name: Check that we failed in the role +- assert: +- that: +- - ansible_failed_result.msg != 'UNREACH' +- msg: "Role has not failed when it should have" +- +- - name: Verify the output +- assert: +- that: "blivet_output.failed and +- blivet_output.msg|regex_search('volume.+cannot be resized to.+') and +- not blivet_output.changed" +- msg: "Unexpected behavior w/ invalid volume size" ++ - include_tasks: verify-role-results.yml + + - name: Test for correct handling of invalid size specification + block: diff --git a/SPECS/rhel-system-roles.spec b/SPECS/rhel-system-roles.spec index c9d8759..f0b2a24 100644 --- a/SPECS/rhel-system-roles.spec +++ b/SPECS/rhel-system-roles.spec @@ -1,134 +1,242 @@ +%if 0%{?rhel} && ! 0%{?epel} +%bcond_with ansible +%else +%bcond_without ansible +%endif + %if 0%{?rhel} Name: rhel-system-roles %else Name: linux-system-roles %endif +Url: https://github.com/linux-system-roles/ Summary: Set of interfaces for unified system management -Version: 1.0 -Release: 12%{?dist} +Version: 1.0.0 +Release: 31%{?dist} #Group: Development/Libraries License: GPLv3+ and MIT and BSD -%if 0%{?rhel} +%global installbase %{_datadir}/linux-system-roles +%global _pkglicensedir %{_licensedir}/%{name} %global rolealtprefix linux-system-roles. -%endif %global roleprefix %{name}. +%global roleinstprefix %{nil} +%global rolealtrelpath ../../linux-system-roles/ +%if 0%{?rhel} +%global roleinstprefix %{roleprefix} +%global installbase %{_datadir}/ansible/roles +%global rolealtrelpath %{nil} +%endif + +%if 0%{?rhel} +%global collection_namespace redhat +%global collection_name rhel_system_roles +%else +%global collection_namespace fedora +%global collection_name linux_system_roles +%endif +%global subrole_prefix "private_${role}_subrole_" + +%global collection_version %{version} + +# Helper macros originally from macros.ansible by Igor Raits +# Not available on RHEL, so we must define those macros locally here without using ansible-galaxy + +# Not used (yet). Could be made to point to AH in RHEL - but what about CentOS Stream? +#%%{!?ansible_collection_url:%%define ansible_collection_url() https://galaxy.ansible.com/%%{collection_namespace}/%%{collection_name}} + +%{!?ansible_collection_files:%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/} + +%if %{with ansible} +BuildRequires: ansible >= 2.9.10 +%endif + +%if %{undefined ansible_collection_build} +%if %{without ansible} +# Empty command. We don't have ansible-galaxy. +%define ansible_collection_build() : +%else +%define ansible_collection_build() ansible-galaxy collection build +%endif +%endif + +%if %{undefined ansible_collection_install} +%if %{without ansible} +# Simply copy everything instead of galaxy-installing the built artifact. +%define ansible_collection_install() mkdir -p %{buildroot}%{ansible_collection_files}; cp -a . %{buildroot}%{ansible_collection_files}/%{collection_name}/ +%else +%define ansible_collection_install() ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{version}.tar.gz +%endif +%endif # For each role, call either defcommit() or deftag(). The other macros # (%%id and %%shortid) can be then used in the same way in both cases. # This way the rest of the spec file des not need to know whether we are # dealing with a tag or a commit. -%define defcommit() %{expand:%%global id%{1} %{2} -%%global shortid%{1} %%(c=%%{id%{1}}; echo ${c:0:7}) +%global archiveext tar.gz +# list of role names +%global rolenames %nil +# list of assignments that can be used to populate a bash associative array variable +%global rolestodir %nil +%define getarchivedir() %(p=%{basename:%{S:%{1}}}; echo ${p%%.%{archiveext}}) + +%define defcommit() %{expand:%%global ref%{1} %{2} +%%global shortcommit%{1} %%(c=%%{ref%{1}}; echo ${c:0:7}) +%%global extractdir%{1} %%{expand:%%getarchivedir %{1}} +%%{!?repo%{1}:%%global repo%{1} %%{rolename%{1}}} +%%global archiveurl%{1} %%{?forgeorg%{1}}%%{!?forgeorg%{1}:%%{url}}%%{repo%{1}}/archive/%%{ref%{1}}/%%{repo%{1}}-%%{ref%{1}}.tar.gz +%%global rolenames %%{?rolenames} %%{rolename%{1}} +%%global roletodir%{1} [%{rolename%{1}}]="%{extractdir%{1}}" +%%global rolestodir %%{?rolestodir} %{roletodir%{1}} } -%define deftag() %{expand:%%global id%{1} %{2} -%%global shortid%{1} %{2} +%define deftag() %{expand:%%global ref%{1} %{2} +%%global extractdir%{1} %%{expand:%%getarchivedir %{1}} +%%{!?repo%{1}:%%global repo%{1} %%{rolename%{1}}} +%%global archiveurl%{1} %%{?forgeorg%{1}}%%{!?forgeorg%{1}:%%{url}}%%{repo%{1}}/archive/%%{ref%{1}}/%%{repo%{1}}-%%{ref%{1}}.tar.gz +%%global rolenames %%{?rolenames} %%{rolename%{1}} +%%global roletodir%{1} [%{rolename%{1}}]="%{extractdir%{1}}" +%%global rolestodir %%{?rolestodir} %%{roletodir%{1}} } -%defcommit 0 0c2bb286bbc1b73d728226924e0010c0fa1ce30a -%global rolename0 kdump -#%%deftag 0 1.0.0 - #%%defcommit 1 43eec5668425d295dce3801216c19b1916df1f9b %global rolename1 postfix %deftag 1 0.1 -%defcommit 2 6cd1ec8fdebdb92a789b14e5a44fe77f0a3d8ecd +#%%defcommit 2 6cd1ec8fdebdb92a789b14e5a44fe77f0a3d8ecd %global rolename2 selinux -#%%deftag 2 1.0.0 +%deftag 2 1.1.1 %defcommit 3 924650d0cd4117f73a7f0413ab745a8632bc5cec %global rolename3 timesync #%%deftag 3 1.0.0 -%defcommit 5 e0c7d550a9934b837c45997ce9adef425bce6bcf +%defcommit 4 77596fdd976c6160d6152c200a5432c609725a14 +%global rolename4 kdump +#%%deftag 4 1.0.0 + +%defcommit 5 bda206d45c87ee8c1a5284de84f5acf5e629de97 %global rolename5 network #%%deftag 5 1.0.0 -%defcommit 6 36c4803f636b3d4f5830d650cd0b5584540a33d3 +%defcommit 6 485de47b0dc0787aea077ba448ecb954f53e40c4 %global rolename6 storage -#%%deftag 6 1.0.2 +#%%deftag 6 1.2.2 -%defcommit 7 e1ca7474af8482e17f16f233d6df713eb57f710d +%defcommit 7 e81b2650108727f38b1c856699aad26af0f44a46 %global rolename7 metrics #%%deftag 7 0.1.0 -%defcommit 8 2b3ffabedc05e93b6157c186d143644ef61301a9 +#%%defcommit 8 cfa70b6b5910b3198aba2679f8fc36aad45ca45a %global rolename8 tlog -#%%deftag 8 0.2.0 +%deftag 8 1.1.0 -%defcommit 9 f760285362332e4be7027aae5e0e7265efd428da +%defcommit 9 e5e5abb35fb695e22ccffa855c98ab882650480e %global rolename9 kernel_settings -#%%deftag 9 0.2.0 +#%%deftag 9 1.0.1 -%defcommit 10 95e25748cd6dd0ec620628ba4a00c01fb3015353 +%defcommit 10 4b07edf4e84882c9d0fb979092ba5953aac0b4d5 %global rolename10 logging #%%deftag 10 0.2.0 -%defcommit 11 81101597d48f69ecae6a7dfa3f3d0677e95d9df4 +#%%defcommit 11 4b6cfca4dd24e53a4bc4e07635601d7c104346c1 %global rolename11 nbde_server -#%%deftag 11 0.1.0 +%deftag 11 1.0.1 -%defcommit 12 da2db56bed495a68fe96fb3eda0a85e120a4f752 +%defcommit 12 3af7452e4861ee2363b29b23bf78bf11e06be142 %global rolename12 nbde_client -#%%deftag 12 0.1.0 +#%%deftag 12 1.0.1 -%defcommit 13 27986c2749c5d3c4064929d792d8c618ff6bc27e +%defcommit 13 50041ce55348fcce34aba4cbe3ea160c5d890ab3 %global rolename13 certificate -#%%deftag 13 0.1.0 - -Source: https://github.com/linux-system-roles/%{rolename0}/archive/%{id0}.tar.gz#/%{rolename0}-%{shortid0}.tar.gz -Source1: https://github.com/linux-system-roles/%{rolename1}/archive/%{id1}.tar.gz#/%{rolename1}-%{shortid1}.tar.gz -Source2: https://github.com/linux-system-roles/%{rolename2}/archive/%{id2}.tar.gz#/%{rolename2}-%{shortid2}.tar.gz -Source3: https://github.com/linux-system-roles/%{rolename3}/archive/%{id3}.tar.gz#/%{rolename3}-%{shortid3}.tar.gz -Source5: https://github.com/linux-system-roles/%{rolename5}/archive/%{id5}.tar.gz#/%{rolename5}-%{shortid5}.tar.gz -Source6: https://github.com/linux-system-roles/%{rolename6}/archive/%{id6}.tar.gz#/%{rolename6}-%{shortid6}.tar.gz -Source7: https://github.com/linux-system-roles/%{rolename7}/archive/%{id7}.tar.gz#/%{rolename7}-%{shortid7}.tar.gz -Source8: https://github.com/linux-system-roles/%{rolename8}/archive/%{id8}.tar.gz#/%{rolename8}-%{shortid8}.tar.gz -Source9: https://github.com/linux-system-roles/%{rolename9}/archive/%{id9}.tar.gz#/%{rolename9}-%{shortid9}.tar.gz -Source10: https://github.com/linux-system-roles/%{rolename10}/archive/%{id10}.tar.gz#/%{rolename10}-%{shortid10}.tar.gz -Source11: https://github.com/linux-system-roles/%{rolename11}/archive/%{id11}.tar.gz#/%{rolename11}-%{shortid11}.tar.gz -Source12: https://github.com/linux-system-roles/%{rolename12}/archive/%{id12}.tar.gz#/%{rolename12}-%{shortid12}.tar.gz -Source13: https://github.com/linux-system-roles/%{rolename13}/archive/%{id13}.tar.gz#/%{rolename13}-%{shortid13}.tar.gz - -Source999: md2html.sh - -%if "%{roleprefix}" != "linux-system-roles." -Patch1: rhel-system-roles-%{rolename1}-prefix.diff -Patch2: rhel-system-roles-%{rolename2}-prefix.diff -Patch3: rhel-system-roles-%{rolename3}-prefix.diff -Patch5: rhel-system-roles-%{rolename5}-prefix.diff -Patch6: rhel-system-roles-%{rolename6}-prefix.diff -# for some roles, the prefix change can be scripted - see below -%endif +#%%deftag 13 1.0.1 + +%defcommit 14 76b2d5b0460dba22c5d290c1af96e4fdb3434cb9 +%global rolename14 crypto_policies + +%global forgeorg15 https://github.com/willshersystems/ +%global repo15 ansible-sshd +%global rolename15 sshd +%defcommit 15 e1de59b3c54e9d48a010eeca73755df339c7e628 + +%defcommit 16 effa0a0d993832dee726290f263a2182cf3eacda +%global rolename16 ssh + +%defcommit 17 779bb78559de58bb5a1f25a4b92039c373ef59a4 +%global rolename17 ha_cluster + +%global mainid e5ed203b2d7224c0bf0c3fd55452456c8f468cad +Source: %{url}auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz +Source1: %{archiveurl1} +Source2: %{archiveurl2} +Source3: %{archiveurl3} +Source4: %{archiveurl4} +Source5: %{archiveurl5} +Source6: %{archiveurl6} +Source7: %{archiveurl7} +Source8: %{archiveurl8} +Source9: %{archiveurl9} +Source10: %{archiveurl10} +Source11: %{archiveurl11} +Source12: %{archiveurl12} +Source13: %{archiveurl13} +Source14: %{archiveurl14} +Source15: %{archiveurl15} +Source16: %{archiveurl16} +Source17: %{archiveurl17} + +# Script to convert the collection README to Automation Hub. +# Not used on Fedora. +Source998: collection_readme.sh Patch11: rhel-system-roles-postfix-pr5.diff -Patch101: rhel-system-roles-kdump-pr22.diff - -Patch102: kdump-tier1-tags.diff +Patch12: postfix-meta-el8.diff Patch21: selinux-tier1-tags.diff +Patch22: selinux-bz-1926947-no-variable-named-present.diff Patch31: timesync-tier1-tags.diff +Patch41: rhel-system-roles-kdump-pr22.diff +Patch42: kdump-tier1-tags.diff +Patch43: kdump-meta-el8.diff +Patch44: kdump-fix-newline.diff + +Patch51: network-epel-minimal.diff +# Not suitable for upstream, since the files need to be executable there Patch52: network-permissions.diff Patch53: network-tier1-tags.diff -Patch54: network-nm-reload-profile.diff +Patch55: network-disable-bondtests.diff -#Patch61: storage-safemode.diff +Patch62: storage-partition-name.diff +Patch63: storage-no-disks-existing.diff +Patch64: storage-trim-volume-size.diff + +Patch71: metrics-mssql-x86.diff + +Patch151: sshd-example.diff +Patch152: sshd-work-on-ansible28-jinja27.diff -Url: https://github.com/linux-system-roles/ BuildArch: noarch +# These are needed for md2html.sh to build the documentation BuildRequires: asciidoc BuildRequires: pandoc BuildRequires: highlight +BuildRequires: python3 +BuildRequires: python3-six +BuildRequires: python3dist(ruamel.yaml) Requires: python3-jmespath Obsoletes: rhel-system-roles-techpreview < 1.0-3 +%if %{undefined __ansible_provides} +Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{collection_version} +%endif +# be compatible with the usual Fedora Provides: +Provides: ansible-collection-%{collection_namespace}-%{collection_name} = %{version}-%{release} + # We need to put %%description within the if block to avoid empty # lines showing up. %if 0%{?rhel} @@ -144,101 +252,164 @@ of Fedora, Red Hat Enterprise Linux & CentOS. %endif %prep -%setup -qc -a1 -a2 -a3 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -cd %{rolename0}-%{id0} -%patch101 -p1 -%patch102 -p1 -cd .. -cd %{rolename1}-%{id1} -%if "%{roleprefix}" != "linux-system-roles." -%patch1 -p1 -%endif +%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -n %{getarchivedir 0} + +declare -A ROLESTODIR=(%{rolestodir}) +for rolename in %{rolenames}; do + mv "${ROLESTODIR[${rolename}]}" ${rolename} +done + +cd %{rolename1} %patch11 -p1 +%patch12 -p1 cd .. -cd %{rolename2}-%{id2} -%if "%{roleprefix}" != "linux-system-roles." -%patch2 -p1 -%endif +cd %{rolename2} %patch21 -p1 +%patch22 -p1 cd .. -cd %{rolename3}-%{id3} -%if "%{roleprefix}" != "linux-system-roles." -%patch3 -p1 -%endif +cd %{rolename3} %patch31 -p1 cd .. -cd %{rolename5}-%{id5} -%if "%{roleprefix}" != "linux-system-roles." -%patch5 -p1 -%endif +cd %{rolename4} +%patch41 -p1 +%patch42 -p1 +%patch43 -p1 +%patch44 -p1 +cd .. +cd %{rolename5} +%patch51 -p1 %patch52 -p1 %patch53 -p1 -%patch54 -p1 +%patch55 -p1 cd .. -cd %{rolename6}-%{id6} -%if "%{roleprefix}" != "linux-system-roles." -%patch6 -p1 -%endif -#%%patch61 -p1 +cd %{rolename6} +%patch62 -p1 +%patch63 -p1 +%patch64 -p1 +cd .. +cd %{rolename7} +%patch71 -p1 +cd .. +cd %{rolename15} +%patch151 -p1 +%patch152 -p1 +sed -r -i -e "s/ansible-sshd/linux-system-roles.sshd/" tests/*.yml examples/*.yml README.md cd .. -# for some roles, the prefix change can be scripted - see below +# Replacing "linux-system-roles.rolename" with "rhel-system-roles.rolename" in each role %if "%{roleprefix}" != "linux-system-roles." -for role in %{rolename7}-%{id7} %{rolename8}-%{id8} %{rolename9}-%{id9} \ - %{rolename10}-%{id10} %{rolename11}-%{id11} %{rolename12}-%{id12} \ - %{rolename13}-%{id13}; do - find $role -type f -exec \ - sed "s/linux-system-roles[.]${role}\\>/%{roleprefix}${role}/g" -i {} \; +for rolename in %{rolenames}; do + find $rolename -type f -exec \ + sed "s/linux-system-roles[.]${rolename}\\>/%{roleprefix}${rolename}/g" -i {} \; done %endif +# Removing symlinks in tests/roles +for rolename in %{rolenames}; do + if [ -d ${rolename}/tests/roles ]; then + find ${rolename}/tests/roles -type l -exec rm {} \; + if [ -d ${rolename}/tests/roles/linux-system-roles.${rolename} ]; then + rm -r ${rolename}/tests/roles/linux-system-roles.${rolename} + fi + fi +done +rm %{rolename5}/tests/modules +rm %{rolename5}/tests/module_utils +rm %{rolename5}/tests/playbooks/roles + +# transform ambiguous #!/usr/bin/env python shebangs to python3 to stop brp-mangle-shebangs complaining +find -type f -executable -name '*.py' -exec \ + sed -i -r -e '1s@^(#! */usr/bin/env python)(\s|$)@#\13\2@' '{}' + + %build -sh %{SOURCE999} \ -%{rolename0}-%{id0}/README.md \ -%{rolename1}-%{id1}/README.md \ -%{rolename2}-%{id2}/README.md \ -%{rolename3}-%{id3}/README.md \ -%{rolename5}-%{id5}/README.md \ -%{rolename6}-%{id6}/README.md \ -%{rolename7}-%{id7}/README.md \ -%{rolename8}-%{id8}/README.md \ -%{rolename9}-%{id9}/README.md \ -%{rolename10}-%{id10}/README.md \ -%{rolename11}-%{id11}/README.md \ -%{rolename12}-%{id12}/README.md \ -%{rolename13}-%{id13}/README.md +sh md2html.sh \ +%{rolename1}/README.md \ +%{rolename2}/README.md \ +%{rolename3}/README.md \ +%{rolename4}/README.md \ +%{rolename5}/README.md \ +%{rolename6}/README.md \ +%{rolename7}/README.md \ +%{rolename8}/README.md \ +%{rolename9}/README.md \ +%{rolename10}/README.md \ +%{rolename11}/README.md \ +%{rolename12}/README.md \ +%{rolename13}/README.md \ +%{rolename14}/README.md \ +%{rolename15}/README.md \ +%{rolename16}/README.md \ +%{rolename17}/README.md + +mkdir .collections +%if 0%{?rhel} +# Convert the upstream collection readme to the downstream one +%{SOURCE998} lsr_role2collection/collection_readme.md +%endif +./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" > galaxy.yml.tmp +mv galaxy.yml.tmp galaxy.yml + +for role in %{rolename1} %{rolename2} %{rolename3} \ + %{rolename4} %{rolename5} %{rolename6} \ + %{rolename7} %{rolename8} %{rolename9} \ + %{rolename10} %{rolename11} %{rolename12} \ + %{rolename13} %{rolename14} %{rolename15} \ + %{rolename16} %{rolename17}; do + python3 lsr_role2collection.py --role "$role" --src-path "$role" \ + --src-owner %{name} --subrole-prefix %{subrole_prefix} --dest-path .collections \ + --readme lsr_role2collection/collection_readme.md \ + --namespace %{collection_namespace} --collection %{collection_name} +done + +cp -p galaxy.yml lsr_role2collection/.ansible-lint \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name} +mkdir -p .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity +cp -p lsr_role2collection/ignore-2.9.txt \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity + +cd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ +%ansible_collection_build %install +mkdir -p $RPM_BUILD_ROOT%{installbase} mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles -cp -pR %{rolename0}-%{id0} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename0} -cp -pR %{rolename1}-%{id1} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename1} -cp -pR %{rolename2}-%{id2} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename2} -cp -pR %{rolename3}-%{id3} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename3} -cp -pR %{rolename5}-%{id5} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename5} -cp -pR %{rolename6}-%{id6} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename6} -cp -pR %{rolename7}-%{id7} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename7} -cp -pR %{rolename8}-%{id8} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename8} -cp -pR %{rolename9}-%{id9} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename9} -cp -pR %{rolename10}-%{id10} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename10} -cp -pR %{rolename11}-%{id11} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename11} -cp -pR %{rolename12}-%{id12} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename12} -cp -pR %{rolename13}-%{id13} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename13} +cp -pR %{rolename1} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename1} +cp -pR %{rolename2} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename2} +cp -pR %{rolename3} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename3} +cp -pR %{rolename4} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename4} +cp -pR %{rolename5} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename5} +cp -pR %{rolename6} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename6} +cp -pR %{rolename7} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename7} +cp -pR %{rolename8} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename8} +cp -pR %{rolename9} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename9} +cp -pR %{rolename10} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename10} +cp -pR %{rolename11} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename11} +cp -pR %{rolename12} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename12} +cp -pR %{rolename13} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename13} +cp -pR %{rolename14} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename14} +cp -pR %{rolename15} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename15} +cp -pR %{rolename16} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename16} +cp -pR %{rolename17} $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}%{rolename17} %if 0%{?rolealtprefix:1} -ln -s %{roleprefix}%{rolename0} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename0} -ln -s %{roleprefix}%{rolename1} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename1} -ln -s %{roleprefix}%{rolename2} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename2} -ln -s %{roleprefix}%{rolename3} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename3} -ln -s %{roleprefix}%{rolename5} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename5} -ln -s %{roleprefix}%{rolename6} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename6} -ln -s %{roleprefix}%{rolename7} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename7} -ln -s %{roleprefix}%{rolename8} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename8} -ln -s %{roleprefix}%{rolename9} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename9} -ln -s %{roleprefix}%{rolename10} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename10} -ln -s %{roleprefix}%{rolename11} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename11} -ln -s %{roleprefix}%{rolename12} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename12} -ln -s %{roleprefix}%{rolename13} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename13} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename1} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename1} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename2} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename2} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename3} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename3} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename4} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename4} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename5} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename5} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename6} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename6} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename7} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename7} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename8} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename8} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename9} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename9} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename10} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename10} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename11} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename11} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename12} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename12} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename13} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename13} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename14} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename14} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename15} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename15} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename16} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename16} +ln -s %{rolealtrelpath}%{roleinstprefix}%{rolename17} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}%{rolename17} %endif mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/kdump @@ -254,125 +425,193 @@ mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/logging mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/nbde_server mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/nbde_client mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/certificate - -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kdump/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kdump/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kdump/COPYING \ +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/crypto_policies +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/sshd +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/ssh +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/ha_cluster +mkdir -p $RPM_BUILD_ROOT%{_pkglicensedir} + +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kdump/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kdump/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/kdump +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kdump/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/kdump.COPYING -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}postfix/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}postfix/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}postfix/COPYING \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}postfix/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}postfix/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/postfix +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}postfix/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/postfix.COPYING -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/COPYING \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}selinux/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}selinux/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/selinux -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/selinux-playbook.yml \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}selinux/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/selinux.COPYING +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}selinux/selinux-playbook.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/selinux/example-selinux-playbook.yml -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}timesync/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}timesync/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}timesync/COPYING \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}timesync/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}timesync/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/timesync -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}timesync/examples/multiple-ntp-servers.yml \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}timesync/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/timesync.COPYING +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}timesync/examples/multiple-ntp-servers.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/timesync/example-timesync-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}timesync/examples/single-pool.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}timesync/examples/single-pool.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/timesync/example-timesync-pool-playbook.yml -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/network -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/bond_with_vlan.yml \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/network.LICENSE +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/bond_with_vlan.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-bond_with_vlan-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/bridge_with_vlan.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/bridge_with_vlan.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-bridge_with_vlan-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/eth_simple_auto.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/eth_simple_auto.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-eth_simple_auto-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/eth_with_vlan.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/eth_with_vlan.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-eth_with_vlan-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/infiniband.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/infiniband.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-infiniband-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/macvlan.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/macvlan.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-macvlan-playbook.yml -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/remove_profile.yml \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/remove_profile.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-remove_profile-playbook.yml -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/remove_profile.yml -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/down_profile.yml \ +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/remove_profile.yml +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/down_profile.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-down_profile-playbook.yml -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/down_profile.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/inventory \ +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/down_profile.yml +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/inventory \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-inventory -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/ethtool_features.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/ethtool_features.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-ethtool_features-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/ethtool_features_default.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/ethtool_features_default.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-ethtool_features_default-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/bond_simple.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/bond_simple.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-bond_simple-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/eth_with_802_1x.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/eth_with_802_1x.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-eth_with_802_1x-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/wireless_wpa_psk.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/wireless_wpa_psk.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-wireless_wpa_psk-playbook.yml -mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/remove+down_profile.yml \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/remove+down_profile.yml \ $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-remove+down_profile-playbook.yml - -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}storage/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}storage/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}storage/LICENSE \ +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/dummy_simple.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-dummy_simple-playbook.yml +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/ethtool_coalesce.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-ethtool_coalesce-playbook.yml +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/team_simple.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-team_simple-playbook.yml +mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/eth_dns_support.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-eth_dns_support-playbook.yml + +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}storage/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}storage/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/storage +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}storage/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/storage.LICENSE + +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/semaphore +rm -r $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/molecule -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}*/semaphore -rm -r $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}*/molecule -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}*/.travis.yml -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}*/.ansible-lint +rm -r $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/.[A-Za-z]* +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/tests/.git* -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/.gitignore -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/tests/.gitignore -rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/roles -rmdir $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/roles +rmdir $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}metrics/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}metrics/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}metrics/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}metrics/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}metrics/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/metrics +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}metrics/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/metrics.LICENSE -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}tlog/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}tlog/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}tlog/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}tlog/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}tlog/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/tlog +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}tlog/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/tlog.LICENSE -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kernel_settings/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kernel_settings/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kernel_settings/LICENSE \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kernel_settings/COPYING \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kernel_settings/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kernel_settings/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/kernel_settings +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kernel_settings/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/kernel_settings.LICENSE +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}kernel_settings/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/kernel_settings.COPYING -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}logging/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}logging/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}logging/LICENSE \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}logging/COPYING \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}logging/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}logging/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/logging +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}logging/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/logging.LICENSE +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}logging/COPYING \ + $RPM_BUILD_ROOT%{_pkglicensedir}/logging.COPYING -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_server/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_server/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_server/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_server/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_server/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/nbde_server +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_server/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/nbde_server.LICENSE -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_client/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_client/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}nbde_client/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_client/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_client/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/nbde_client +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}nbde_client/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/nbde_client.LICENSE -cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}certificate/README.md \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}certificate/README.html \ - $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}certificate/LICENSE \ +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}certificate/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}certificate/README.html \ $RPM_BUILD_ROOT%{_pkgdocdir}/certificate +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}certificate/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/certificate.LICENSE + +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}crypto_policies/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}crypto_policies/README.html \ + $RPM_BUILD_ROOT%{_pkgdocdir}/crypto_policies +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}crypto_policies/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/crypto_policies.LICENSE + +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}sshd/README.md \ + $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}sshd/README.html \ + $RPM_BUILD_ROOT%{_pkgdocdir}/sshd +cp -p $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}sshd/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/sshd.LICENSE +# referenced in the configuring-openssh-servers-using-the-sshd-system-role documentation module +# must be updated if changing the file path +mv $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}sshd/examples/example-root-login.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/sshd/example-root-login-playbook.yml +rmdir $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}sshd/examples + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ssh/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ssh/README.html \ + $RPM_BUILD_ROOT%{_pkgdocdir}/ssh +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ssh/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/ssh.LICENSE + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ha_cluster/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ha_cluster/README.html \ + $RPM_BUILD_ROOT%{_pkgdocdir}/ha_cluster +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ha_cluster/LICENSE \ + $RPM_BUILD_ROOT%{_pkglicensedir}/ha_cluster.LICENSE +mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ha_cluster/examples/simple.yml \ + $RPM_BUILD_ROOT%{_pkgdocdir}/ha_cluster/example-simple-playbook.yml +rmdir $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}ha_cluster/examples + +cd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ +%ansible_collection_install + %files +%if %{without ansible} %dir %{_datadir}/ansible %dir %{_datadir}/ansible/roles +%endif +%if "%{installbase}" != "%{_datadir}/ansible/roles" +%dir %{installbase} +%endif %if 0%{?rolealtprefix:1} %{_datadir}/ansible/roles/%{rolealtprefix}kdump %{_datadir}/ansible/roles/%{rolealtprefix}postfix @@ -387,71 +626,223 @@ cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}certificate/README.m %{_datadir}/ansible/roles/%{rolealtprefix}nbde_server %{_datadir}/ansible/roles/%{rolealtprefix}nbde_client %{_datadir}/ansible/roles/%{rolealtprefix}certificate +%{_datadir}/ansible/roles/%{rolealtprefix}crypto_policies +%{_datadir}/ansible/roles/%{rolealtprefix}sshd +%{_datadir}/ansible/roles/%{rolealtprefix}ssh +%{_datadir}/ansible/roles/%{rolealtprefix}ha_cluster %endif -%{_datadir}/ansible/roles/%{roleprefix}kdump -%{_datadir}/ansible/roles/%{roleprefix}postfix -%{_datadir}/ansible/roles/%{roleprefix}selinux -%{_datadir}/ansible/roles/%{roleprefix}timesync -%{_datadir}/ansible/roles/%{roleprefix}network -%{_datadir}/ansible/roles/%{roleprefix}storage -%{_datadir}/ansible/roles/%{roleprefix}metrics -%{_datadir}/ansible/roles/%{roleprefix}tlog -%{_datadir}/ansible/roles/%{roleprefix}kernel_settings -%{_datadir}/ansible/roles/%{roleprefix}logging -%{_datadir}/ansible/roles/%{roleprefix}nbde_server -%{_datadir}/ansible/roles/%{roleprefix}nbde_client -%{_datadir}/ansible/roles/%{roleprefix}certificate -%doc %{_pkgdocdir}/*/example-*-playbook.yml -%doc %{_pkgdocdir}/network/example-inventory -%doc %{_pkgdocdir}/*/README.md -%doc %{_pkgdocdir}/*/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}kdump/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}postfix/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}selinux/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}timesync/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}network/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}storage/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}metrics/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}tlog/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}kernel_settings/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}logging/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}nbde_server/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}nbde_client/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}certificate/README.md -%doc %{_datadir}/ansible/roles/%{roleprefix}kdump/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}postfix/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}selinux/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}timesync/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}network/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}storage/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}metrics/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}tlog/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}kernel_settings/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}logging/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}nbde_server/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}nbde_client/README.html -%doc %{_datadir}/ansible/roles/%{roleprefix}certificate/README.html - - -%license %{_pkgdocdir}/*/COPYING -%license %{_pkgdocdir}/*/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}kdump/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}postfix/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}selinux/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}timesync/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}network/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}storage/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}metrics/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}tlog/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}kernel_settings/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}kernel_settings/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}logging/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}logging/COPYING -%license %{_datadir}/ansible/roles/%{roleprefix}nbde_server/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}nbde_client/LICENSE -%license %{_datadir}/ansible/roles/%{roleprefix}certificate/LICENSE +%{installbase}/%{roleinstprefix}kdump +%{installbase}/%{roleinstprefix}postfix +%{installbase}/%{roleinstprefix}selinux +%{installbase}/%{roleinstprefix}timesync +%{installbase}/%{roleinstprefix}network +%{installbase}/%{roleinstprefix}storage +%{installbase}/%{roleinstprefix}metrics +%{installbase}/%{roleinstprefix}tlog +%{installbase}/%{roleinstprefix}kernel_settings +%{installbase}/%{roleinstprefix}logging +%{installbase}/%{roleinstprefix}nbde_server +%{installbase}/%{roleinstprefix}nbde_client +%{installbase}/%{roleinstprefix}certificate +%{installbase}/%{roleinstprefix}crypto_policies +%{installbase}/%{roleinstprefix}sshd +%{installbase}/%{roleinstprefix}ssh +%{installbase}/%{roleinstprefix}ha_cluster +%{_pkgdocdir}/*/example-*-playbook.yml +%{_pkgdocdir}/network/example-inventory +%{_pkgdocdir}/*/README.md +%{_pkgdocdir}/*/README.html +%doc %{installbase}/%{roleinstprefix}kdump/README.md +%doc %{installbase}/%{roleinstprefix}postfix/README.md +%doc %{installbase}/%{roleinstprefix}selinux/README.md +%doc %{installbase}/%{roleinstprefix}timesync/README.md +%doc %{installbase}/%{roleinstprefix}network/README.md +%doc %{installbase}/%{roleinstprefix}storage/README.md +%doc %{installbase}/%{roleinstprefix}metrics/README.md +%doc %{installbase}/%{roleinstprefix}tlog/README.md +%doc %{installbase}/%{roleinstprefix}kernel_settings/README.md +%doc %{installbase}/%{roleinstprefix}logging/README.md +%doc %{installbase}/%{roleinstprefix}nbde_server/README.md +%doc %{installbase}/%{roleinstprefix}nbde_client/README.md +%doc %{installbase}/%{roleinstprefix}certificate/README.md +%doc %{installbase}/%{roleinstprefix}crypto_policies/README.md +%doc %{installbase}/%{roleinstprefix}sshd/README.md +%doc %{installbase}/%{roleinstprefix}ssh/README.md +%doc %{installbase}/%{roleinstprefix}kdump/README.html +%doc %{installbase}/%{roleinstprefix}postfix/README.html +%doc %{installbase}/%{roleinstprefix}selinux/README.html +%doc %{installbase}/%{roleinstprefix}timesync/README.html +%doc %{installbase}/%{roleinstprefix}network/README.html +%doc %{installbase}/%{roleinstprefix}storage/README.html +%doc %{installbase}/%{roleinstprefix}metrics/README.html +%doc %{installbase}/%{roleinstprefix}tlog/README.html +%doc %{installbase}/%{roleinstprefix}kernel_settings/README.html +%doc %{installbase}/%{roleinstprefix}logging/README.html +%doc %{installbase}/%{roleinstprefix}nbde_server/README.html +%doc %{installbase}/%{roleinstprefix}nbde_client/README.html +%doc %{installbase}/%{roleinstprefix}certificate/README.html +%doc %{installbase}/%{roleinstprefix}crypto_policies/README.html +%doc %{installbase}/%{roleinstprefix}sshd/README.html +%doc %{installbase}/%{roleinstprefix}ssh/README.html +%doc %{installbase}/%{roleinstprefix}ha_cluster/README.html + +%license %{_pkglicensedir}/* +%license %{installbase}/%{roleinstprefix}kdump/COPYING +%license %{installbase}/%{roleinstprefix}postfix/COPYING +%license %{installbase}/%{roleinstprefix}selinux/COPYING +%license %{installbase}/%{roleinstprefix}timesync/COPYING +%license %{installbase}/%{roleinstprefix}network/LICENSE +%license %{installbase}/%{roleinstprefix}storage/LICENSE +%license %{installbase}/%{roleinstprefix}metrics/LICENSE +%license %{installbase}/%{roleinstprefix}tlog/LICENSE +%license %{installbase}/%{roleinstprefix}kernel_settings/LICENSE +%license %{installbase}/%{roleinstprefix}kernel_settings/COPYING +%license %{installbase}/%{roleinstprefix}logging/LICENSE +%license %{installbase}/%{roleinstprefix}logging/COPYING +%license %{installbase}/%{roleinstprefix}nbde_server/LICENSE +%license %{installbase}/%{roleinstprefix}nbde_client/LICENSE +%license %{installbase}/%{roleinstprefix}certificate/LICENSE +%license %{installbase}/%{roleinstprefix}crypto_policies/LICENSE +%license %{installbase}/%{roleinstprefix}sshd/LICENSE +%license %{installbase}/%{roleinstprefix}ssh/LICENSE +%license %{installbase}/%{roleinstprefix}ha_cluster/LICENSE + +%{ansible_collection_files} %changelog +* Mon Feb 22 2021 Pavel Cahyna - 1.0.0-31 +- Rebase certificate role to pick up a test fix, Resolves rhbz#1931568 +- Rebase logging role to fix default private key path, + upstream PR #218 + +* Mon Feb 22 2021 Pavel Cahyna - 1.0.0-30 +- Correct merge botch in previous (ssh/README.md is a doc file) +- Update galaxy.yml even on Fedora, auto-maintenance may not have + a consistent version number +- Update collection doc transformation to match a modified text + and include the Tech Preview note again + +* Thu Feb 18 2021 Pavel Cahyna - 1.0.0-29 +- Change internal role prefix to more descriptive private_${role}_subrole_ +- Sync spec improvements from Fedora and introduce helper macros + No functional change except for license files location +- Disable mssql metrics test on non-x86_64 where the packages + are not available. Upstream PR #73 + +* Wed Feb 17 2021 Rich Megginson - 1.0.0-28 +- Add patch for sshd https://github.com/willshersystems/ansible-sshd/pull/155 + for ansible 2.8/jinja 2.7 support for sshd role +- Rebase certificate, kernel_settings, nbde_client for jinja27 +- Rebase the logging role, Resolves rhbz#1927943 +- Rebase storage role, Resolves rhbz#1894651 - interpreatation of + omitted parameters +- Apply storage PR #201 to dispense with the need of listing all disks + in existing pools, Resolves rhbz1894676 +- Apply storage PR #199 to allow reducing the requested volume sizes + if needed to fit, Resolves rhbz1894647 +- Rebase the network role, Resolves rhbz1893959, rhbz1893957 +- Add the ssh client role, Resolves rhbz1893712 +- Minor issue in selinux - no variable named present + Resolves rhbz1926947 +- Prefix internal roles with private_, resolves rhbz#1927417 +- Add the ha_cluster role, Resolves rhbz#1893743 + +* Thu Feb 11 2021 Pavel Cahyna - 1.0.0-27 +- Rebase the logging role, Resolves rhbz#1889484 +- Fixes to collection docs and galaxy metadata from nhosoi +- Apply network PR #350 Resolves rhbz#1927392 + +* Wed Feb 3 2021 Pavel Cahyna - 1.0.0-26 +- Rebase the metrics role, Resolves rhbz#1895188, rhbz#1893908 + +* Tue Jan 26 2021 Pavel Cahyna - 1.0.0-25 +- Apply storage PR #153 to fix a problem with partition name on NVMe devices + Resolves: rhbz1865990 +- Remove symlinks to roles under tests +- Cleanup of role directories - remove files starting with . in roles' root + directories and Git files under tests. Resolves rhbz#1650550 +- Add collection support, make Version semver compatible: 1.0 -> 1.0.0 + Resolves rhbz#1893906 +- Autogenerate Automation-Hub README.md if building for RHEL +- Renumber sources, Source is now auto-maintenance since it is the root + of the source tree, kdump becomes Source4 (4 was originally firewall) +- Introduce bcond_with/without ansible, work on Fedora, RHEL and EPEL +- Rebase certificate role to include collection-related workarounds, + no change in behavior intended +- Rebase network role, includes collection-related workarounds +- Revert an invasive network change to enable EPEL (PR #335) and implement + a minimal version + +* Fri Jan 15 2021 Pavel Cahyna - 1.0-24 +- Apply PR #63 for kdump to fix a problem in test introduced by rebase + +* Fri Jan 8 2021 Pavel Cahyna - 1.0-23 +- Add {crypto_policies,sshd}/README.md to docfiles, thanks jjelen +- Fix role name in selinux patch +- Add sshd role example and README fix +- Fix role name in sshd role tests and docs +- Backport network role PR #298 to fix problems often triggered by the CI + "error: down connection failed while waiting", Resolves rhbz#1817242 +- Disable bond test in downstream CI, it started to break DNS in RHEL 8.4. + Related rhbz#1915017 + +* Thu Jan 7 2021 Pavel Cahyna - 1.0-22 +- Rebase kdump, certificate, storage, selinux, nbde_client/server, + kernel_settings in preparation for collections + Includes upstream PR #168 for storage to prevent toggling encryption + in safe mode, as it is a destructive operation. Resolves rhbz#1881524 +- Introduce & use simpler macros for Sources management, + similar to %%forgemeta + https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ +- Use a script to perform prefix transformation for all roles to reduce + the number of patches +- Rebase tlog to add exclude_{users,groups} support, Resolves rhbz#1895472 +- Add crypto_policies role, Resolves rhbz#1893699 +- Add sshd role, Resolves rhbz#1893696 + +* Mon Aug 24 2020 Pavel Cahyna - 1.0-19 +- Rebase network role to latest upstream, resolves rhbz#1800627 + Drop a downstream patch with a test workaround that is not needed anymore. +- Fix script for role prefix transformation +- Rebase metrics role to pick up test changes, PR #19 +- Rebase kernel_settings role to latest upstream, resolves rhbz#1851557 + +* Mon Aug 24 2020 Pavel Cahyna - 1.0-18 +- Rebase storage role to latest upstream, resolves rhbz#1848254, rhbz#1851654, + rhbz#1862867 +- Rebase nbde_client role to latest upstream, resolves rhbz#1851654 +- Rebase logging role to latest upstream, resolves rhbz#1851654, rhbz#1861318 +- Rebase metrics role to latest upstream, resolves rhbz#1869390, rhbz#1869389, + rhbz#1868378 + +* Fri Aug 21 2020 Pavel Cahyna - 1.0-17 +- Rebase certificate role to latest upstream, resolves rhbz#1859547 + +* Mon Aug 10 2020 Pavel Cahyna - 1.0-16 +- Rebase logging role to latest upstream, resolves rhbz#1854546, rhbz#1861318, + rhbz#1860896, adds test for rhbz#1850790 +- Rebase metrics role to latest upstream, resolves rhbz#1855544, rhbz#1855539, + rhbz#1848763 +- Fix whitespace in postfix role patch + +* Fri Jul 31 2020 Pavel Cahyna - 1.0-15 +- Rebase storage role to latest upstream, resolves rhbz#1854191, rhbz#1848250, + rhbz#1850790 (including test) +- Rebase nbde_client role to latest upstream, adds test for rhbz#1850790 +- Rebase certificate role to latest upstream, adds test for rhbz#1850790 +- Rebase nbde_server role to latest upstream, resolves rhbz#1850790 + (including test) +- Rebase tlog role to latest upstream, resolves rhbz#1855424 +- Rebase kernel_settings role to rev b8bc86b, resolves rhbz#1850790 +- Add EL 8 to supported versions in postfix and kdump role metadata, + resolves rhbz#1861661 + +* Mon Jul 20 2020 Rich Megginson - 1.0-14 +- Rebase certificate role to latest upstream, resolves rhbz#1858840 + +* Fri Jul 17 2020 Rich Megginson - 1.0-13 +- Rebase certificate role to latest upstream, resolves rhbz#1858316, rhbz#1848745 + * Mon Jun 29 2020 Pavel Cahyna - 1.0-12 - Rebase network role to latest upstream, resolves rhbz#1822777, rhbz#1848472 - Rebase logging role to latest upstream, resolves rhbz#1850790, @@ -532,7 +923,7 @@ cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}certificate/README.m - Fix merge botch * Mon Mar 19 2018 Troy Dawson - 0.6-3.1 -- Use -a (after cd) instead of -b (before cd) in %setup +- Use -a (after cd) instead of -b (before cd) in %%setup * Wed Mar 14 2018 Pavel Cahyna - 0.6-3 - Minor corrections of the previous change by Till Maas.