import rhel-system-roles-1.0-9.el8

This commit is contained in:
CentOS Sources 2019-11-05 14:45:34 -05:00 committed by Andrew Lukoshko
commit 01597c6efd
17 changed files with 2077 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
SOURCES/kdump-0c2bb28.tar.gz
SOURCES/network-d5891d4.tar.gz
SOURCES/postfix-0.1.tar.gz
SOURCES/selinux-6cd1ec8.tar.gz
SOURCES/storage-1594e25.tar.gz
SOURCES/timesync-924650d.tar.gz

View File

@ -0,0 +1,6 @@
36b200d1c6a8d1cb1ea87e3e9aa8c4f6bbd8155d SOURCES/kdump-0c2bb28.tar.gz
530aaa9302d90c278b9e1c8d8513e516494e3380 SOURCES/network-d5891d4.tar.gz
66c82331f4ac9598c506c3999965b4d07dbfe49d SOURCES/postfix-0.1.tar.gz
246383bd6823533ed3a51a0501b75e38ba852908 SOURCES/selinux-6cd1ec8.tar.gz
aa1c37b04cef831148d9834033fe414156ba62df SOURCES/storage-1594e25.tar.gz
ffd2a706e4e3007684aa9874c8457ad5c8920050 SOURCES/timesync-924650d.tar.gz

View File

@ -0,0 +1,100 @@
diff --git a/tests/commonvars.yml b/tests/commonvars.yml
new file mode 100644
index 0000000..2cd3566
--- /dev/null
+++ b/tests/commonvars.yml
@@ -0,0 +1,2 @@
+restore_services:
+ - kdump
diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml
new file mode 100644
index 0000000..4fe5d36
--- /dev/null
+++ b/tests/get_services_state.yml
@@ -0,0 +1,4 @@
+- name: Get initial state of services
+ tags: tests::cleanup
+ service_facts:
+ register: initial_state
diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml
new file mode 100644
index 0000000..2035dfc
--- /dev/null
+++ b/tests/restore_services_state.yml
@@ -0,0 +1,22 @@
+- block:
+ - name: load common vars
+ include_vars:
+ file: commonvars.yml
+
+ - name: Get final state of services
+ service_facts:
+ register: final_state
+
+ - name: Restore state of services
+ service:
+ name: "{{ item }}"
+ state: "{{ 'started' if
+ initial_state.ansible_facts.services[sname]['state']
+ == 'running' else 'stopped' }}"
+ when:
+ - sname in final_state.ansible_facts.services
+ - sname in initial_state.ansible_facts.services
+ vars:
+ sname: "{{ item + '.service' }}"
+ with_items: "{{ restore_services }}"
+ tags: tests::cleanup
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
index 4c93830..60d7967 100644
--- a/tests/tests_default.yml
+++ b/tests/tests_default.yml
@@ -1,6 +1,18 @@
- name: Ensure that the rule runs with default parameters
+ tags:
+ - 'tests::tier1'
hosts: all
roles:
- kdump
+
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
+ post_tasks:
+ - name: Import tasks
+ 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..617acb3 100644
--- a/tests/tests_default_wrapper.yml
+++ b/tests/tests_default_wrapper.yml
@@ -1,6 +1,9 @@
---
- name: Create static inventory from hostvars
hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::slow'
tasks:
- name: create temporary file
tempfile:
@@ -17,10 +20,16 @@
- name: Run tests_default.yml normally
+ tags:
+ - 'tests::tier1'
+ - 'tests::slow'
import_playbook: tests_default.yml
- name: Run tests_default.yml in check_mode
hosts: all
+ tags:
+ - 'tests::tier1'
+ - '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

6
SOURCES/md2html.sh Normal file
View File

@ -0,0 +1,6 @@
for file in "$@"; do
pandoc -f markdown_github "${file}" -t asciidoc -o "${file%.md}.tmp.adoc" ||exit $?
touch -r "${file}" "${file%.md}.tmp.adoc" ||exit $?
TZ=UTC asciidoc -o "${file%.md}.html" -a footer-style=none -a toc2 -a source-highlighter=highlight "${file%.md}.tmp.adoc" ||exit $?
rm "${file%.md}.tmp.adoc"
done

View File

@ -0,0 +1,6 @@
diff --git a/library/network_connections.py b/library/network_connections.py
old mode 100755
new mode 100644
diff --git a/tests/unit/test_network_connections.py b/tests/unit/test_network_connections.py
old mode 100755
new mode 100644

View File

@ -0,0 +1,551 @@
diff --git a/tests/commonvars.yml b/tests/commonvars.yml
new file mode 100644
index 0000000..50452f7
--- /dev/null
+++ b/tests/commonvars.yml
@@ -0,0 +1,2 @@
+restore_services:
+ - NetworkManager
diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml
new file mode 100644
index 0000000..4fe5d36
--- /dev/null
+++ b/tests/get_services_state.yml
@@ -0,0 +1,4 @@
+- name: Get initial state of services
+ tags: tests::cleanup
+ service_facts:
+ register: initial_state
diff --git a/tests/playbooks/tests_states.yml b/tests/playbooks/tests_states.yml
index 7a1e207..3c1f65d 100644
--- a/tests/playbooks/tests_states.yml
+++ b/tests/playbooks/tests_states.yml
@@ -1,6 +1,8 @@
# SPDX-License-Identifier: BSD-3-Clause
---
- hosts: all
+ tags:
+ - 'tests::tier1'
vars:
interface: statebr
profile: "{{ interface }}"
@@ -22,6 +24,8 @@
ip:
dhcp4: false
auto6: false
+ tags:
+ - 'tests::net::bridge'
- include_tasks: tasks/assert-device_present.yml
- include_tasks: tasks/assert-profile_present.yml
@@ -47,3 +51,28 @@
state: down
- include_tasks: tasks/assert-device_absent.yml
- include_tasks: tasks/assert-profile_absent.yml
+
+ pre_tasks:
+ - name: Save host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: "../save_state.yml"
+
+ post_tasks:
+ - name: Remove test profile
+ tags:
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::bridge::cleanup'
+ import_role:
+ name: linux-system-roles.network
+ vars:
+ network_connections:
+ - name: statebr
+ state: down
+ persistent_state: absent
+
+ - name: Restore host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: "../restore_state.yml"
diff --git a/tests/playbooks/tests_vlan_mtu.yml b/tests/playbooks/tests_vlan_mtu.yml
index ae0322e..bf6e518 100644
--- a/tests/playbooks/tests_vlan_mtu.yml
+++ b/tests/playbooks/tests_vlan_mtu.yml
@@ -1,6 +1,8 @@
# SPDX-License-Identifier: BSD-3-Clause
---
- hosts: all
+ tags:
+ - 'tests::tier1'
vars:
type: veth
interface: lsr101
@@ -10,6 +12,8 @@
- include_tasks: tasks/manage-test-interface.yml
vars:
state: present
+ tags:
+ - 'tests::net::veth'
- include_tasks: tasks/assert-device_present.yml
- name: "TEST: I can configure the MTU for a vlan interface without autoconnect."
debug:
@@ -37,6 +41,8 @@
ip:
dhcp4: false
auto6: false
+ tags:
+ - 'tests::net::reconf'
- include_tasks: tasks/assert-device_present.yml
vars:
interface: "{{ vlan_interface }}"
@@ -61,6 +67,26 @@
persistent_state: absent
state: down
ignore_errors: true
+ tags:
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::veth::cleanup'
- include_tasks: tasks/manage-test-interface.yml
vars:
state: absent
+ tags:
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::veth::cleanup'
+
+ pre_tasks:
+ - name: Save host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: "../save_state.yml"
+
+ post_tasks:
+ - name: Restore host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: "../restore_state.yml"
diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml
new file mode 100644
index 0000000..2035dfc
--- /dev/null
+++ b/tests/restore_services_state.yml
@@ -0,0 +1,22 @@
+- block:
+ - name: load common vars
+ include_vars:
+ file: commonvars.yml
+
+ - name: Get final state of services
+ service_facts:
+ register: final_state
+
+ - name: Restore state of services
+ service:
+ name: "{{ item }}"
+ state: "{{ 'started' if
+ initial_state.ansible_facts.services[sname]['state']
+ == 'running' else 'stopped' }}"
+ when:
+ - sname in final_state.ansible_facts.services
+ - sname in initial_state.ansible_facts.services
+ vars:
+ sname: "{{ item + '.service' }}"
+ with_items: "{{ restore_services }}"
+ tags: tests::cleanup
diff --git a/tests/restore_state.yml b/tests/restore_state.yml
new file mode 100644
index 0000000..f4e3d5f
--- /dev/null
+++ b/tests/restore_state.yml
@@ -0,0 +1,24 @@
+---
+- name: Remove /etc/sysconfig/network if there was no one
+ tags:
+ - 'tests::cleanup'
+ file:
+ path: /etc/sysconfig/network
+ state: absent
+ when:
+ - etc_sysconfig_network_stat is defined
+ - not etc_sysconfig_network_stat.stat.exists
+
+- name: Restore services
+ import_tasks: restore_services_state.yml
+
+- name: reload NetworkManager
+ tags:
+ - 'tests::cleanup'
+ command: nmcli connection reload
+ when:
+ - sname in final_state.ansible_facts.services
+ - sname in initial_state.ansible_facts.services
+ - final_state.ansible_facts.services[sname]['state'] == 'running'
+ vars:
+ sname: NetworkManager.service
diff --git a/tests/save_state.yml b/tests/save_state.yml
new file mode 100644
index 0000000..5690aed
--- /dev/null
+++ b/tests/save_state.yml
@@ -0,0 +1,11 @@
+---
+- name: Get services state
+ import_tasks: get_services_state.yml
+
+- name: Investigate /etc/sysconfig/network presence
+ tags:
+ - 'tests::cleanup'
+ stat:
+ path: /etc/sysconfig/network
+ register: etc_sysconfig_network_stat
+ ignore_errors: yes
diff --git a/tests/tests_bridge.yml b/tests/tests_bridge.yml
index 9ead308..394d392 100644
--- a/tests/tests_bridge.yml
+++ b/tests/tests_bridge.yml
@@ -1,7 +1,17 @@
# SPDX-License-Identifier: BSD-3-Clause
---
+- name: Save host state
+ hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::tier1::cleanup'
+ tasks:
+ - import_tasks: save_state.yml
+
- name: Test configuring bridges
hosts: all
+ tags:
+ - 'tests::tier1'
vars:
interface: LSR-TST-br31
@@ -14,6 +24,9 @@
- name: Add test bridge
hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::net::bridge'
vars:
network_connections:
- name: "{{ interface }}"
@@ -27,24 +40,40 @@
- linux-system-roles.network
- import_playbook: run-tasks.yml
+ tags:
+ - 'tests::tier1'
vars:
task: tasks/assert-device_present.yml
- import_playbook: run-tasks.yml
+ tags:
+ - 'tests::tier1'
vars:
profile: "{{ interface }}"
task: tasks/assert-profile_present.yml
- import_playbook: down-profile.yml
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::bridge::cleanup'
vars:
profile: "{{ interface }}"
# FIXME: assert profile/device down
- import_playbook: remove-profile.yml
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::bridge::cleanup'
vars:
profile: "{{ interface }}"
- import_playbook: run-tasks.yml
+ tags:
+ - 'tests::tier1'
vars:
profile: "{{ interface }}"
task: tasks/assert-profile_absent.yml
@@ -53,3 +82,22 @@
#- import_playbook: run-tasks.yml
# vars:
# task: tasks/assert-device_absent.yml
+
+- name: Remove test bridge
+ hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::bridge::cleanup'
+ tasks:
+ - command: 'ip link delete "{{ interface }}"'
+ ignore_errors: yes
+
+- name: Restore host state
+ hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::tier1::cleanup'
+ tasks:
+ - import_tasks: restore_state.yml
diff --git a/tests/tests_bridge_other_provider.yml b/tests/tests_bridge_other_provider.yml
index e5a4ad7..4d1d2dd 100644
--- a/tests/tests_bridge_other_provider.yml
+++ b/tests/tests_bridge_other_provider.yml
@@ -1,6 +1,8 @@
---
- hosts: all
name: Run playbook 'tests_bridge.yml' with non-default provider
+ tags:
+ - 'tests::tier1'
tasks:
- name: Get service facts
service_facts: null
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
index fda6ed5..0ce3ab9 100644
--- a/tests/tests_default.yml
+++ b/tests/tests_default.yml
@@ -2,5 +2,19 @@
---
- name: Test executing the role with default parameters
hosts: all
+ tags:
+ - 'tests::tier1'
roles:
- linux-system-roles.network
+
+ pre_tasks:
+ - name: Save host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: save_state.yml
+
+ post_tasks:
+ - name: Restore host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: restore_state.yml
diff --git a/tests/tests_default_other_provider.yml b/tests/tests_default_other_provider.yml
index 697bc57..0c70dac 100644
--- a/tests/tests_default_other_provider.yml
+++ b/tests/tests_default_other_provider.yml
@@ -1,6 +1,8 @@
---
- hosts: all
name: Run playbook 'tests_default.yml' with non-default provider
+ tags:
+ - 'tests::tier1'
tasks:
- name: Get service facts
service_facts: null
diff --git a/tests/tests_ethernet.yml b/tests/tests_ethernet.yml
index 25f117d..c85f853 100644
--- a/tests/tests_ethernet.yml
+++ b/tests/tests_ethernet.yml
@@ -1,6 +1,16 @@
# SPDX-License-Identifier: BSD-3-Clause
---
+- name: Save host state
+ hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::tier1::cleanup'
+ tasks:
+ - import_tasks: save_state.yml
+
- hosts: all
+ tags:
+ - 'tests::tier1'
tasks:
- debug:
msg: Inside ethernet tests
@@ -9,6 +19,9 @@
- name: Test configuring ethernet devices
hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::net::veth'
vars:
type: veth
interface: lsr27
@@ -18,6 +31,7 @@
set_fact:
type: "{{ type }}"
interface: "{{ interface }}"
+# cacheable: yes
- include_tasks: tasks/show-interfaces.yml
- include_tasks: tasks/manage-test-interface.yml
vars:
@@ -26,6 +40,9 @@
- name: Test static interface up
hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::net::reconf'
vars:
network_connections:
- name: "{{ interface }}"
@@ -39,6 +56,8 @@
- linux-system-roles.network
- hosts: all
+ tags:
+ - 'tests::tier1'
tasks:
- debug:
var: network_provider
@@ -46,17 +65,38 @@
# FIXME: assert profile present
# FIXME: assert profile/device up + IP address
- import_playbook: down-profile.yml
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
vars:
profile: "{{ interface }}"
# FIXME: assert profile/device down
- import_playbook: remove-profile.yml
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
vars:
profile: "{{ interface }}"
# FIXME: assert profile away
- name: Remove interfaces
hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::cleanup'
+ - 'tests::tier1::cleanup'
+ - 'tests::net::veth::cleanup'
tasks:
- include_tasks: tasks/manage-test-interface.yml
vars:
state: absent
- include_tasks: tasks/assert-device_absent.yml
+
+- name: Restore host state
+ hosts: all
+ tags:
+ - 'tests::tier1'
+ - 'tests::tier1::cleanup'
+ tasks:
+ - import_tasks: restore_state.yml
diff --git a/tests/tests_ethernet_other_provider.yml b/tests/tests_ethernet_other_provider.yml
index 456b052..5a5dbb0 100644
--- a/tests/tests_ethernet_other_provider.yml
+++ b/tests/tests_ethernet_other_provider.yml
@@ -1,6 +1,8 @@
---
- hosts: all
name: Run playbook 'tests_ethernet.yml' with non-default provider
+ tags:
+ - 'tests::tier1'
tasks:
- name: Get service facts
service_facts: null
diff --git a/tests/tests_helpers-and-asserts.yml b/tests/tests_helpers-and-asserts.yml
index 36f02c2..b44599a 100644
--- a/tests/tests_helpers-and-asserts.yml
+++ b/tests/tests_helpers-and-asserts.yml
@@ -2,6 +2,8 @@
---
- name: Check that creating and removing test devices and assertions work
hosts: all
+ tags:
+ - 'tests::tier1'
tasks:
- name: test veth interface management
include_tasks: tasks/create-and-remove-interface.yml
@@ -15,6 +17,18 @@
type: dummy
interface: dummy1298
+ pre_tasks:
+ - name: Save host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: save_state.yml
+
+ post_tasks:
+ - name: Restore host state
+ tags:
+ - 'tests::tier1::cleanup'
+ import_tasks: restore_state.yml
+
# FIXME: when: does not seem to work with include_tasks, therefore this cannot be safely tested for now
# - name: test tap interfaces
# include_tasks: tasks/create-and-remove-interface.yml
diff --git a/tests/tests_states.yml b/tests/tests_states.yml
index eff3436..46cfe87 100644
--- a/tests/tests_states.yml
+++ b/tests/tests_states.yml
@@ -1,6 +1,8 @@
---
# empty playbook to gather facts for import_playbook when clause
- hosts: all
+ tags:
+ - 'tests::tier1'
# workaround for: https://github.com/ansible/ansible/issues/27973
# There is no way in Ansible to abort a playbook hosts with specific OS
diff --git a/tests/tests_unit.yml b/tests/tests_unit.yml
index c6ea4ef..8d56cf4 100644
--- a/tests/tests_unit.yml
+++ b/tests/tests_unit.yml
@@ -2,6 +2,8 @@
---
- hosts: all
name: Setup for test running
+ tags:
+ - 'tests::tier1'
tasks:
- name: Install EPEL on enterprise Linux for python2-mock
command: yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm
@@ -27,6 +29,8 @@
- hosts: all
name: execute python unit tests
+ tags:
+ - 'tests::tier1'
tasks:
- name: Copy python modules
copy:
diff --git a/tests/tests_vlan_mtu_initscripts.yml b/tests/tests_vlan_mtu_initscripts.yml
index a57db4b..d3a48c7 100644
--- a/tests/tests_vlan_mtu_initscripts.yml
+++ b/tests/tests_vlan_mtu_initscripts.yml
@@ -1,6 +1,8 @@
---
# set network provider and gather facts
- hosts: all
+ tags:
+ - 'tests::tier1'
tasks:
- name: Set network provider to 'initscripts'
set_fact:
diff --git a/tests/tests_vlan_mtu_nm.yml b/tests/tests_vlan_mtu_nm.yml
index d830817..68b61b5 100644
--- a/tests/tests_vlan_mtu_nm.yml
+++ b/tests/tests_vlan_mtu_nm.yml
@@ -1,6 +1,8 @@
---
# set network provider and gather facts
- hosts: all
+ tags:
+ - 'tests::tier1'
tasks:
- name: Set network provider to 'nm'
set_fact:

View File

@ -0,0 +1,80 @@
diff --git a/tasks/ssh.yml b/tasks/ssh.yml
index 1a4e858..b05d01a 100644
--- a/tasks/ssh.yml
+++ b/tasks/ssh.yml
@@ -18,3 +18,15 @@
key: "{{ keydata.content|b64decode }}"
state: present
delegate_to: "{{ kdump_ssh_server }}"
+
+- name: Fetch the servers public key
+ slurp:
+ src: /etc/ssh/ssh_host_rsa_key.pub
+ register: serverpubkey
+ delegate_to: "{{ kdump_ssh_server }}"
+
+- name: Add the servers public key to known_hosts on managed node
+ known_hosts:
+ key: "{{ kdump_ssh_server_location }} {{ serverpubkey.content | b64decode }}"
+ name: "{{ kdump_ssh_server_location }}"
+ path: /etc/ssh/ssh_known_hosts
diff --git a/templates/kdump.conf.j2 b/templates/kdump.conf.j2
index bf24210..504ff34 100644
--- a/templates/kdump.conf.j2
+++ b/templates/kdump.conf.j2
@@ -1,12 +1,17 @@
# {{ ansible_managed }}
{% if kdump_target %}
-{{ kdump_target.type }} {{ kdump_target.location }}
-{% endif %}
+{% if kdump_target.type == "ssh" %}
+ssh {{ kdump_target.location | d(kdump_ssh_user ~ '@' ~ kdump_ssh_server) }}
-{% if kdump_target and kdump_target.type == "ssh" and kdump_sshkey != '/root/.ssh/kdump_id_rsa' %}
+{% if kdump_sshkey != '/root/.ssh/kdump_id_rsa' %}
sshkey {{ kdump_sshkey }}
{% endif %}
+{% else %}
+{{ kdump_target.type }} {{ kdump_target.location }}
+
+{% endif %}
+{% endif %}
path {{ kdump_path }}
{% if kdump_core_collector %}
diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml
index 679148e..14a59d9 100644
--- a/tests/tests_ssh.yml
+++ b/tests/tests_ssh.yml
@@ -6,6 +6,11 @@
# known and ansible is supposed to be configured to be able to
# connect to it (via inventory).
kdump_ssh_server_outside: localhost
+ kdump_ssh_source: "{{ ansible_env['SSH_CONNECTION'].split()[0] }}"
+
+ # 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'] }}"
tasks:
- name: gather facts from {{ kdump_ssh_server_outside }}
@@ -25,8 +30,5 @@
type: ssh
# This is the ssh dump server address visible from inside
# the machine being configured. Dumps are to be copied
- # there. We make here the assumption that this machine is
- # being run as a VM and the dump server is the VM host
- # (i.e. for ansible this is localhost). From the VM its
- # address is then identical to the default route.
- location: "{{ kdump_ssh_user }}@{{ ansible_default_ipv4.gateway }}"
+ # there.
+ location: "{{ kdump_ssh_user }}@{{ kdump_ssh_server_inside }}"
diff --git a/vars/main.yml b/vars/main.yml
new file mode 100644
index 0000000..34d2d62
--- /dev/null
+++ b/vars/main.yml
@@ -0,0 +1,2 @@
+# determine the managed node facing ssh server address
+kdump_ssh_server_location: "{{ kdump_target.location | regex_replace('.*@(.*)$', '\\1') if kdump_target.location is defined else kdump_ssh_server }}"

View File

@ -0,0 +1,62 @@
diff --git a/library/network_connections.py b/library/network_connections.py
index 39e81e8..6fa5e2f 100644
--- a/library/network_connections.py
+++ b/library/network_connections.py
@@ -1369,6 +1369,13 @@ class NMUtil:
finally:
ac.handler_disconnect(ac_id)
+ def reapply(self, device, connection=None):
+ version_id = 0
+ flags = 0
+ return Util.call_async_method(
+ device, "reapply", [connection, version_id, flags]
+ )
+
###############################################################################
@@ -2088,6 +2095,9 @@ class Cmd_nm(Cmd):
)
self.connections_data_set_changed(idx)
if self.check_mode == CheckMode.REAL_RUN:
+ if self._try_reapply(idx, con):
+ return
+
try:
ac = self.nmutil.connection_activate(con)
except MyError as e:
@@ -2102,6 +2112,33 @@ class Cmd_nm(Cmd):
except MyError as e:
self.log_error(idx, "up connection failed while waiting: %s" % (e))
+ def _try_reapply(self, idx, con):
+ """ Try to reapply a connection
+
+ If there is exactly one active connection with the same UUID activated
+ on exactly one device, ask the device to reapply the connection.
+
+ :returns: `True`, when the connection was reapplied, `False` otherwise
+ :rtype: bool
+ """
+ NM = Util.NM()
+
+ acons = list(self.nmutil.active_connection_list(connections=[con]))
+ if len(acons) != 1:
+ return False
+
+ active_connection = acons[0]
+ if active_connection.get_state() == NM.ActiveConnectionState.ACTIVATED:
+ devices = active_connection.get_devices()
+ if len(devices) == 1:
+ try:
+ self.nmutil.reapply(devices[0])
+ self.log_info(idx, "connection reapplied")
+ return True
+ except MyError as error:
+ self.log_info(idx, "connection reapply failed: %s" % (error))
+ return False
+
def run_action_down(self, idx):
connection = self.connections[idx]

View File

@ -0,0 +1,83 @@
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-vlan.yml b/examples/eth-with-vlan.yml
--- a/examples/eth-with-vlan.yml 2018-08-21 20:47:38.000000000 +0200
+++ b/examples/eth-with-vlan.yml 2018-11-06 22:29:14.591770335 +0100
@@ -26,4 +26,4 @@
- "192.0.2.{{ network_iphost }}/24"
roles:
- - linux-system-roles.network
+ - rhel-system-roles.network
diff --git a/examples/infiniband.yml b/examples/infiniband.yml
--- a/examples/infiniband.yml 2018-08-21 20:47:38.000000000 +0200
+++ b/examples/infiniband.yml 2018-11-06 22:29:14.591770335 +0100
@@ -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
--- 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/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/ethtool-features.yml b/examples/ethtool-features.yml
index d8842c2..b32ad0b 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 }}"

View File

@ -0,0 +1,40 @@
diff --git a/README.md b/README.md
index 5950215..df64284 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ Example Playbook
Install and enable postfix. Configure "relay_domains=$mydestination" and
-```
+```yaml
---
- hosts: all
vars:
@@ -31,7 +31,7 @@ Install and enable postfix. Configure "relay_domains=$mydestination" and
Install and enable postfix. Do not run 'postfix check' before restarting
postfix:
-```
+```yaml
---
- hosts: all
vars:
@@ -43,7 +43,7 @@ postfix:
Install and enable postfix. Do single backup of main.cf (older backup will be
rewritten) and configure "relay_host=example.com":
-```
+```yaml
---
- hosts: all
vars:
@@ -58,7 +58,7 @@ Install and enable postfix. Do timestamped backup of main.cf and
configure "relay_host=example.com" (if postfix_backup_multiple is
set to true postfix_backup is ignored):
-```
+```yaml
---
- hosts: all
vars:

View File

@ -0,0 +1,40 @@
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
```

View File

@ -0,0 +1,32 @@
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

View File

@ -0,0 +1,13 @@
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:

View File

@ -0,0 +1,46 @@
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

View File

@ -0,0 +1,176 @@
diff --git a/tests/set_selinux_variables.yml b/tests/set_selinux_variables.yml
index f294101..7571066 100644
--- a/tests/set_selinux_variables.yml
+++ b/tests/set_selinux_variables.yml
@@ -1,4 +1,12 @@
---
+- name: Install SELinux tool semanage on Fedora
+ package:
+ name:
+ - policycoreutils-python-utils
+ state: present
+ when: ansible_distribution == "Fedora" or
+ ( ansible_distribution_major_version > "7" and
+ ( ansible_distribution == "CentOS" or ansible_distribution == "RedHat" ))
- name: Get local modifications - boolean
command: /usr/sbin/semanage boolean -l -n -C
register: selinux_role_boolean
diff --git a/tests/tests_boolean.yml b/tests/tests_boolean.yml
index 47eafc0..ca85922 100644
--- a/tests/tests_boolean.yml
+++ b/tests/tests_boolean.yml
@@ -1,5 +1,6 @@
- name: Check if selinux role sets SELinux booleans
+ tags: [ 'tests::tier1', 'tests::expfail' ]
hosts: all
become: true
@@ -12,7 +13,7 @@
selinux_booleans:
- { name: 'samba_enable_home_dirs', state: 'on', persistent: 'yes' }
- - include: set_selinux_variables.yml
+ - import_tasks: set_selinux_variables.yml
- name: save state after initial changes and before other changes
set_fact:
boolean_before: "{{ selinux_role_boolean.stdout_lines }}"
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
index a837c73..25bf39d 100644
--- a/tests/tests_default.yml
+++ b/tests/tests_default.yml
@@ -1,5 +1,6 @@
- name: Ensure that the role runs with default parameters
+ tags: tests::tier1
hosts: all
roles:
diff --git a/tests/tests_default_vars.yml b/tests/tests_default_vars.yml
index b6a6b5a..7cd321d 100644
--- a/tests/tests_default_vars.yml
+++ b/tests/tests_default_vars.yml
@@ -1,4 +1,5 @@
- name: Ensure that the role declares all paremeters in defaults
+ tags: tests::tier1
hosts: all
roles:
diff --git a/tests/tests_fcontext.yml b/tests/tests_fcontext.yml
index 0a411fb..f4a3923 100644
--- a/tests/tests_fcontext.yml
+++ b/tests/tests_fcontext.yml
@@ -1,5 +1,6 @@
- name: Check if selinux role sets SELinux fcontext mappings
+ tags: tests::tier1
hosts: all
become: true
@@ -13,7 +14,7 @@
selinux_fcontexts:
- { target: '/tmp/test_dir1(/.*)?', setype: 'user_home_dir_t', ftype: 'd' }
- - include: set_selinux_variables.yml
+ - import_tasks: set_selinux_variables.yml
- name: save state after initial changes and before other changes
set_fact:
fcontext_before: "{{ selinux_role_fcontext.stdout }}"
diff --git a/tests/tests_login.yml b/tests/tests_login.yml
index efa826d..e4f55ca 100644
--- a/tests/tests_login.yml
+++ b/tests/tests_login.yml
@@ -1,5 +1,6 @@
- name: Check if selinux role sets SELinux login mappings
+ tags: tests::tier1
hosts: all
become: true
@@ -18,7 +19,7 @@
- { 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
set_fact:
login_before: "{{ selinux_role_login.stdout }}"
diff --git a/tests/tests_port.yml b/tests/tests_port.yml
index 446f79d..03276b5 100644
--- a/tests/tests_port.yml
+++ b/tests/tests_port.yml
@@ -1,5 +1,6 @@
- name: Check if selinux role sets SELinux port mapping
+ tags: tests::tier1
hosts: all
become: true
@@ -29,7 +30,7 @@
selinux_ports:
- { ports: '22022', proto: 'tcp', setype: 'ssh_port_t', state: 'present' }
- - include: set_selinux_variables.yml
+ - import_tasks: set_selinux_variables.yml
- name: save state after other changes
set_fact:
port_after: "{{ selinux_role_port.stdout }}"
diff --git a/tests/tests_selinux_disabled.yml b/tests/tests_selinux_disabled.yml
index afd23e4..d30de2b 100644
--- a/tests/tests_selinux_disabled.yml
+++ b/tests/tests_selinux_disabled.yml
@@ -18,7 +19,9 @@
name:
- policycoreutils-python-utils
state: present
- when: ansible_distribution == "Fedora"
+ when: ansible_distribution == "Fedora" or
+ ( ansible_distribution_major_version > "7" and
+ ( ansible_distribution == "CentOS" or ansible_distribution == "RedHat" ))
- name: Add a Linux System Roles SELinux User
user:
@@ -67,17 +71,28 @@
assert:
that: "{{ ansible_selinux.config_mode == 'enforcing' }}"
msg: "SELinux config mode should be enforcing instead of {{ ansible_selinux.config_mode }}"
- - name: Restore original /etc/selinux/config
- copy:
- remote_src: true
- dest: /etc/selinux/config
- src: /etc/selinux/config.test_selinux_disabled
- - name: Remove /etc/selinux/config backup
- file:
- path: /etc/selinux/config.test_selinux_disabled
- state: absent
- - name: Remove Linux System Roles SELinux User
- user:
- name: sar-user
- remove: yes
- state: absent
+
+ - name: Cleanup
+ tags: [ 'tests::cleanup' ]
+ block:
+ - name: Restore original /etc/selinux/config
+ copy:
+ remote_src: true
+ dest: /etc/selinux/config
+ src: /etc/selinux/config.test_selinux_disabled
+
+ - name: Remove /etc/selinux/config backup
+ file:
+ path: /etc/selinux/config.test_selinux_disabled
+ state: absent
+
+ - name: Remove Linux System Roles SELinux User
+ user:
+ name: sar-user
+ remove: yes
+ state: absent
+
+ - import_role:
+ name: selinux
+ vars:
+ selinux_all_purge: true

View File

@ -0,0 +1,404 @@
diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml
new file mode 100644
index 0000000..4fe5d36
--- /dev/null
+++ b/tests/get_services_state.yml
@@ -0,0 +1,4 @@
+- name: Get initial state of services
+ tags: tests::cleanup
+ service_facts:
+ register: initial_state
diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml
new file mode 100644
index 0000000..3d48975
--- /dev/null
+++ b/tests/restore_services_state.yml
@@ -0,0 +1,19 @@
+- name: Get final state of services
+ tags: tests::cleanup
+ service_facts:
+ register: final_state
+
+- name: Restore state of services
+ tags: tests::cleanup
+ service:
+ name: "{{ item }}"
+ state: "{{ 'started' if initial_state.ansible_facts.services[item + '.service']['state'] == 'running' else 'stopped' }}"
+ when:
+ - item + '.service' in final_state.ansible_facts.services
+ - item + '.service' in initial_state.ansible_facts.services
+ with_items:
+ - chronyd
+ - ntpd
+ - ptp4l
+ - phc2sys
+ - timemaster
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
index 856ebe5..fb298c9 100644
--- a/tests/tests_default.yml
+++ b/tests/tests_default.yml
@@ -1,6 +1,17 @@
- name: Ensure that the role runs with default parameters
+ tags: tests::tier1
hosts: all
roles:
- linux-system-roles.timesync
+
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
+ post_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_default_vars.yml b/tests/tests_default_vars.yml
index 366a9f5..df989a5 100644
--- a/tests/tests_default_vars.yml
+++ b/tests/tests_default_vars.yml
@@ -1,5 +1,6 @@
---
- name: Ensure that the role declares all parameters in defaults
+ tags: tests::tier1
hosts: all
tasks:
diff --git a/tests/tests_default_wrapper.yml b/tests/tests_default_wrapper.yml
index a768f4c..b0c0ab3 100644
--- a/tests/tests_default_wrapper.yml
+++ b/tests/tests_default_wrapper.yml
@@ -1,5 +1,8 @@
---
- name: Create static inventory from hostvars
+ tags:
+ - 'tests::tier1'
+ - 'tests::slow'
hosts: all
tasks:
- name: create temporary file
@@ -17,9 +20,15 @@
- name: Run tests_default.yml normally
+ tags:
+ - 'tests::tier1'
+ - 'tests::slow'
import_playbook: tests_default.yml
- name: Run tests_default.yml in check_mode
+ tags:
+ - 'tests::tier1'
+ - 'tests::slow'
hosts: all
tasks:
- name: Run ansible-playbook with tests_default.yml in check mode
diff --git a/tests/tests_ntp.yml b/tests/tests_ntp.yml
index e4b1b5e..446f1dc 100644
--- a/tests/tests_ntp.yml
+++ b/tests/tests_ntp.yml
@@ -1,5 +1,6 @@
- name: Configure time synchronization with NTP servers
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -18,6 +19,11 @@
roles:
- linux-system-roles.timesync
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
tasks:
- meta: flush_handlers
@@ -35,3 +41,8 @@
- "'172.16.123.1' in sources.stdout"
- "'172.16.123.2' in sources.stdout"
- "'172.16.123.3' in sources.stdout"
+
+ post_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider1.yml b/tests/tests_ntp_provider1.yml
index 08ecab9..9fe0db3 100644
--- a/tests/tests_ntp_provider1.yml
+++ b/tests/tests_ntp_provider1.yml
@@ -1,5 +1,6 @@
- name: Configure NTP with default provider
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -8,6 +9,10 @@
- linux-system-roles.timesync
pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Remove NTP providers
package: name={{ item }} state=absent
with_items:
@@ -27,3 +32,7 @@
assert:
that:
- "'172.16.123.1' in sources.stdout"
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider2.yml b/tests/tests_ntp_provider2.yml
index 5476ae4..e0d5c96 100644
--- a/tests/tests_ntp_provider2.yml
+++ b/tests/tests_ntp_provider2.yml
@@ -1,5 +1,6 @@
- name: Configure NTP with chrony as current provider
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -8,6 +9,10 @@
- linux-system-roles.timesync
pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Remove ntp
package: name=ntp state=absent
@@ -29,3 +34,7 @@
- name: Check chronyd service
shell: chronyc -n tracking
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider3.yml b/tests/tests_ntp_provider3.yml
index 44ca101..d440a64 100644
--- a/tests/tests_ntp_provider3.yml
+++ b/tests/tests_ntp_provider3.yml
@@ -1,5 +1,6 @@
- name: Configure NTP with ntp as current provider
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -8,6 +9,10 @@
- linux-system-roles.timesync
pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Remove chrony
package: name=chrony state=absent
@@ -29,3 +34,7 @@
- name: Check ntpd service
shell: ntpq -c rv | grep 'associd=0'
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider4.yml b/tests/tests_ntp_provider4.yml
index 8b452b8..8bccba0 100644
--- a/tests/tests_ntp_provider4.yml
+++ b/tests/tests_ntp_provider4.yml
@@ -1,5 +1,6 @@
- name: Configure NTP with chrony as specified provider
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -9,6 +10,10 @@
- linux-system-roles.timesync
pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Install chrony
package: name=chrony state=present
register: package_install
@@ -27,3 +32,7 @@
- name: Check chronyd service
shell: chronyc -n tracking
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider5.yml b/tests/tests_ntp_provider5.yml
index 1740164..98a054f 100644
--- a/tests/tests_ntp_provider5.yml
+++ b/tests/tests_ntp_provider5.yml
@@ -1,5 +1,6 @@
- name: Configure NTP with ntp as specified provider
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -9,6 +10,10 @@
- linux-system-roles.timesync
pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Install ntp
package: name=ntp state=present
register: package_install
@@ -27,3 +32,7 @@
- name: Check ntpd service
shell: ntpq -c rv | grep 'associd=0'
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_provider6.yml b/tests/tests_ntp_provider6.yml
index 21a2039..fb41824 100644
--- a/tests/tests_ntp_provider6.yml
+++ b/tests/tests_ntp_provider6.yml
@@ -1,11 +1,16 @@
- name: Configure NTP with OS release non-default provider and then change it to the default provider
+ tags: tests::tier1
hosts: all
vars:
is_ntp_default: "ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_version is version('7.0', '<')"
both_avail: true
tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
- name: Check for availability of both NTP providers
package: name={{ item }} state=present
register: package_install
@@ -71,3 +76,7 @@
shell: chronyc -n tracking
when:
- not is_ntp_default
+
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ntp_ptp.yml b/tests/tests_ntp_ptp.yml
index cab706f..7f4cdfc 100644
--- a/tests/tests_ntp_ptp.yml
+++ b/tests/tests_ntp_ptp.yml
@@ -1,5 +1,6 @@
- name: Configure time synchronization with NTP servers and PTP domains
+ tags: tests::tier1
hosts: all
vars:
timesync_ntp_servers:
@@ -22,6 +23,11 @@
roles:
- linux-system-roles.timesync
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
tasks:
- meta: flush_handlers
@@ -48,3 +54,8 @@
- "'PTP1' in sources.stdout"
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
+
+ post_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ptp_multi.yml b/tests/tests_ptp_multi.yml
index d52d439..936e467 100644
--- a/tests/tests_ptp_multi.yml
+++ b/tests/tests_ptp_multi.yml
@@ -1,5 +1,6 @@
- name: Configure time synchronization with multiple PTP domains
+ tags: [ 'tests::tier1', 'tests::expfail' ]
hosts: all
vars:
timesync_ptp_domains:
@@ -16,6 +17,11 @@
roles:
- linux-system-roles.timesync
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
tasks:
- meta: flush_handlers
@@ -58,3 +64,8 @@
- "'domainNumber 1' in pmc.stdout"
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
+
+ post_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml
diff --git a/tests/tests_ptp_single.yml b/tests/tests_ptp_single.yml
index 74da310..36d141e 100644
--- a/tests/tests_ptp_single.yml
+++ b/tests/tests_ptp_single.yml
@@ -1,5 +1,6 @@
- name: Configure time synchronization with single PTP domain
+ tags: [ 'tests::tier1', 'tests::expfail' ]
hosts: all
vars:
timesync_ptp_domains:
@@ -8,6 +9,11 @@
roles:
- linux-system-roles.timesync
+ pre_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: get_services_state.yml
+
tasks:
- meta: flush_handlers
@@ -31,3 +37,8 @@
- "'domainNumber 3' in pmc.stdout"
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
+
+ post_tasks:
+ - name: Import tasks
+ tags: tests::tier1::cleanup
+ import_tasks: restore_services_state.yml

View File

@ -0,0 +1,426 @@
%if 0%{?rhel}
Name: rhel-system-roles
%else
Name: linux-system-roles
%endif
Summary: Set of interfaces for unified system management
Version: 1.0
Release: 9%{?dist}
#Group: Development/Libraries
License: GPLv3+ and MIT and BSD
%if 0%{?rhel}
%global rolealtprefix linux-system-roles.
%endif
%global roleprefix %{name}.
# 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})
}
%define deftag() %{expand:%%global id%{1} %{2}
%%global shortid%{1} %{2}
}
%defcommit 0 0c2bb286bbc1b73d728226924e0010c0fa1ce30a
%global rolename0 kdump
#%%deftag 0 1.0.0
#%%defcommit 1 43eec5668425d295dce3801216c19b1916df1f9b
%global rolename1 postfix
%deftag 1 0.1
%defcommit 2 6cd1ec8fdebdb92a789b14e5a44fe77f0a3d8ecd
%global rolename2 selinux
#%%deftag 2 1.0.0
%defcommit 3 924650d0cd4117f73a7f0413ab745a8632bc5cec
%global rolename3 timesync
#%%deftag 3 1.0.0
%defcommit 5 d5891d43a2ddc8cb6278958a6ad19524dcbf72ff
%global rolename5 network
#%%deftag 5 1.0.0
%defcommit 6 1594e2527c4eca0fa2876d4cc3ff6395ed280b8d
%global rolename6 storage
#%%deftag 6 1.0.2
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
Source8: 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
%endif
Patch11: rhel-system-roles-postfix-pr5.diff
Patch101: rhel-system-roles-kdump-pr22.diff
Patch102: kdump-tier1-tags.diff
Patch21: selinux-tier1-tags.diff
Patch31: timesync-tier1-tags.diff
Patch52: network-permissions.diff
Patch53: network-tier1-tags.diff
Patch54: rhel-system-roles-network-pr121.diff
Url: https://github.com/linux-system-roles/
BuildArch: noarch
BuildRequires: asciidoc
BuildRequires: pandoc
BuildRequires: highlight
Requires: python3-jmespath
Obsoletes: rhel-system-roles-techpreview < 1.0-3
# We need to put %%description within the if block to avoid empty
# lines showing up.
%if 0%{?rhel}
%description
Collection of Ansible roles and modules that provide a stable and
consistent configuration interface for managing multiple versions
of Red Hat Enterprise Linux.