diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..869ff4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +SOURCES/kdump-0.1.tar.gz +SOURCES/network-0.2.tar.gz +SOURCES/postfix-0.1.tar.gz +SOURCES/selinux-0.1.tar.gz +SOURCES/timesync-0.1.tar.gz diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata new file mode 100644 index 0000000..4d6e0b7 --- /dev/null +++ b/.rhel-system-roles.metadata @@ -0,0 +1,5 @@ +f565f627f199d146cda3404de5b65c5f50e3702a SOURCES/kdump-0.1.tar.gz +6607de79cb39c89b25d058e3c84455f4e3a51bef SOURCES/network-0.2.tar.gz +66c82331f4ac9598c506c3999965b4d07dbfe49d SOURCES/postfix-0.1.tar.gz +b25009fdba1af0c1eec922df01f38d85ffb401f9 SOURCES/selinux-0.1.tar.gz +47b5287fbbf4e268414d28d503fe9be8b72c7747 SOURCES/timesync-0.1.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/rhel-system-roles-network-prefix.diff b/SOURCES/rhel-system-roles-network-prefix.diff new file mode 100644 index 0000000..350c8c1 --- /dev/null +++ b/SOURCES/rhel-system-roles-network-prefix.diff @@ -0,0 +1,40 @@ +diff --git a/examples/bond-with-vlan.yml b/examples/bond-with-vlan.yml +index d120f13..fdabb75 100644 +--- a/examples/bond-with-vlan.yml ++++ b/examples/bond-with-vlan.yml +@@ -34,4 +34,4 @@ + - "192.168.174.{{ network_iphost }}/24" + + roles: +- - network ++ - rhel-system-roles.network +diff --git a/examples/bridge-with-vlan.yml b/examples/bridge-with-vlan.yml +index ce48443..19c4303 100644 +--- a/examples/bridge-with-vlan.yml ++++ b/examples/bridge-with-vlan.yml +@@ -32,4 +32,4 @@ + - "192.168.174.{{ network_iphost }}/24" + + roles: +- - network ++ - rhel-system-roles.network +diff --git a/examples/eth-simple-auto.yml b/examples/eth-simple-auto.yml +index 5934ca8..aaaa114 100644 +--- a/examples/eth-simple-auto.yml ++++ b/examples/eth-simple-auto.yml +@@ -14,4 +14,4 @@ + mtu: 1450 + + roles: +- - network ++ - rhel-system-roles.network +diff --git a/examples/eth-with-vlan.yml b/examples/eth-with-vlan.yml +index d269886..b9bac22 100644 +--- a/examples/eth-with-vlan.yml ++++ b/examples/eth-with-vlan.yml +@@ -24,4 +24,4 @@ + - "192.168.174.{{ network_iphost }}/24" + + roles: +- - network ++ - rhel-system-roles.network diff --git a/SOURCES/rhel-system-roles-network-rfc7042.diff b/SOURCES/rhel-system-roles-network-rfc7042.diff new file mode 100644 index 0000000..c028d5e --- /dev/null +++ b/SOURCES/rhel-system-roles-network-rfc7042.diff @@ -0,0 +1,38 @@ +From f3ead892403929d71aa284287a8ca22353ab6b95 Mon Sep 17 00:00:00 2001 +From: Pavel Cahyna +Date: Fri, 23 Jun 2017 16:20:00 +0200 +Subject: [PATCH] Use proper reserved MAC addresses for documentation, + according to RFC 7042. + +--- + README.md | 2 +- + examples/inventory | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/README.md b/README.md +index 8b92202..21a5c28 100644 +--- a/README.md ++++ b/README.md +@@ -100,7 +100,7 @@ network_connections: + #state: present # default, as a type is present + type: "ethernet" + autoconnect: yes +- mac: "d6:06:b9:56:12:5d" ++ mac: "00:00:5e:00:53:5d" + ip: + dhcp4: yes + ``` +diff --git a/examples/inventory b/examples/inventory +index 645fdf6..94ffdfe 100644 +--- a/examples/inventory ++++ b/examples/inventory +@@ -1,4 +1,4 @@ + # an inventory for the examples. + [network-test] +-v-rhel6 ansible_user=root network_iphost=196 network_mac1=52:54:00:44:9f:ba network_interface_name1=eth0 network_interface_name2=eth1 +-v-rhel7 ansible_user=root network_iphost=97 network_mac1=52:54:00:05:f5:b3 network_interface_name1=eth0 network_interface_name2=eth1 ++v-rhel6 ansible_user=root network_iphost=196 network_mac1=00:00:5e:00:53:00 network_interface_name1=eth0 network_interface_name2=eth1 ++v-rhel7 ansible_user=root network_iphost=97 network_mac1=00:00:5e:00:53:01 network_interface_name1=eth0 network_interface_name2=eth1 +-- +2.9.4 + diff --git a/SOURCES/rhel-system-roles-postfix-prefix.diff b/SOURCES/rhel-system-roles-postfix-prefix.diff new file mode 100644 index 0000000..3f516e8 --- /dev/null +++ b/SOURCES/rhel-system-roles-postfix-prefix.diff @@ -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 ++ - rhel-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 ++ - rhel-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 ++ - rhel-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 ++ - rhel-system-roles.postfix + ``` + + diff --git a/SOURCES/rhel-system-roles-selinux-prefix.diff b/SOURCES/rhel-system-roles-selinux-prefix.diff new file mode 100644 index 0000000..b31d6c9 --- /dev/null +++ b/SOURCES/rhel-system-roles-selinux-prefix.diff @@ -0,0 +1,23 @@ +diff --git a/README.md b/README.md +index 80bcf89..cf8cb1b 100644 +--- a/README.md ++++ b/README.md +@@ -42,7 +42,7 @@ This role can be configured using variables as it is described bellow. + vars: + [ see bellow ] + roles: +- - role: selinux ++ - role: rhel-system-roles.selinux + become: true + ``` + +diff --git a/selinux-playbook.yml b/selinux-playbook.yml +index 28e072c..a5dad27 100644 +--- a/selinux-playbook.yml ++++ b/selinux-playbook.yml +@@ -31,4 +31,4 @@ + name: sar-user + + roles: +- - selinux ++ - rhel-system-roles.selinux diff --git a/SOURCES/rhel-system-roles-timesync-prefix.diff b/SOURCES/rhel-system-roles-timesync-prefix.diff new file mode 100644 index 0000000..e030816 --- /dev/null +++ b/SOURCES/rhel-system-roles-timesync-prefix.diff @@ -0,0 +1,29 @@ +diff --git a/README.md b/README.md +index f419e0b..0d2112d 100644 +--- a/README.md ++++ b/README.md +@@ -64,7 +64,7 @@ Install and configure ntp to synchronize the system clock with three NTP servers + - hostname: baz.example.com + iburst: yes + roles: +- - timesync ++ - rhel-system-roles.timesync + ``` + + Install and configure linuxptp to synchronize the system clock with a +@@ -77,7 +77,7 @@ grandmaster in PTP domain number 0, which is accessible on interface eth0: + - number: 0 + interfaces: [ eth0 ] + roles: +- - timesync ++ - rhel-system-roles.timesync + ``` + + Install and configure chrony and linuxptp to synchronize the system clock with +@@ -104,5 +104,5 @@ synchronization: + transport: UDPv4 + delay: 0.000010 + roles: +- - timesync ++ - rhel-system-roles.timesync + ``` diff --git a/SOURCES/timesync-playbook.yml b/SOURCES/timesync-playbook.yml new file mode 100644 index 0000000..771f91a --- /dev/null +++ b/SOURCES/timesync-playbook.yml @@ -0,0 +1,14 @@ +--- +- hosts: targets + vars: + ntp_servers: + - hostname: 0.rhel.pool.ntp.org + iburst: yes + - hostname: 1.rhel.pool.ntp.org + iburst: yes + - hostname: 2.rhel.pool.ntp.org + iburst: yes + - hostname: 3.rhel.pool.ntp.org + iburst: yes + roles: + - rhel-system-roles.timesync diff --git a/SOURCES/timesync-pool-playbook.yml b/SOURCES/timesync-pool-playbook.yml new file mode 100644 index 0000000..ebfb0b9 --- /dev/null +++ b/SOURCES/timesync-pool-playbook.yml @@ -0,0 +1,9 @@ +--- +- hosts: targets + vars: + ntp_servers: + - hostname: 2.rhel.pool.ntp.org + pool: yes + iburst: yes + roles: + - rhel-system-roles.timesync diff --git a/SPECS/rhel-system-roles.spec b/SPECS/rhel-system-roles.spec new file mode 100644 index 0000000..5b2770a --- /dev/null +++ b/SPECS/rhel-system-roles.spec @@ -0,0 +1,189 @@ +Name: rhel-system-roles +Summary: Set of interfaces for unified system management +Version: 0.2 +Release: 2%{?dist} + +#Group: Development/Libraries +License: GPLv3+ and MIT and BSD +%global roleauthor rhel-system-roles +%global roleprefix %{roleauthor}. + +%global commit0 fe8bb81966b60fa8979f3816a12b0c7120d71140 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) +%global rolename0 kdump +%global version0 0.1 + +%global commit1 43eec5668425d295dce3801216c19b1916df1f9b +%global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) +%global rolename1 postfix +%global version1 0.1 + +%global commit2 1e4a21f929455e5e76dda0b12867abaa63795ae7 +%global shortcommit2 %(c=%{commit2}; echo ${c:0:7}) +%global rolename2 selinux +%global version2 0.1 + +%global commit3 33a1a8c349de10d6281ed83d4c791e9177d7a141 +%global shortcommit3 %(c=%{commit3}; echo ${c:0:7}) +%global rolename3 timesync +%global version3 0.1 + +%global commit5 03ff040df78a14409a0d89eba1235b8f3e50a750 +%global shortcommit5 %(c=%{commit5}; echo ${c:0:7}) +%global rolename5 network +%global version5 0.2 + + +Source: https://github.com/linux-system-roles/%{rolename0}/archive/%{version0}.tar.gz#/%{rolename0}-%{version0}.tar.gz +Source1: https://github.com/linux-system-roles/%{rolename1}/archive/%{version1}.tar.gz#/%{rolename1}-%{version1}.tar.gz +Source2: https://github.com/linux-system-roles/%{rolename2}/archive/%{version2}.tar.gz#/%{rolename2}-%{version2}.tar.gz +Source3: https://github.com/linux-system-roles/%{rolename3}/archive/%{version3}.tar.gz#/%{rolename3}-%{version3}.tar.gz +Source5: https://github.com/linux-system-roles/%{rolename5}/archive/%{version5}.tar.gz#/%{rolename5}-%{version5}.tar.gz +Source6: timesync-playbook.yml +Source7: timesync-pool-playbook.yml + +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-network-rfc7042.diff + +Url: https://github.com/linux-system-roles/ +BuildArch: noarch + +Requires: ansible + +%description +Collection of interfaces serving as a stable API for the management +of the RHEL operating system across major releases, implemented +using Ansible. + + +%prep +%setup -qc -b1 -b2 -b3 -b5 +cd %{rolename1}-%{version1} +%patch1 -p1 +cd .. +cd %{rolename2}-%{version2} +%patch2 -p1 +cd .. +cd %{rolename3}-%{version3} +%patch3 -p1 +cd .. +cd %{rolename5}-%{version5} +%patch5 -p1 +%patch6 -p1 +cd .. + +%build + +%install +mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles + +cp -pR %{rolename0}-%{version0} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename0} +cp -pR %{rolename1}-%{version1} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename1} +cp -pR %{rolename2}-%{version2} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename2} +cp -pR %{rolename3}-%{version3} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename3} +cp -pR %{rolename5}-%{version5} $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}%{rolename5} + +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/kdump +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/postfix +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/selinux +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/timesync +install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_pkgdocdir}/timesync/example-timesync-playbook.yml +install -p -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_pkgdocdir}/timesync/example-timesync-pool-playbook.yml +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/network + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kdump/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}kdump/COPYING \ + $RPM_BUILD_ROOT%{_pkgdocdir}/kdump + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}postfix/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}postfix/COPYING \ + $RPM_BUILD_ROOT%{_pkgdocdir}/postfix + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}selinux/COPYING \ + $RPM_BUILD_ROOT%{_pkgdocdir}/selinux +mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}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/COPYING \ + $RPM_BUILD_ROOT%{_pkgdocdir}/timesync + +cp -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/README.md \ + $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/COPYING \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network +mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}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 \ + $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 \ + $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 \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-eth-with-vlan-playbook.yml +mv $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/inventory \ + $RPM_BUILD_ROOT%{_pkgdocdir}/network/example-inventory + +rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/.gitignore +rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/test/.gitignore +rm $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/roles/network +rmdir $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples/roles +rmdir $RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{roleprefix}network/examples + +%files +%{_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 +%doc %{_pkgdocdir}/*/example-*-playbook.yml +%doc %{_pkgdocdir}/network/example-inventory +%doc %{_pkgdocdir}/*/README.md +%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 + + +%license %{_pkgdocdir}/*/COPYING +%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/COPYING + +%changelog +* Mon Jun 26 2017 Pavel Cahyna - 0.2-2 +- Leave a copy of README and COPYING in every role's directory, as suggested by T. Bowling. +- Move the network example inventory to the documentation directory together. + with the example playbooks and delete the now empty "examples" directory. +- Use proper reserved (by RFC 7042) MAC addresses in the network examples. + +* Tue Jun 6 2017 Pavel Cahyna - 0.2-1 +- Update the networking role to version 0.2 (#1459203) +- Version every role and the package separately. They live in separate repos + and upstream release tags are not coordinated. + +* Mon May 22 2017 Pavel Cahyna - 0.1-2 +- Prefix the roles in examples and documentation with rhel-system-roles. + +* Thu May 18 2017 Pavel Cahyna - 0.1-1 +- Update to 0.1 (first upstream release). +- Remove the tuned role, it is not ready yet. +- Move the example playbooks to /usr/share/doc/rhel-system-roles/$SUBSYSTEM + directly to get rid of an extra directory. +- Depend on ansible. + +* Thu May 4 2017 Pavel Cahyna - 0-0.1.20170504 +- Initial release. +- kdump r. fe8bb81966b60fa8979f3816a12b0c7120d71140 +- postfix r. 43eec5668425d295dce3801216c19b1916df1f9b +- selinux r. 1e4a21f929455e5e76dda0b12867abaa63795ae7 +- timesync r. 33a1a8c349de10d6281ed83d4c791e9177d7a141 +- tuned r. 2e8bb068b9815bc84287e9b6dc6177295ffdf38b +- network r. 03ff040df78a14409a0d89eba1235b8f3e50a750 +