Compare commits

..

20 Commits

Author SHA1 Message Date
49672ce24b Merge branch 'master' into dist/eole/2.6.2/master 2018-05-15 13:57:45 +02:00
a81642fcdb Merge branch 'master' into dist/eole/2.6.2/master 2018-05-15 13:53:56 +02:00
eb561236ba Merge branch 'master' into dist/eole/2.6.2/master 2018-05-15 13:33:04 +02:00
42677eb95b Adding init script for the new instance ... 2018-05-15 12:24:05 +02:00
e3a93a0725 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-15 12:20:10 +02:00
d43c8664f3 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-15 00:10:09 +02:00
9acd24cf19 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 22:56:39 +02:00
1aba4425dd Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 21:56:36 +02:00
31b8cc8fdb Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 16:20:28 +02:00
5f1c564aba Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 16:04:57 +02:00
ee74f2df2e Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 15:45:05 +02:00
64e42d7a97 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 15:04:00 +02:00
44bc50a2ba Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 15:01:51 +02:00
f2740a38bc Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 14:51:11 +02:00
8869d18e17 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-14 12:27:27 +02:00
225e2f5ff2 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-11 15:38:27 +02:00
14a2bdd6dd Merge branch 'master' into dist/eole/2.6.2/master 2018-05-11 15:27:00 +02:00
146206e353 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-11 15:14:34 +02:00
e3f2d1f5b6 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-11 15:04:12 +02:00
ce87e6219c Adding packaging 2018-05-11 13:48:26 +02:00
14 changed files with 123 additions and 112 deletions

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
9

16
debian/control vendored Normal file
View File

@ -0,0 +1,16 @@
Source: eole-redis
Section: web
Priority: optional
Maintainer: Cadoles <eole@ac-dijon.fr>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.3
Homepage: https://forge.cadoles.com/Cadoles/eole-redis
Vcs-Git: https://forge.cadoles.com/Cadoles/eole-redis.git
Vcs-Browser: https://forge.cadoles.com/Cadoles/eole-redis
Package: eole-redis
Architecture: all
Depends: ${misc:Depends}, redis-server
Description: Dictionnaires et templates pour la configuration d'un serveur redis, testée uniquement avec eolebase
.
Pour toute information complémentaire, veuillez vous rendre sur la forge Cadoles.

44
debian/copyright vendored Normal file
View File

@ -0,0 +1,44 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: {PROJECT}
Source: {URL}
Files: *
Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}>
License: {UPSTREAM LICENSE}
Files: debian/*
Copyright: 2012 Équipe EOLE <eole@ac-dijon.fr>
License: CeCILL-2
License: {UPSTREAM LICENSE}
{TEXT OF THE LICENSE}
License: CeCILL-2
This software is governed by the CeCILL-2 license under French law and
abiding by the rules of distribution of free software. You can use,
modify and or redistribute the software under the terms of the CeCILL-2
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info";.
.
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL-2 license and that you accept its terms.
.
On Eole systems, the complete text of the CeCILL-2 License can be found
in '/usr/share/common-licenses/CeCILL-2-en'.

1
debian/eole-redis.redis2-server.service vendored Symbolic link
View File

@ -0,0 +1 @@
../init/redis2-server.service

3
debian/gbp.conf vendored Normal file
View File

@ -0,0 +1,3 @@
# Set per distribution debian tag
[DEFAULT]
debian-tag = debian/eole/%(version)s

18
debian/rules vendored Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@
# Force init script name
override_dh_installinit:
dh_installinit --noscripts -peole-redis --name=redis2-server $@
override_dh_systemd_enable:
dh_systemd_enable -peole-redis --name=redis2-server
override_dh_systemd_start:
dh_systemd_start -peole-server --no-start --no-restart-on-upgrade redis2-server

BIN
debian/source/.format.un~ vendored Normal file

Binary file not shown.

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (native)

View File

@ -2,7 +2,6 @@
<creole>
<files>
<!-- System configuration -->
<file filelist='redis' name='/etc/sysctl.d/100-redis-tuning.conf' source='redis_sysctl.conf' mkdir='True' rm='True'/>
<file filelist='redis' name='/etc/redis/redis.conf' mkdir='True' rm='True'/>
<file filelist='redisSlave' name='/etc/redis/redis-slave.conf' mkdir='True' rm='True'/>
<file filelist='redisCl' name='/etc/redis/cluster.conf' source='redis-cluster.conf' mkdir='True' rm='True'/>
@ -32,9 +31,8 @@
<variable name='redisSlaveInstance' type='oui/non' description="Voulez-vous lancer une instance esclave Redis sur ce serveur ?">
<value>non</value>
</variable>
<!-- Instance Principale-->
<variable name='redisInstanceName' type='string' description="Nom de l'instance principale"/>
<variable name='redisInstanceName' type='string' description="Nom de l'instance secondaire"/>
<variable name='redisPort' type='number' description="Port d'écoute du service Redis">
<value>6379</value>
</variable>
@ -51,13 +49,9 @@
<!-- Instance Secondaire -->
<variable name='redisSlaveInstanceName' type='string' description="Nom de l'instance secondaire"/>
<variable name='redisSlaveInstanceMaster' type='string' description="Nom du noeud a répliquer sur l'instance secondaire"/>
<variable name='redisMasterIPSlave' type='domain' description="Nom de domaine du service Redis master" mandatory="True"/>
<variable name='redisMasterPortSlave' type='number' description="Port d'écoute du service Redis master">
<variable name='redisPortSlave' type='number' description="Port d'écoute du service Redis">
<value>6379</value>
</variable>
<variable name='redisPortSlave' type='number' description="Port d'écoute du service Redis slave">
<value>8379</value>
</variable>
<variable name='redisClPortSlave' type='number' description="Port d'écoute du service Cluster Redis"/>
<variable name='redisMaxMemorySlave' type='number' description="Quantité de mémoire utilisable par Redis en Mo">
<value>512</value>
@ -92,23 +86,6 @@
<variable name='rdClMemberSlaveRole' type='string' description="Rôle de l'instance secondaire" hidden='True'/>
<variable name='rdClMemberSlaveMaster' type='string' description="Noeud du noeud répliquer sur cette instance secondaire"/>
</family>
<family name='Redis tunning' mode='expert'>
<variable name='redisMaxClients' type='number' description="Maximum allowed clients">
<value>10000</value>
</variable>
<variable name='rdCliOutBuffHardLimit' type='number' description="Client output buffer hard limit (for slave)">
<value>512</value>
</variable>
<variable name='rdCliOutBuffSoftLimit' type='number' description="Client output buffer soft limit (for slave)">
<value>256</value>
</variable>
<variable name='rdSaveDisable' type='oui/non' description="Désactiver la persistence des données sur les maitres et esclaves">
<value>non</value>
</variable>
<variable name='rdAOFDisable' type='oui/non' description="Désactiver la sauvegarde AOF sur les maitres et esclaves">
<value>non</value>
</variable>
</family>
<separators>
<separator name='redisInstanceName'>Instance Principale</separator>
<separator name='redisSlaveInstanceName'>Instance Secondaire</separator>
@ -153,32 +130,14 @@
<condition name='disabled_if_in' source='redisMode'>
<param>Local</param>
<target type='variable'>redisRole</target>
<target type='variable'>redisInstanceName</target>
<target type='variable'>redisSlaveInstance</target>
<target type='filelist'>redisCl</target>
<target type='variable'>redisClPort</target>
</condition>
<condition name='disabled_if_in' source='redisMode'>
<param>Local avec slave distant</param>
<target type='variable'>redisRole</target>
<target type='variable'>redisInstanceName</target>
<target type='variable'>redisSlaveInstanceName</target>
<target type='variable'>redisSlaveInstanceMaster</target>
<target type='variable'>redisClPortSlave</target>
<target type='variable'>redisClPort</target>
</condition>
<condition name='disabled_if_not_in' source='redisMode'>
<param>Local avec slave distant</param>
<target type='variable'>redisMasterIPSlave</target>
<target type='variable'>redisMasterPortSlave</target>
</condition>
<condition name='disabled_if_in' source='redisRole'>
<param>Node</param>
<target type='filelist'>redisCl</target>
<target type='variable'>redisInstanceName</target>
<target type='variable'>rdClMember</target>
<target type='variable'>rdClMemberIP</target>
<target type='variable'>rdClMemberPort</target>
@ -218,7 +177,7 @@
<param>['Leader','Node']</param>
</check>
<check name="valid_enum" target="redisMode">
<param>['Local', 'Local avec slave distant', 'Cluster']</param>
<param>['Local','Cluster']</param>
</check>
<check name="valid_enum" target="rdClMemberRole">
<param>['master','slave']</param>
@ -244,18 +203,35 @@
<param>slave</param>
</auto>
<fill name='intAdd' target='rdClMemberSlavePort'>
<param type='eole' name='num1'>rdClMemberPort</param>
<param name='num2'>2000</param>
</fill>
<fill name='calc_val' target='redisInstanceName'>
<param type='eole' name='valeur'>nom_machine</param>
</fill>
<fill name='intAdd' target='redisClPort'>
<param type='eole' name='num1'>redisPort</param>
<param name='num2'>10000</param>
</fill>
<fill name='intAdd' target='redisPortSlave'>
<param type='eole' name='num1'>redisPort</param>
<param name='num2'>2000</param>
</fill>
<fill name='intAdd' target='redisClPortSlave'>
<param type='eole' name='num1'>redisPortSlave</param>
<param name='num2'>10000</param>
</fill>
<fill name='calc_val' target='redisMaxMemorySlave'>
<param type='eole' name='valeur'>redisMaxMemory</param>
</fill>
<fill name='calc_val' target='redisMemoryPolicySlave'>
<param type='eole' name='valeur'>redisMemoryPolicy</param>
</fill>
<fill name='calc_val' target='redisTCPKeepAliveSlave'>
<param type='eole' name='valeur'>redisTCPKeepAlive</param>
</fill>

View File

@ -14,6 +14,12 @@ Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=2755
ExecStartPre=-/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d
ExecStartPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-up.d
ExecStop=-/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d
ExecStop=/bin/kill -s TERM $MAINPID
ExecStopPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-down.d
UMask=007
PrivateTmp=yes
LimitNOFILE=65535
@ -23,16 +29,7 @@ ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis
NoNewPrivileges=true
CapabilityBoundingSet=CAP_SETGID CAP_SETUID CAP_SYS_RESOURCE
MemoryDenyWriteExecute=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectControlGroups=true
RestrictRealtime=true
RestrictNamespaces=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
CapabilityBoundingSet=~CAP_SYS_PTRACE
# redis-server can write to its own config file when in cluster mode so we
# permit writing there by default. If you are not using this feature, it is

View File

@ -113,14 +113,6 @@ function redisClusterIsOK()
}
CONF="/etc/redis/cluster.conf"
INITFLAG="/usr/share/eole/redisinit.flg"
sysConf=$(grep "vm.overcommit_memory" /etc/sysctl.conf 2>&1 > /dev/null)
if [[ ${?} -ne 0 ]]
then
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
fi
[[ ! -e ${CONF} ]] && exit 0
@ -158,8 +150,9 @@ do
MASTERS+=([${name}]=${master})
done < ${CONF}
# Disable Transparent Huge Page support on kernel
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# If the cluster is "ok" don't do anything
st=$(redisClusterIsOK ${LeaderIP} ${LeaderPort})
#[[ ${?} -eq 0 ]] && exit 0
if [[ ${1} == "forget" ]]
then
@ -167,17 +160,6 @@ then
exit ${?}
fi
# If the cluster is "ok" don't do anything
st=$(redisClusterIsOK ${LeaderIP} ${LeaderPort})
[[ ${?} -eq 0 ]] && exit 0
if [[ -e ${INITFLAG} ]]
then
echo "Init allready done ... nothing to do"
exit 0
fi
echo " * Organise Cluster Meeting."
for node in ${NAMES[@]}
do
@ -250,6 +232,5 @@ echo
redisRun ${LeaderIP} ${LeaderPort} cluster info
echo
touch ${INITFLAG}
exit 0

View File

@ -83,12 +83,6 @@ protected-mode no
# If port 0 is specified Redis will not listen on a TCP socket.
port %%redisPortSlave
%if %%redisMode == 'Local avec slave distant'
slaveof %%redisMasterIPSlave %%redisMasterPortSlave
%end if
# TCP listen() backlog.
#
# In high requests-per-second environments you need an high backlog in order
@ -205,13 +199,9 @@ databases 16
#
# save ""
%if %%rdSaveDisable == 'oui'
save ""
%else
save 900 1
save 300 10
save 60 10000
%end if
# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
@ -301,7 +291,7 @@ dir /var/lib/redis
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
maxclients %%redisMaxClients
# maxclients 10000
# Don't use more memory than the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys
@ -326,7 +316,7 @@ maxclients %%redisMaxClients
# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
maxmemory %%{redisMaxMemory}mb
maxmemory %{redisMaxMemory}mb
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
@ -382,11 +372,7 @@ maxmemory-policy %%redisMemoryPolicySlave
#
# Please check http://redis.io/topics/persistence for more information.
%if %%rdAOFDisable == 'oui'
appendonly no
%else
appendonly yes
%end if
# The name of the append only file (default: "appendonly.aof")
@ -502,7 +488,6 @@ aof-load-truncated yes
# Set it to 0 or a negative value for unlimited execution without warnings.
lua-time-limit 5000
%if %%getVar('redisMode','Local') == "Cluster"
################################ REDIS CLUSTER ###############################
#
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ -610,7 +595,6 @@ cluster-require-full-coverage yes
# In order to setup your cluster make sure to read the documentation
# available at http://redis.io web site.
%end if
################################## SLOW LOG ###################################
@ -823,7 +807,7 @@ activerehashing yes
#
# Both the hard or the soft limit can be disabled by setting them to zero.
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave %%{rdCliOutBuffHardLimit}mb %%{rdCliOutBuffSoftLimit}mb 60
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# Redis calls an internal function to perform many background tasks, like

View File

@ -199,13 +199,9 @@ databases 16
#
# save ""
%if %%rdSaveDisable == 'oui'
save ""
%else
save 900 1
save 300 10
save 60 10000
%end if
# By default Redis will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed.
@ -295,7 +291,7 @@ dir /var/lib/redis
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
maxclients %%redisMaxClients
# maxclients 10000
# Don't use more memory than the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys
@ -320,7 +316,7 @@ maxclients %%redisMaxClients
# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
maxmemory %%{redisMaxMemory}mb
maxmemory %{redisMaxMemory}mb
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
@ -376,12 +372,7 @@ maxmemory-policy %%redisMemoryPolicy
#
# Please check http://redis.io/topics/persistence for more information.
%if %%rdAOFDisable == 'oui'
appendonly no
%else
appendonly yes
%end if
# The name of the append only file (default: "appendonly.aof")
@ -818,7 +809,7 @@ activerehashing yes
#
# Both the hard or the soft limit can be disabled by setting them to zero.
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave %%{rdCliOutBuffHardLimit}mb %%{rdCliOutBuffSoftLimit}mb 60
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# Redis calls an internal function to perform many background tasks, like

View File

@ -1,2 +0,0 @@
net.core.somaxconn = 512