summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-03 01:52:43 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-03 01:52:43 +0000
commit712e157c826f23085820b0e64fd6832382a89f2f (patch)
tree8cfaa6d10e2718c6dcd194a973a65fb684042d07
parent42812f8512493d319b71bcc749e1760443ee8ecc (diff)
downloadpuppet-712e157c826f23085820b0e64fd6832382a89f2f.tar.gz
puppet-712e157c826f23085820b0e64fd6832382a89f2f.tar.xz
puppet-712e157c826f23085820b0e64fd6832382a89f2f.zip
Adding SuSE files from #252.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1534 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--conf/suse/client.init142
-rw-r--r--conf/suse/puppet.spec221
-rw-r--r--conf/suse/server.init151
3 files changed, 514 insertions, 0 deletions
diff --git a/conf/suse/client.init b/conf/suse/client.init
new file mode 100644
index 000000000..1edd5ef30
--- /dev/null
+++ b/conf/suse/client.init
@@ -0,0 +1,142 @@
+#!/bin/bash
+# puppet Init script for running the puppet client daemon
+#
+# Author: Duane Griffin <d.griffin@psenterprise.com>
+# David Lutterkort <dlutter@redhat.com>
+# Martin Vuk <martin.vuk@fri.uni-lj.si> (SuSE support)
+#
+# chkconfig: - 98 02
+#
+# description: Enables periodic system configuration checks through puppet.
+# processname: puppet
+# config: /etc/sysconfig/puppet
+
+### BEGIN INIT INFO
+# Provides: puppet
+# Required-Start: $local_fs $network $syslog
+# Should-Start:
+# Required-Stop:
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Short-Description: puppet
+# Description: Enables periodic system configuration checks through puppet.
+### END INIT INFO
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+[ -f /etc/rc.status ] && . /etc/rc.status
+[ -f /etc/sysconfig/puppet ] && . /etc/sysconfig/puppet
+lockfile=${LOCKFILE-/var/lock/subsys/puppet}
+pidfile=${PIDFILE-/var/run/puppet.pid}
+puppetd=${PUPPETD-/usr/sbin/puppetd}
+
+PUPPET_OPTS=""
+[ -n "${PUPPET_SERVER}" ] && PUPPET_OPTS="--server=${PUPPET_SERVER}"
+[ -n "$PUPPET_LOG" ] && PUPPET_OPTS="${PUPPET_OPTS} --logdest=${PUPPET_LOG}"
+[ -n "$PUPPET_PORT" ] && PUPPET_OPTS="${PUPPET_OPTS} --port=${PUPPET_PORT}"
+
+# First reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - misc error
+# 2 - invalid or excess args
+# 3 - unimplemented feature (e.g. reload)
+# 4 - insufficient privilege
+# 5 - program not installed
+# 6 - program not configured
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signalling is not supported) are
+# considered a success.
+
+case "$1" in
+ start)
+ echo -n "Starting puppet services."
+ ## Start daemon with startproc(8). If this fails
+ ## the echo return value is set appropriate.
+
+ # startproc should return 0, even if service is
+ # already running to match LSB spec.
+ startproc $puppetd ${PUPPET_OPTS} ${PUPPET_EXTRA_OPTS} && touch ${lockfile}
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down puppet:"
+ ## Stop daemon with killproc(8) and if this fails
+ ## set echo the echo return value.
+
+ killproc -QUIT $puppetd && rm -f ${lockfile} ${pidfile}
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart)
+ ## Stop the service and if this succeeds (i.e. the
+ ## service was running before), start it again.
+ $0 status >/dev/null && $0 restart
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart.
+
+ echo -n "Reload service puppet"
+ ## if it supports it:
+ killproc -HUP $puppetd
+ rc_status -v
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signalling, do nothing (!)
+
+ # If it supports signalling:
+ echo -n "Reload puppet services."
+ killproc -HUP $puppetd
+ rc_status -v
+ ;;
+ status)
+ echo -n "Checking for service puppetd: "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Status has a slightly different for the status command:
+ # 0 - service running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running
+
+ # NOTE: checkproc returns LSB compliant status values.
+ checkproc $puppetd
+ rc_status -v
+ ;;
+ once)
+ shift
+ $puppetd -o ${PUPPET_OPTS} ${PUPPET_EXTRA_OPTS} $@
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|once}"
+ exit 1
+esac
+rc_exit
diff --git a/conf/suse/puppet.spec b/conf/suse/puppet.spec
new file mode 100644
index 000000000..6d4e9f538
--- /dev/null
+++ b/conf/suse/puppet.spec
@@ -0,0 +1,221 @@
+%{!?ruby_sitelibdir: %define ruby_sitelibdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')}
+%define pbuild %{_builddir}/%{name}-%{version}
+%define suseconfdir conf/suse
+%define confdir conf/redhat
+
+Summary: A network tool for managing many disparate systems
+Name: puppet
+Version: 0.18.4
+Release: 3%{?dist}
+License: GPL
+Group: System Environment/Base
+
+URL: http://reductivelabs.com/projects/puppet/
+Source: http://reductivelabs.com/downloads/puppet/%{name}-%{version}.tgz
+Patch0: puppet.suse.patch
+Patch1: puppet.service.patch
+
+Requires: ruby >= 1.8.1
+Requires: facter >= 1.1.4
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArchitectures: noarch
+BuildRequires: ruby >= 1.8.1
+
+%description
+Puppet lets you centrally manage every important aspect of your system using a
+cross-platform specification language that manages all the separate elements
+normally aggregated in different files, like users, cron jobs, and hosts,
+along with obviously discrete elements like packages, services, and files.
+
+%package server
+Group: System Environment/Base
+Summary: Server for the puppet system management tool
+Requires: puppet = %{version}-%{release}
+
+%description server
+Provides the central puppet server daemon which provides manifests to clients.
+The server can also function as a certificate authority and file server.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+
+%build
+for f in bin/* ; do
+ sed -i -e '1c#!/usr/bin/ruby' $f
+done
+
+%install
+%{__rm} -rf %{buildroot}
+%{__install} -d -m0755 %{buildroot}%{_sbindir}
+%{__install} -d -m0755 %{buildroot}%{_bindir}
+%{__install} -d -m0755 %{buildroot}%{ruby_sitelibdir}
+%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/puppet/manifests
+%{__install} -d -m0755 %{buildroot}%{_docdir}/%{name}-%{version}
+%{__install} -d -m0755 %{buildroot}%{_localstatedir}/lib/puppet
+%{__install} -d -m0755 %{buildroot}%{_localstatedir}/run/puppet
+%{__install} -d -m0755 %{buildroot}%{_localstatedir}/log/puppet
+%{__install} -Dp -m0755 %{pbuild}/bin/* %{buildroot}%{_sbindir}
+%{__mv} %{buildroot}%{_sbindir}/puppet %{buildroot}%{_bindir}/puppet
+%{__mv} %{buildroot}%{_sbindir}/puppetrun %{buildroot}%{_bindir}/puppetrun
+%{__install} -Dp -m0644 %{pbuild}/lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb
+%{__cp} -a %{pbuild}/lib/puppet %{buildroot}%{ruby_sitelibdir}
+find %{buildroot}%{ruby_sitelibdir} -type f -perm +ugo+x -print0 | xargs -0 -r %{__chmod} a-x
+%{__install} -Dp -m0644 %{confdir}/client.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppet
+%{__install} -Dp -m0755 %{suseconfdir}/client.init %{buildroot}%{_initrddir}/puppet
+%{__install} -Dp -m0644 %{confdir}/server.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/puppetmaster
+%{__install} -Dp -m0755 %{suseconfdir}/server.init %{buildroot}%{_initrddir}/puppetmaster
+%{__install} -Dp -m0644 %{confdir}/fileserver.conf %{buildroot}%{_sysconfdir}/puppet/fileserver.conf
+%{__install} -Dp -m0644 %{confdir}/puppetd.conf %{buildroot}%{_sysconfdir}/puppet/puppetd.conf
+%{__ln_s} puppetd.conf %{buildroot}%{_sysconfdir}/puppet/puppetmasterd.conf
+%{__ln_s} puppetd.conf %{buildroot}%{_sysconfdir}/puppet/puppetca.conf
+%{__install} -Dp -m0644 %{confdir}/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/puppet
+
+%files
+%defattr(-, root, root, 0755)
+%{_bindir}/puppet
+%{_sbindir}/puppetd
+%{ruby_sitelibdir}/*
+%{_initrddir}/puppet
+%config(noreplace) %{_sysconfdir}/sysconfig/puppet
+%config(noreplace) %{_sysconfdir}/puppet/puppetd.conf
+%doc CHANGELOG COPYING LICENSE README TODO examples
+%exclude %{_sbindir}/puppetdoc
+%config(noreplace) %{_sysconfdir}/logrotate.d/puppet
+# These need to be owned by puppet so the server can
+# write to them
+%attr(-, puppet, puppet) %{_localstatedir}/run/puppet
+%attr(-, puppet, puppet) %{_localstatedir}/log/puppet
+%attr(-, puppet, puppet) %{_localstatedir}/lib/puppet
+
+%files server
+%defattr(-, root, root, 0755)
+%{_sbindir}/puppetmasterd
+%{_bindir}/puppetrun
+%{_initrddir}/puppetmaster
+%config(noreplace) %{_sysconfdir}/puppet/*
+%config(noreplace) %{_sysconfdir}/sysconfig/puppetmaster
+%{_sbindir}/puppetca
+
+%pre
+/usr/sbin/groupadd -r puppet 2>/dev/null || :
+/usr/sbin/useradd -g puppet -c "Puppet" \
+ -s /sbin/nologin -r -d /var/puppet puppet 2> /dev/null || :
+
+%post
+/sbin/chkconfig --add puppet
+exit 0
+
+%post server
+/sbin/chkconfig --add puppetmaster
+
+%preun
+if [ "$1" = 0 ] ; then
+ /sbin/service puppet stop > /dev/null 2>&1
+ /sbin/chkconfig --del puppet
+fi
+
+%preun server
+if [ "$1" = 0 ] ; then
+ /sbin/service puppetmaster stop > /dev/null 2>&1
+ /sbin/chkconfig --del puppetmaster
+fi
+
+%postun server
+if [ "$1" -ge 1 ]; then
+ /sbin/service puppetmaster try-restart > /dev/null 2>&1
+fi
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%changelog
+* Tue Aug 3 2006 Martin Vuk <martin.vuk@fri.uni-lj.si> - 0.18.4-3
+- Replaced puppet-bin.patch with %build section from David's spec
+
+* Tue Aug 1 2006 Martin Vuk <martin.vuk@fri.uni-lj.si> - 0.18.4-2
+- Added supprot for enabling services in SuSE
+
+* Tue Aug 1 2006 Martin Vuk <martin.vuk@fri.uni-lj.si> - 0.18.4-1
+- New version and support for SuSE
+
+* Wed Jul 5 2006 David Lutterkort <dlutter@redhat.com> - 0.18.2-1
+- New version
+
+* Wed Jun 28 2006 David Lutterkort <dlutter@redhat.com> - 0.18.1-1
+- Removed lsb-config.patch and yumrepo.patch since they are upstream now
+
+* Mon Jun 19 2006 David Lutterkort <dlutter@redhat.com> - 0.18.0-1
+- Patch config for LSB compliance (lsb-config.patch)
+- Changed config moves /var/puppet to /var/lib/puppet, /etc/puppet/ssl
+ to /var/lib/puppet, /etc/puppet/clases.txt to /var/lib/puppet/classes.txt,
+ /etc/puppet/localconfig.yaml to /var/lib/puppet/localconfig.yaml
+
+* Fri May 19 2006 David Lutterkort <dlutter@redhat.com> - 0.17.2-1
+- Added /usr/bin/puppetrun to server subpackage
+- Backported patch for yumrepo type (yumrepo.patch)
+
+* Wed May 3 2006 David Lutterkort <dlutter@redhat.com> - 0.16.4-1
+- Rebuilt
+
+* Fri Apr 21 2006 David Lutterkort <dlutter@redhat.com> - 0.16.0-1
+- Fix default file permissions in server subpackage
+- Run puppetmaster as user puppet
+- rebuilt for 0.16.0
+
+* Mon Apr 17 2006 David Lutterkort <dlutter@redhat.com> - 0.15.3-2
+- Don't create empty log files in post-install scriptlet
+
+* Fri Apr 7 2006 David Lutterkort <dlutter@redhat.com> - 0.15.3-1
+- Rebuilt for new version
+
+* Wed Mar 22 2006 David Lutterkort <dlutter@redhat.com> - 0.15.1-1
+- Patch0: Run puppetmaster as root; running as puppet is not ready
+ for primetime
+
+* Mon Mar 13 2006 David Lutterkort <dlutter@redhat.com> - 0.15.0-1
+- Commented out noarch; requires fix for bz184199
+
+* Mon Mar 6 2006 David Lutterkort <dlutter@redhat.com> - 0.14.0-1
+- Added BuildRequires for ruby
+
+* Wed Mar 1 2006 David Lutterkort <dlutter@redhat.com> - 0.13.5-1
+- Removed use of fedora-usermgmt. It is not required for Fedora Extras and
+ makes it unnecessarily hard to use this rpm outside of Fedora. Just
+ allocate the puppet uid/gid dynamically
+
+* Sun Feb 19 2006 David Lutterkort <dlutter@redhat.com> - 0.13.0-4
+- Use fedora-usermgmt to create puppet user/group. Use uid/gid 24. Fixed
+problem with listing fileserver.conf and puppetmaster.conf twice
+
+* Wed Feb 8 2006 David Lutterkort <dlutter@redhat.com> - 0.13.0-3
+- Fix puppetd.conf
+
+* Wed Feb 8 2006 David Lutterkort <dlutter@redhat.com> - 0.13.0-2
+- Changes to run puppetmaster as user puppet
+
+* Mon Feb 6 2006 David Lutterkort <dlutter@redhat.com> - 0.13.0-1
+- Don't mark initscripts as config files
+
+* Mon Feb 6 2006 David Lutterkort <dlutter@redhat.com> - 0.12.0-2
+- Fix BuildRoot. Add dist to release
+
+* Tue Jan 17 2006 David Lutterkort <dlutter@redhat.com> - 0.11.0-1
+- Rebuild
+
+* Thu Jan 12 2006 David Lutterkort <dlutter@redhat.com> - 0.10.2-1
+- Updated for 0.10.2 Fixed minor kink in how Source is given
+
+* Wed Jan 11 2006 David Lutterkort <dlutter@redhat.com> - 0.10.1-3
+- Added basic fileserver.conf
+
+* Wed Jan 11 2006 David Lutterkort <dlutter@redhat.com> - 0.10.1-1
+- Updated. Moved installation of library files to sitelibdir. Pulled
+initscripts into separate files. Folded tools rpm into server
+
+* Thu Nov 24 2005 Duane Griffin <d.griffin@psenterprise.com>
+- Added init scripts for the client
+
+* Wed Nov 23 2005 Duane Griffin <d.griffin@psenterprise.com>
+- First packaging
diff --git a/conf/suse/server.init b/conf/suse/server.init
new file mode 100644
index 000000000..aedb0c7c8
--- /dev/null
+++ b/conf/suse/server.init
@@ -0,0 +1,151 @@
+#!/bin/bash
+# puppetmaster This shell script enables the puppetmaster server.
+#
+# Author: Duane Griffin <d.griffin@psenterprise.com>
+# Martin Vuk <martin.vuk@fri.uni-lj.si> (SuSE support)
+#
+# chkconfig: - 65 45
+#
+# description: Server for the puppet system management tool.
+# processname: puppetmaster
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+
+lockfile=/var/lock/subsys/puppetmaster
+pidfile=/var/run/puppet/puppetmasterd.pid
+
+# Source function library.
+[ -f /etc/rc.status ] && . /etc/rc.status
+
+if [ -f /etc/sysconfig/puppetmaster ]; then
+ . /etc/sysconfig/puppetmaster
+fi
+
+[ -z "$PUPPETMASTER_MANIFEST" ] && PUPPETMASTER_MANIFEST=/etc/puppet/manifests/site.pp
+[ -z "$PUPPETMASTER_LOG" ] && PUPPETMASTER_LOG="/var/log/puppet/puppetmaster.log"
+PUPPETMASTER_OPTS="
+ --manifest=$PUPPETMASTER_MANIFEST \
+ --logdest=${PUPPETMASTER_LOG} \
+ ${PUPPETMASTER_EXTRA_OPTS}"
+PUPPET_OPTS=""
+[ -n "${PUPPET_SERVER}" ] && PUPPET_OPTS="--server=${PUPPET_SERVER}"
+[ -n "$PUPPET_LOG" ] && PUPPET_OPTS="${PUPPET_OPTS} --logdest=${PUPPET_LOG}"
+[ -n "$PUPPET_PORT" ] && PUPPET_OPTS="${PUPPET_OPTS} --port=${PUPPET_PORT}"
+
+prog=puppetmasterd
+PUPPETMASTER=/usr/sbin/$prog
+
+start() {
+ echo -n $"Starting puppetmaster: "
+
+ echo
+ return $RETVAL
+}
+# First reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - misc error
+# 2 - invalid or excess args
+# 3 - unimplemented feature (e.g. reload)
+# 4 - insufficient privilege
+# 5 - program not installed
+# 6 - program not configured
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signalling is not supported) are
+# considered a success.
+
+case "$1" in
+ start)
+ echo -n "Starting puppetmaster services."
+ ## Start daemon with startproc(8). If this fails
+ ## the echo return value is set appropriate.
+
+ # startproc should return 0, even if service is
+ # already running to match LSB spec.
+ # Confirm the manifest exists
+ if [ -r $PUPPETMASTER_MANIFEST ]; then
+ startproc $PUPPETMASTER $PUPPETMASTER_OPTS && touch "$lockfile"
+ else
+ rc_failed
+ echo "Manifest does not exist: $PUPPETMASTER_MANIFEST"
+ fi
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down puppetmaster:"
+ ## Stop daemon with killproc(8) and if this fails
+ ## set echo the echo return value.
+
+ killproc -QUIT $PUPPETMASTER && rm -f ${lockfile} ${pidfile}
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart)
+ ## Stop the service and if this succeeds (i.e. the
+ ## service was running before), start it again.
+ $0 status >/dev/null && $0 restart
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart.
+
+ echo -n "Reload service puppet"
+ ## if it supports it:
+ killproc -HUP $PUPPETMASTER
+ rc_status -v
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signalling, do nothing (!)
+
+ # If it supports signalling:
+ echo -n "Reload puppet services."
+ killproc -HUP $PUPPETMASTER
+ rc_status -v
+ ;;
+ status)
+ echo -n "Checking for service puppetmaster: "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Status has a slightly different for the status command:
+ # 0 - service running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running
+
+ # NOTE: checkproc returns LSB compliant status values.
+ checkproc $PUPPETMASTER
+ rc_status -v
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
+ exit 1
+esac
+rc_exit