mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add ipa_memcached service
* Adds ipa_memcached SystemV initscript * Adds ipa_memcached service file and tmpfiles.d/ipa.conf to recreate /var/run/ipa_memcached on reboot. * Adds ipa_memcached config file * Adds memcacheinstnace.py to manage ipa_memcaced as as SimpleService object. * Updates the IPA service list to include ipa_memcached, at service positon 39, httpd is position 40 * Updates the spec file: - requires the memcached daemon and python client - installs service or initscripts depending on OS - installs config file - creates /var/run/ipa_memcached directory * Modifies ipa-server-install to install ipa_memcached
This commit is contained in:
parent
af187713e7
commit
d1e0c1b606
@ -109,6 +109,8 @@ Requires: python-ldap
|
||||
Requires: python-krbV
|
||||
Requires: acl
|
||||
Requires: python-pyasn1 >= 0.0.9a
|
||||
Requires: memcached
|
||||
Requires: python-memcached
|
||||
%if 0%{?fedora} >= 16
|
||||
Requires: systemd-units >= 36-3
|
||||
Requires(pre): systemd-units
|
||||
@ -356,12 +358,25 @@ mkdir -p %{buildroot}%{_usr}/share/ipa/html/
|
||||
/bin/touch %{buildroot}%{_usr}/share/ipa/html/krbrealm.con
|
||||
/bin/touch %{buildroot}%{_usr}/share/ipa/html/preferences.html
|
||||
mkdir -p %{buildroot}%{_initrddir}
|
||||
mkdir %{buildroot}%{_sysconfdir}/sysconfig/
|
||||
install -m 644 init/ipa_memcached.conf %{buildroot}%{_sysconfdir}/sysconfig/ipa_memcached
|
||||
|
||||
%if 0%{?fedora} >= 15
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d/
|
||||
install -m 0644 init/systemd/ipa.conf.tmpfiles %{buildroot}%{_sysconfdir}/tmpfiles.d/ipa.conf
|
||||
%endif
|
||||
|
||||
mkdir -p %{buildroot}%{_localstatedir}/run/
|
||||
install -d -m 0700 %{buildroot}%{_localstatedir}/run/ipa_memcached/
|
||||
|
||||
%if 0%{?fedora} >= 16
|
||||
# Default to systemd initscripts for F16 and above
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
install -m 644 init/systemd/ipa.service %{buildroot}%{_unitdir}/ipa.service
|
||||
install -m 644 init/systemd/ipa_memcached.service %{buildroot}%{_unitdir}/ipa_memcached.service
|
||||
%else
|
||||
install -m755 init/SystemV/ipa.init %{buildroot}%{_initrddir}/ipa
|
||||
install -m755 init/SystemV/ipa_memcached.init %{buildroot}%{_initrddir}/ipa_memcached
|
||||
%endif
|
||||
%endif
|
||||
|
||||
@ -491,12 +506,19 @@ fi
|
||||
%{_sbindir}/ipa-upgradeconfig
|
||||
%{_sbindir}/ipa-compliance
|
||||
%{_sysconfdir}/cron.d/ipa-compliance
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/ipa_memcached
|
||||
%dir %attr(0700,apache,apache) %{_localstatedir}/run/ipa_memcached/
|
||||
%if 0%{?fedora} >= 15
|
||||
%config %{_sysconfdir}/tmpfiles.d/ipa.conf
|
||||
%endif
|
||||
%if 0%{?fedora} >= 16
|
||||
# Use systemd scheme
|
||||
%attr(644,root,root) %{_unitdir}/ipa.service
|
||||
%attr(644,root,root) %{_unitdir}/ipa_memcached.service
|
||||
%else
|
||||
# Use SystemV scheme only before F16
|
||||
%attr(755,root,root) %{_initrddir}/ipa
|
||||
%attr(755,root,root) %{_initrddir}/ipa_memcached
|
||||
%endif
|
||||
%dir %{python_sitelib}/ipaserver
|
||||
%{python_sitelib}/ipaserver/*
|
||||
|
120
init/SystemV/ipa_memcached.init
Executable file
120
init/SystemV/ipa_memcached.init
Executable file
@ -0,0 +1,120 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# chkconfig: - 55 45
|
||||
# description: The ipa_memcached daemon is a memory cache service for IPA
|
||||
# processname: memcached
|
||||
# config: /etc/sysconfig/ipa_memcached
|
||||
# pidfile: /var/run/ipa_memcached/ipa_memcached.pid
|
||||
|
||||
# Standard LSB functions
|
||||
#. /lib/lsb/init-functions
|
||||
|
||||
# Source function library.
|
||||
. /etc/init.d/functions
|
||||
|
||||
SOCKET_PATH=/var/run/ipa_memcached/ipa_memcached
|
||||
USER=apache
|
||||
PIDFILE=/var/run/ipa_memcached/ipa_memcached.pid
|
||||
MAXCONN=1024
|
||||
CACHESIZE=64
|
||||
OPTIONS=""
|
||||
|
||||
if [ -f /etc/sysconfig/ipa_memcached ];then
|
||||
. /etc/sysconfig/ipa_memcached
|
||||
fi
|
||||
|
||||
# Check that networking is up.
|
||||
. /etc/sysconfig/network
|
||||
|
||||
if [ "$NETWORKING" = "no" ]
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
prog="ipa_memcached"
|
||||
pidfile=${PIDFILE-/var/run/ipa_memcached/ipa_memcached.pid}
|
||||
lockfile=${LOCKFILE-/var/lock/subsys/ipa_memcached}
|
||||
|
||||
start () {
|
||||
echo -n $"Starting $prog: "
|
||||
# Ensure that $pidfile directory has proper permissions and exists
|
||||
piddir=`dirname $pidfile`
|
||||
if [ ! -d $piddir ]; then
|
||||
mkdir $piddir
|
||||
fi
|
||||
if [ "`stat -c %U $piddir`" != "$USER" ]; then
|
||||
chown $USER $piddir
|
||||
fi
|
||||
|
||||
daemon --pidfile ${pidfile} /usr/bin/memcached -d -s ${SOCKET_PATH} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} -P ${pidfile} ${OPTIONS}
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL -eq 0 ] && touch ${lockfile}
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
stop () {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc -p ${pidfile} $prog
|
||||
RETVAL=$?
|
||||
echo
|
||||
if [ $RETVAL -eq 0 ] ; then
|
||||
rm -f ${lockfile} ${pidfile}
|
||||
fi
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
restart () {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
force_reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
# run checks to determine if the service is running or use generic status
|
||||
status -p ${pidfile} $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
;;
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
reload)
|
||||
rh_status_q || exit 7
|
||||
$1
|
||||
;;
|
||||
force-reload)
|
||||
force_reload
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
exit 2
|
||||
esac
|
||||
exit $?
|
5
init/ipa_memcached.conf
Normal file
5
init/ipa_memcached.conf
Normal file
@ -0,0 +1,5 @@
|
||||
SOCKET_PATH=/var/run/ipa_memcached/ipa_memcached
|
||||
USER=apache
|
||||
MAXCONN=1024
|
||||
CACHESIZE=64
|
||||
OPTIONS=
|
1
init/systemd/ipa.conf.tmpfiles
Normal file
1
init/systemd/ipa.conf.tmpfiles
Normal file
@ -0,0 +1 @@
|
||||
d /var/run/ipa_memcached 0700 apache apache
|
12
init/systemd/ipa_memcached.service
Normal file
12
init/systemd/ipa_memcached.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=IPA memcached daemon, increases IPA server performance
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
EnvironmentFile=/etc/sysconfig/ipa_memcached
|
||||
PIDFile=/var/run/ipa_memcached/ipa_memcached.pid
|
||||
ExecStart=/usr/bin/memcached -d -s $SOCKET_PATH -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/ipa_memcached/ipa_memcached.pid $OPTIONS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -48,6 +48,7 @@ from ipaserver.install import httpinstance
|
||||
from ipaserver.install import ntpinstance
|
||||
from ipaserver.install import certs
|
||||
from ipaserver.install import cainstance
|
||||
from ipaserver.install import memcacheinstance
|
||||
|
||||
from ipaserver.install import service
|
||||
from ipapython import version
|
||||
@ -988,6 +989,9 @@ def main():
|
||||
os.write(pw_fd, options.http_pin)
|
||||
os.close(pw_fd)
|
||||
|
||||
memcache = memcacheinstance.MemcacheInstance()
|
||||
memcache.create_instance('MEMCACHE', host_name, dm_password, util.realm_to_suffix(realm_name))
|
||||
|
||||
http = httpinstance.HTTPInstance(fstore)
|
||||
if options.http_pkcs12:
|
||||
pkcs12_info = (options.http_pkcs12, pw_name)
|
||||
|
24
ipaserver/install/memcacheinstance.py
Normal file
24
ipaserver/install/memcacheinstance.py
Normal file
@ -0,0 +1,24 @@
|
||||
# Authors: John Dennis <jdennis@redhat.com>
|
||||
#
|
||||
# Copyright (C) 2011 Red Hat
|
||||
# see file 'COPYING' for use and warranty information
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import service
|
||||
|
||||
class MemcacheInstance(service.SimpleServiceInstance):
|
||||
def __init__(self):
|
||||
service.SimpleServiceInstance.__init__(self, "ipa_memcached")
|
@ -38,6 +38,7 @@ SERVICE_LIST = {
|
||||
'KDC':('krb5kdc', 10),
|
||||
'KPASSWD':('kadmin', 20),
|
||||
'DNS':('named', 30),
|
||||
'MEMCACHE':('ipa_memcached', 39),
|
||||
'HTTP':('httpd', 40),
|
||||
'CA':('pki-cad', 50),
|
||||
'ADTRUST':('smb', 60)
|
||||
|
Loading…
Reference in New Issue
Block a user