Add spec file for basic puppet configuration on client & server
[myops.git] / myops.spec
1 #
2 # $Id$
3
4
5 %define url $URL: git://git.planet-lab.org/myops.git$
6
7 %define name myops
8 # keep this version in sync with monitor/monitor_version.py
9 %define version 1.0
10 %define taglevel 0
11
12 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
13 %global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
14
15 Name: %{name}
16 Version: %{version}
17 Release: %{release}
18 Source0: %{name}-%{version}.tar.bz2
19 License: GPL
20 Group: Applications/System
21 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
22
23 Vendor: PlanetLab
24 Packager: PlanetLab Central <support@planet-lab.org>
25 Distribution: PlanetLab %{plrelease}
26 URL: %(echo %{url} | cut -d ' ' -f 2)
27
28
29 Summary: MyOps operational packages.
30 Group: Applications/System
31
32 %description
33 MyOps is a collection of support services and scripts for operating a MyPLC
34 deployment.
35
36 %package client
37 Summary: MyOps for client
38 Group: Applications/System
39
40 Requires: puppet
41 Requires: coreutils
42
43 %description client
44 Client side configuration.
45
46 ######################################## Server
47 %package server
48 Summary: MyOps the server side
49 Group: Applications/System
50
51 Requires: puppet-server
52 Requires: puppet
53 Requires: coreutils
54
55 %description server
56 Server side services
57
58 %prep
59 %setup -q
60
61 %install
62 rm -rf $RPM_BUILD_ROOT
63
64
65 #################### SERVER
66 echo "Reminder: open ports 8139,8140,8141 in iptables"
67 install -d $RPM_BUILD_ROOT/usr/share/%{name}
68 install -d $RPM_BUILD_ROOT/etc/puppet/manifests
69 install -d $RPM_BUILD_ROOT/etc/puppet/bin
70 install -d $RPM_BUILD_ROOT/etc/cron.hourly
71 install -d $RPM_BUILD_ROOT/var/lib/puppet
72
73 rsync -a ./puppet  $RPM_BUILD_ROOT/usr/share/myops/
74
75 # Generate an autosign list from plc node hostnames
76 install -D -m 755 puppet/cron.d/autosign.plcsh $RPM_BUILD_ROOT/%{_sysconfdir}/cron.hourly/
77 install -D -m 755 puppet/server/bin/node_classifier $RPM_BUILD_ROOT/%{_sysconfdir}/puppet/bin/
78 install -D -m 644 puppet/server/manifests/site.pp $RPM_BUILD_ROOT/%{_sysconfdir}/puppet/manifests/
79 install -D -m 644 puppet/server/puppetmaster.conf $RPM_BUILD_ROOT/%{_sysconfdir}/puppet/
80 install -D -m 644 puppet/client/hardcoded.conf $RPM_BUILD_ROOT/%{_sysconfdir}/puppet
81
82 rsync -ar ./puppet/server/modules $RPM_BUILD_ROOT/%{_sysconfdir}/puppet/
83
84
85 %clean
86 rm -rf $RPM_BUILD_ROOT
87
88 %files puppet-server
89 %defattr(-,root,root)
90 /%{_sysconfdir}/cron.hourly/autosign.plcsh
91 /%{_sysconfdir}/puppet/bin/node_classifier
92 /%{_sysconfdir}/puppet/manifests/site.pp
93 /%{_sysconfdir}/puppet/puppetmaster.conf
94 /%{_sysconfdir}/puppet/modules
95
96 %files puppet-client
97 %defattr(-,root,root)
98 /%{_sysconfdir}/puppet/hardcoded.conf
99 /usr/share/%{name}
100
101 %post server
102 chkconfig --add puppetmaster
103 chkconfig puppetmaster on
104
105 %post client
106 chkconfig --add puppet
107 chkconfig puppet on
108
109 cat /etc/puppet/hardcoded.conf >> /etc/puppet/puppet.conf
110
111
112 %changelog
113 %define module_current_branch 1.0