1 |
%define ppconfdir conf/redhat |
2 |
|
3 |
Name: puppet |
4 |
Version: 7.12.1 |
5 |
Release: %mkrel 1 |
6 |
Summary: System Automation and Configuration Management Software |
7 |
License: Apache Software License |
8 |
Group: Monitoring |
9 |
URL: http://www.puppetlabs.com/ |
10 |
Source0: http://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz |
11 |
Source100: puppet.service |
12 |
Source101: puppetmaster.service |
13 |
Source102: %{name}-tmpfiles.conf |
14 |
#Patch7: puppet-4.2.1-replace-opt-with-usr-lib.patch |
15 |
|
16 |
BuildArch: noarch |
17 |
BuildRequires: ruby |
18 |
BuildRequires: ruby-hiera |
19 |
BuildRequires: facter |
20 |
Requires: ruby |
21 |
Requires: ruby-semantic_puppet |
22 |
Requires: facter |
23 |
Requires(post): systemd >= %{systemd_required_version} |
24 |
Requires(pre): rpm-helper |
25 |
Requires(post): rpm-helper |
26 |
Requires(preun):rpm-helper |
27 |
Obsoletes: puppet3 |
28 |
Obsoletes: ruby-hiera-puppet <= 1.0.0 |
29 |
Obsoletes: ruby-hiera-puppet-doc <= 1.0.0 |
30 |
|
31 |
%description |
32 |
Puppet lets you centrally manage every important aspect of your system using a |
33 |
cross-platform specification language that manages all the separate elements |
34 |
normally aggregated in different files, like users, cron jobs, and hosts, |
35 |
along with obviously discrete elements like packages, services, and files. |
36 |
|
37 |
This package provide the puppet client daemon. |
38 |
|
39 |
%package server |
40 |
Group: Monitoring |
41 |
Summary: Server for the puppet system management tool |
42 |
Requires: %{name} = %{version} |
43 |
Requires(post): rpm-helper |
44 |
Requires(preun):rpm-helper |
45 |
Obsoletes: puppet3-server |
46 |
|
47 |
%description server |
48 |
Provides the central puppet server daemon (puppetmaster) which provides |
49 |
manifests to clients. |
50 |
The server can also function as a certificate authority and file server. |
51 |
|
52 |
%prep |
53 |
%setup -q |
54 |
%autopatch -p1 |
55 |
|
56 |
%build |
57 |
|
58 |
%install |
59 |
ruby install.rb \ |
60 |
--destdir=%{buildroot} \ |
61 |
--sitelibdir=%{ruby_vendorlibdir} \ |
62 |
--localedir=%{_datadir}/%{name}/locale \ |
63 |
--quick \ |
64 |
--no-rdoc |
65 |
|
66 |
install -d -m 0755 %{buildroot}%{_sysconfdir}/puppetlabs/code/environments/production/manifests |
67 |
install -d -m 0755 %{buildroot}%{_sysconfdir}/puppetlabs/code/environments/production/modules |
68 |
install -d -m 0755 %{buildroot}%{_sysconfdir}/puppetlabs/puppet |
69 |
install -d -m 0755 %{buildroot}%{_sysconfdir}/puppetlabs/puppetserver |
70 |
install -d -m 0755 %{buildroot}%{_datadir}/puppet/modules |
71 |
install -d -m 0755 %{buildroot}%{_localstatedir}/lib/puppetlabs/puppet/cache |
72 |
install -d -m 0755 %{buildroot}%{_localstatedir}/log/puppetlabs/puppet |
73 |
|
74 |
# puppet agent |
75 |
install -D -m 644 %{SOURCE100} %{buildroot}%{_unitdir}/puppet.service |
76 |
# puppet master |
77 |
install -D -m 644 %{SOURCE101} %{buildroot}%{_unitdir}/puppetmaster.service |
78 |
|
79 |
install -D -m 644 conf/puppet.conf \ |
80 |
%{buildroot}%{_sysconfdir}/puppetlabs/puppet/puppet.conf |
81 |
install -D -m 644 %{SOURCE102} %{buildroot}%{_tmpfilesdir}/puppet.conf |
82 |
|
83 |
# logrotate |
84 |
install -d %{buildroot}%{_sysconfdir}/logrotate.d |
85 |
cat > %{buildroot}%{_sysconfdir}/logrotate.d/puppetagent <<EOF |
86 |
/var/log/puppet/*log { |
87 |
create 0644 puppet puppet |
88 |
sharedscripts |
89 |
postrotate |
90 |
/bin/systemctl reload puppet.service > /dev/null 2>&1 || true |
91 |
endscript |
92 |
} |
93 |
EOF |
94 |
cat > %{buildroot}%{_sysconfdir}/logrotate.d/puppetmaster <<EOF |
95 |
/var/log/puppet/*log { |
96 |
create 0644 puppet puppet |
97 |
sharedscripts |
98 |
postrotate |
99 |
/bin/systemctl reload puppetmaster.service > /dev/null 2>&1 || true |
100 |
endscript |
101 |
} |
102 |
EOF |
103 |
|
104 |
install -d %{buildroot}%{_datadir}/puppetlabs |
105 |
cp -a ext/ %{buildroot}%{_datadir}/puppetlabs |
106 |
# remove misc packaging artifacts in source not applicable to rpm |
107 |
rm -rf %{buildroot}%{_datadir}/puppetlabs/ext/{gentoo,freebsd,solaris,suse,windows,osx,ips,debian} |
108 |
rm -f %{buildroot}%{_datadir}/puppetlabs/ext/{build_defaults.yaml,project_data.yaml} |
109 |
rm -f %{buildroot}%{_datadir}/puppetlabs/ext/redhat/*.init |
110 |
|
111 |
%pre |
112 |
%_pre_useradd puppet %{_localstatedir}/lib/%{name} /sbin/nologin |
113 |
|
114 |
%post |
115 |
%_tmpfilescreate %{name} |
116 |
%_post_service puppet |
117 |
|
118 |
%preun |
119 |
%_preun_service puppet |
120 |
|
121 |
%post server |
122 |
%_post_service puppetmaster |
123 |
|
124 |
%preun server |
125 |
%_preun_service puppetmaster |
126 |
|
127 |
%files |
128 |
%doc LICENSE README.md examples |
129 |
%dir %{_sysconfdir}/puppetlabs |
130 |
%dir %{_sysconfdir}/puppetlabs/code |
131 |
%dir %{_sysconfdir}/puppetlabs/code/environments/ |
132 |
%dir %{_sysconfdir}/puppetlabs/code/environments/production |
133 |
%dir %{_sysconfdir}/puppetlabs/code/environments/production/manifests |
134 |
%dir %{_sysconfdir}/puppetlabs/code/environments/production/modules |
135 |
%dir %{_sysconfdir}/puppetlabs/puppet |
136 |
%config(noreplace) %{_sysconfdir}/puppetlabs/puppet/puppet.conf |
137 |
%config(noreplace) %{_sysconfdir}/puppetlabs/puppet/hiera.yaml |
138 |
%{_tmpfilesdir}/puppet.conf |
139 |
%{_unitdir}/puppet.service |
140 |
%{_bindir}/puppet |
141 |
%{ruby_vendorlibdir}/hiera |
142 |
%{ruby_vendorlibdir}/hiera_puppet.rb |
143 |
%config(noreplace) %{_sysconfdir}/logrotate.d/puppetagent |
144 |
%{ruby_vendorlibdir}/puppet |
145 |
%{ruby_vendorlibdir}/puppet.rb |
146 |
%{ruby_vendorlibdir}/puppet_x.rb |
147 |
%{ruby_vendorlibdir}/puppet_pal.rb |
148 |
%{_datadir}/puppetlabs |
149 |
%attr(-,puppet,puppet) %{_localstatedir}/log/puppetlabs |
150 |
%attr(-,puppet,puppet) %{_localstatedir}/lib/puppetlabs |
151 |
%{_mandir}/man5/puppet.conf.5.* |
152 |
%{_mandir}/man8/puppet*.8.* |
153 |
%dir %{_datadir}/%{name}/ |
154 |
%{_datadir}/%{name}/* |
155 |
%dir %{_datadir}/%{name}/locale |
156 |
%dir %{_datadir}/%{name}/locale/* |
157 |
%{_datadir}/%{name}/locale/*/* |
158 |
|
159 |
%files server |
160 |
%dir %{_sysconfdir}/puppetlabs/puppetserver |
161 |
%config(noreplace) %{_sysconfdir}/logrotate.d/puppetmaster |
162 |
%{_unitdir}/puppetmaster.service |