diff options
Diffstat (limited to 'pcr/puppet')
-rw-r--r-- | pcr/puppet/PKGBUILD | 86 | ||||
-rw-r--r-- | pcr/puppet/fileserver.conf | 12 | ||||
-rwxr-xr-x | pcr/puppet/puppet | 45 | ||||
-rw-r--r-- | pcr/puppet/puppet.conf | 32 | ||||
-rw-r--r-- | pcr/puppet/puppet.install | 46 | ||||
-rwxr-xr-x | pcr/puppet/puppetmaster | 45 |
6 files changed, 266 insertions, 0 deletions
diff --git a/pcr/puppet/PKGBUILD b/pcr/puppet/PKGBUILD new file mode 100644 index 000000000..02e8f32c8 --- /dev/null +++ b/pcr/puppet/PKGBUILD @@ -0,0 +1,86 @@ +# Puppet: Installer: Arch +# Contributor: Greg Sutcliffe <puppet-aur (at) emeraldreverie (dot) org> +# Contributor: Hyacinthe Cartiaux <hyacinthe (dot) cartiaux (at) free (dot) fr> +# Contributor: Thomas S Hatch <thatch45 (at) Gmail (dot) com> +# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com> +# Contributor: Miah Johnson <miah (at) chia-pet dot org> +# Contributor: Dave Simons <miouhpi (at) Gmail (dot) com> +# Contributor: Niels Abspoel <aboe76 (at) Gmail (dot) com> +# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io> + +# RC style, reserved for later use +#pkgname=puppet +#_rc=8 +#_pkgver=3.0.0 +#pkgver=${_pkgver}_rc${_rc} + +pkgname=puppet +pkgver=3.0.1 +pkgrel=5 +pkgdesc="A system for automating system administration tasks." +arch=("any") +url="http://puppetlabs.com/projects/puppet/" +license=("APACHE") +depends=("ruby" "ruby-shadow" "facter" "ruby-hiera" "ruby-hiera-json") +makedepends=('which') +backup=("etc/puppet/puppet.conf") +options=(emptydirs) +provides=("puppet" "vim-puppet" "ruby-hiera-puppet") +conflicts=("puppet3" "ruby-puppet" "vim-puppet" "ruby-hiera-puppet") +install="puppet.install" +source=(http://puppetlabs.com/downloads/puppet/puppet-${pkgver//_/-}.tar.gz + fileserver.conf + puppet + puppet.conf + puppetmaster) +md5sums=('2117e3a1964ac54fcd36d926eed3db94' + 'ffacd9bfb9c7656a3a345dbc5eb0e67a' + '59dbf39e251bc4877e7604a5876c642d' + 'a7d61d20e46b411eb50ad5279987584a' + '4c507c580cb28d7a5adc9ea6b3626657') + +package() { + cd $srcdir/puppet-${pkgver//_/-} + + # Install + ruby ./install.rb \ + --destdir=$pkgdir \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --mandir=/usr/share/man + + + # Set up vim and emacs + install -Dp -m0644 ext/vim/ftdetect/puppet.vim $pkgdir/usr/share/vim/vimfiles/ftdetect/puppet.vim + install -Dp -m0644 ext/vim/syntax/puppet.vim $pkgdir/usr/share/vim/vimfiles/syntax/puppet.vim + install -Dp -m0644 ext/emacs/puppet-mode.el $pkgdir/usr/share/emacs/site-lisp/puppet-mode.el + install -Dp -m0644 ext/emacs/puppet-mode-init.el $pkgdir/usr/share/emacs/site-lisp/site-start.d/puppet-mode-init.el + + # Configuration and rc scripts + install -d $pkgdir/etc/{puppet,rc.d} + install -m 644 $srcdir/puppet.conf $pkgdir/etc/puppet/puppet.conf + install -m 644 $srcdir/fileserver.conf $pkgdir/etc/puppet/fileserver.conf + + # Setup tmpfiles.d config + install -d $pkgdir/etc/tmpfiles.d + echo "D /var/run/puppet 0755 puppet puppet -" > $pkgdir/etc/tmpfiles.d/puppet.conf + + # Configuration for hiera / symlink is there to use hiera within puppet. + ln -snf /etc/hiera.yaml ${pkgdir}/etc/puppet/hiera.yaml + + # Systemd files + install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetagent.service $pkgdir/usr/lib/systemd/system/puppetagent.service + install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetmaster.service $pkgdir/usr/lib/systemd/system/puppetmaster.service + + # Create puppet homedir and hieradir + install -d $pkgdir/var/lib/puppet + install -d $pkgdir/var/lib/hiera + + install -D $srcdir/puppet $pkgdir/etc/rc.d/puppet + install -D $srcdir/puppetmaster $pkgdir/etc/rc.d/puppetmaster + + # Copy the LICENSE file in the usual directory + install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}" + install -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + +} diff --git a/pcr/puppet/fileserver.conf b/pcr/puppet/fileserver.conf new file mode 100644 index 000000000..67e387ca0 --- /dev/null +++ b/pcr/puppet/fileserver.conf @@ -0,0 +1,12 @@ +# This file consists of arbitrarily named sections/modules +# defining where files are served from and to whom + +# Define a section 'files' +# Adapt the allow/deny settings to your needs. Order +# for allow/deny does not matter, allow always takes precedence +# over deny +# [files] +# path /var/lib/puppet/files +# allow *.example.com +# deny *.evil.example.com +# allow 192.168.0.0/24 diff --git a/pcr/puppet/puppet b/pcr/puppet/puppet new file mode 100755 index 000000000..4126be850 --- /dev/null +++ b/pcr/puppet/puppet @@ -0,0 +1,45 @@ +#!/bin/bash +DAEMON=$(type -p puppetd) + +. /etc/rc.conf +. /etc/rc.d/functions +[ -f /etc/conf.d/puppet ] && . /etc/conf.d/puppet + +PID=$(pidof -xo %PPID $DAEMON) +case "$1" in + start) + stat_busy "Starting Puppet Daemon" + if [ -z "$PID" ]; then + [ -f /var/run/puppet.pid ] && rm -f /var/run/puppet.pid + $DAEMON $PUPPETD_ARGS + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + PID=$(pidof -xo %PPID $DAEMON) + echo $PID > /var/run/puppet.pid + add_daemon puppet + stat_done + fi + ;; + stop) + stat_busy "Stopping Puppet Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon puppet + rm -f /var/run/puppet.pid + stat_done + fi + ;; + restart) + $0 stop + if [ ! -z $PID ]; then + while ps -p $PID > /dev/null; do sleep 1; done + fi + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac diff --git a/pcr/puppet/puppet.conf b/pcr/puppet/puppet.conf new file mode 100644 index 000000000..aa5868dee --- /dev/null +++ b/pcr/puppet/puppet.conf @@ -0,0 +1,32 @@ +[main] + # The Puppet var directory + # The default value is '/var/lib/puppet' + vardir = /var/lib/puppet + + # The Puppet log directory. + # The default value is '$vardir/log'. + logdir = /var/log/puppet + + # Where Puppet PID files are kept. + # The default value is '$vardir/run'. + rundir = /var/run/puppet + + # Where SSL certificates are kept. + # The default value is '$confdir/ssl'. + pluginsync=true + + +[agent] + # The file in which puppetd stores a list of the classes + # associated with the retrieved configuratiion. Can be loaded in + # the separate ``puppet`` executable using the ``--loadclasses`` + # option. + # The default value is '$confdir/classes.txt'. + classfile = $vardir/classes.txt + + # Where puppetd caches the local configuration. An + # extension indicating the cache format is added automatically. + # The default value is '$confdir/localconfig'. + localconfig = $vardir/localconfig + +#[master] diff --git a/pcr/puppet/puppet.install b/pcr/puppet/puppet.install new file mode 100644 index 000000000..928df566b --- /dev/null +++ b/pcr/puppet/puppet.install @@ -0,0 +1,46 @@ +# Puppet: Installer: Arch +# Maintainer: Thomas S Hatch <thatch45 (at) Gmail (dot) com> +# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com> +# Contributor: Miah Johnson <Miah (at) chia-pet dot org> + +pre_install() { + getent group puppet &>/dev/null || groupadd -r puppet -g 52 &>/dev/null + getent passwd puppet &>/dev/null || useradd -r -u 52 -g puppet -d /var/lib/puppet -s /sbin/nologin -c "Puppet" puppet &>/dev/null || : +} + +pre_upgrade() { + pre_install + usermod -d /var/lib/puppet puppet &>/dev/null || : +} + +post_install() { + : +} + +pre_remove() { +if [ -f /var/run/puppetmasterd.pid ]; then + PIDOF=$(pidof -xo %PPID puppetmasterd) + PIDFILE=$(cat /var/run/puppetmasterd.pid) + if [ $PIDOF -eq $PIDFILE ]; then + /etc/rc.d/puppetmaster stop + fi +fi + +if [ -f /var/run/puppetd.pid ]; then + PIDOF=$(pidof -xo %PPID puppetd) + PIDFILE=$(cat /var/run/puppetd.pid) + if [ $PIDOF -eq $PIDFILE ]; then + /etc/rc.d/puppet stop + fi +fi +} + +post_remove() { + # Remove user and group + userdel puppet +} + +op=$1 +shift + +$op "$@" diff --git a/pcr/puppet/puppetmaster b/pcr/puppet/puppetmaster new file mode 100755 index 000000000..8b3971053 --- /dev/null +++ b/pcr/puppet/puppetmaster @@ -0,0 +1,45 @@ +#!/bin/bash +DAEMON=$(type -p puppetmasterd) + +. /etc/rc.conf +. /etc/rc.d/functions +[ -f /etc/conf.d/puppetmaster ] && . /etc/conf.d/puppetmaster + +PID=$(pidof -xo %PPID $DAEMON) +case "$1" in + start) + stat_busy "Starting Puppet Master Daemon" + if [ -z "$PID" ]; then + [ -f /var/run/puppetmaster.pid ] && rm -f /var/run/puppetmaster.pid + $DAEMON $PUPPETMASTER_ARGS + fi + if [ ! -z "$PID" -o $? -gt 0 ]; then + stat_fail + else + PID=$(pidof -xo %PPID $DAEMON) + echo $PID > /var/run/puppetmaster.pid + add_daemon puppetmaster + stat_done + fi + ;; + stop) + stat_busy "Stopping Puppet Master Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon puppetmaster + rm -f /var/run/puppetmaster.pid + stat_done + fi + ;; + restart) + $0 stop + if [ ! -z $PID ]; then + while ps -p $PID > /dev/null; do sleep 1; done + fi + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac |