From 73d352b2a264bc3452b0ec37684c3cae2a0aba9b Mon Sep 17 00:00:00 2001 From: Nathan Van Overloop Date: Fri, 6 Jun 2014 11:14:08 +0200 Subject: [PATCH] adapt makefile for RHEL + RHEL specific files --- Makefile | 12 +++++ RHEL/repmgr.spec | 57 +++++++++++++++++++++ RHEL/repmgrd.init | 113 +++++++++++++++++++++++++++++++++++++++++ RHEL/repmgrd.sysconfig | 4 ++ 4 files changed, 186 insertions(+) create mode 100644 RHEL/repmgr.spec create mode 100755 RHEL/repmgrd.init create mode 100644 RHEL/repmgrd.sysconfig diff --git a/Makefile b/Makefile index 1cf5047e..8408dce5 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,17 @@ install_prog: install_ext: $(MAKE) -C sql install +install_rhel: + mkdir -p '$(DESTDIR)/etc/init.d/' + $(INSTALL_PROGRAM) RHEL/repmgrd.init '$(DESTDIR)/etc/init.d/repmgrd' + mkdir -p '$(DESTDIR)/etc/sysconfig/' + $(INSTALL_PROGRAM) RHEL/repmgrd.sysconfig '$(DESTDIR)/etc/sysconfig/repmgrd' + mkdir -p '$(DESTDIR)/etc/repmgr/' + $(INSTALL_PROGRAM) repmgr.conf.sample '$(DESTDIR)/etc/repmgr/' + mkdir -p '$(DESTDIR)/usr/bin/' + $(INSTALL_PROGRAM) repmgrd$(X) '$(DESTDIR)/usr/bin/' + $(INSTALL_PROGRAM) repmgr$(X) '$(DESTDIR)/usr/bin/' + ifneq (,$(DATA)$(DATA_built)) @for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'"; \ @@ -67,3 +78,4 @@ deb: repmgrd repmgr mv debian.deb ../postgresql-repmgr-9.0_1.0.0.deb rm -rf ./debian/usr + diff --git a/RHEL/repmgr.spec b/RHEL/repmgr.spec new file mode 100644 index 00000000..41ec2a8c --- /dev/null +++ b/RHEL/repmgr.spec @@ -0,0 +1,57 @@ +Summary: repmgr +Name: repmgr +Version: 2.0 +Release: 2 +License: GPLv3 +Group: System Environment/Daemons +URL: http://repmgr.org +Packager: Nathan Van Overloop +Vendor: 2ndQuadrant Limited +Distribution: centos +Source0: %{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root + +%description +repmgr for centos6 + +%prep +%setup + +%build +export PATH=$PATH:/usr/pgsql-9.3/bin/ +%{__make} USE_PGXS=1 + +%install +[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} + +export PATH=$PATH:/usr/pgsql-9.3/bin/ +%{__make} USE_PGXS=1 install DESTDIR=%{buildroot} INSTALL="install -p" +%{__make} USE_PGXS=1 install_prog DESTDIR=%{buildroot} INSTALL="install -p" +%{__make} USE_PGXS=1 install_rhel DESTDIR=%{buildroot} INSTALL="install -p" + + +%clean +[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} + + +%files +%defattr(-,root,root) +/usr/bin/repmgr +/usr/bin/repmgrd +/usr/pgsql-9.3/bin/repmgr +/usr/pgsql-9.3/bin/repmgrd +/usr/pgsql-9.3/lib/repmgr_funcs.so +/usr/pgsql-9.3/share/contrib/repmgr.sql +/usr/pgsql-9.3/share/contrib/repmgr_funcs.sql +/usr/pgsql-9.3/share/contrib/uninstall_repmgr.sql +/usr/pgsql-9.3/share/contrib/uninstall_repmgr_funcs.sql +%attr(0755,root,root)/etc/init.d/repmgrd +%attr(0644,root,root)/etc/sysconfig/repmgrd +%attr(0644,root,root)/etc/repmgr/repmgr.conf.sample + +%changelog +* Thu Jun 05 2015 Nathan Van Overloop 2.0.2 +- fix witness creation to create db and user if needed +* Fri Apr 04 2014 Nathan Van Overloop 2.0.1 +- initial build for RHEL6 + diff --git a/RHEL/repmgrd.init b/RHEL/repmgrd.init new file mode 100755 index 00000000..74f393ba --- /dev/null +++ b/RHEL/repmgrd.init @@ -0,0 +1,113 @@ +#!/bin/bash +# +# repmgrd Start up the repmgrd daemon +# repmrgd (replication manager daemon) +# +# chkconfig: - 75 16 +# description: repmgrd is the repliation manager daemon \ +# The repmgrd replication management and monitoring daemon for PostgreSQL. + +### BEGIN INIT INFO +# Provides: repmgrd +# Required-Start: $local_fs $remote_fs $network $syslog postgresql +# Required-Stop: $local_fs $remote_fs $network $syslog postgresql +# Should-Start: $syslog postgresql-9.3 +# Should-Stop: $syslog postgresql-9.3 +# Short-Description: start and stop repmrgd +# Description: Enable repmgrd replication management and monitoring daemon for PostgreSQL +# this is used to monitor a postgresql cluster. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +prog=repmgrd +REPMGRD_ENABLED=yes +REPMGRD_OPTS= +REPMGRD_USER=postgres +DAEMONIZE="-d" + +# pull in sysconfig settings +[ -f /etc/sysconfig/repmgrd ] && . /etc/sysconfig/repmgrd + +LOCKFILE=/var/lock/subsys/$prog +RETVAL=0 + +case "$REPMGRD_ENABLED" in + [Yy]*) + #nothing to do here + ;; + *) + exit 2 + ;; +esac + + +if [ -z "$REPMGRD_OPTS" ] +then + echo "Not starting $prog, REPMGRD_OPTS not set in /etc/sysconfig/$prog" + exit 2 +fi + +start() { + [ "$EUID" != "0" ] && exit 4 + [ "$NETWORKING" = "no" ] && exit 1 + + # Start daemons. + echo -n $"Starting $prog: " + daemon --user $REPMGRD_USER $prog $DAEMONIZE $REPMGRD_OPTS + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch $LOCKFILE + return $RETVAL +} + +stop() { + [ "$EUID" != "0" ] && exit 4 + echo -n $"Shutting down $prog: " + killproc $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f $LOCKFILE + return $RETVAL +} +status() { + if [ -f "$LOCKFILE" ]; then + echo "$prog is running" + else + echo "$prog is stopped" + fi + exit 0 +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $prog + ;; + restart|force-reload) + stop + start + ;; + try-restart|condrestart) + if status $prog > /dev/null; then + stop + start + fi + ;; + reload) + exit 3 + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}" + exit 2 +esac diff --git a/RHEL/repmgrd.sysconfig b/RHEL/repmgrd.sysconfig new file mode 100644 index 00000000..e41d8af4 --- /dev/null +++ b/RHEL/repmgrd.sysconfig @@ -0,0 +1,4 @@ +#default sysconfig file for repmrgd +#custom overrides can be placed here + +REPMGRD_OPTS="-f /etc/repmgr/repmgr.conf"