Compare commits
12 Commits
pkg/dev/eo
...
pkg/dev/eo
Author | SHA1 | Date | |
---|---|---|---|
8869d18e17 | |||
937d0f5ce9 | |||
373275a8fc | |||
c6fb12c816 | |||
7d059ce03b | |||
225e2f5ff2 | |||
9ad47896a5 | |||
14a2bdd6dd | |||
325e51b0cf | |||
7e886ddca5 | |||
146206e353 | |||
74dec50107 |
@ -3,6 +3,7 @@
|
||||
<files>
|
||||
<!-- System configuration -->
|
||||
<file filelist='redis' name='/etc/redis/redis.conf' mkdir='True' rm='True'/>
|
||||
<file filelist='redisCl' name='/etc/redis/cluster.conf' source='redis-cluster.conf' mkdir='True' rm='True'/>
|
||||
<service servicelist="svredis">redis-server</service>
|
||||
<service_access service='redis-server'>
|
||||
<port service_accesslist='saRedis' protocol='tcp' port_type='SymLinkOption'>redisPort</port>
|
||||
@ -42,9 +43,12 @@
|
||||
<value>Leader</value>
|
||||
</variable>
|
||||
<variable name='redisMasterIP' type='ip' description="Adresse IP du Leader Redis"/>
|
||||
<variable name='redisMasterIP' type='ip' description="Adresse IP du Leader Redis"/>
|
||||
<variable name='redisMasterPort' type='number' description="Port d'écoute du Leader Redis"/>
|
||||
<variable name='redisMasterPassword' type='string' description="Passphrase d'accès à la grappe Redis"/>
|
||||
<variable name='rdClMemberIP' type='ip' description="Adresse IP du Noeud"/>
|
||||
<variable name='rdClMember' type='ip' description="Nom du noeud" multi='True'/>
|
||||
<variable name='rdClMemberIP' type='ip' description="Adresse IP du noeud" multi='True'/>
|
||||
<variable name='rdClMemberPort' type='number' description="Port d'écoute du noeud" multi='True'/>
|
||||
<variable name='rdClMemberRole' type='ip' description="Rôle du membre"/>
|
||||
<variable name='rdClMemberMaster' type='ip' description="Noeud source des données pour ce membre"/>
|
||||
</family>
|
||||
@ -69,6 +73,7 @@
|
||||
<target type='variable'>redisMasterIP</target>
|
||||
<target type='variable'>redisMasterPort</target>
|
||||
<target type='variable'>redisMasterPassword</target>
|
||||
<target type='filelist'>redisCl</target>
|
||||
</condition>
|
||||
|
||||
<condition name='disabled_if_in' source='redisRole'>
|
||||
@ -77,6 +82,11 @@
|
||||
<target type='variable'>redisMasterPort</target>
|
||||
</condition>
|
||||
|
||||
<condition name='disabled_if_in' source='redisRole'>
|
||||
<param>Node</param>
|
||||
<target type='filelist'>redisCl</target>
|
||||
</condition>
|
||||
|
||||
<condition name='disabled_if_in' source='rdClMemberRole'>
|
||||
<param>master</param>
|
||||
<target type='variable'>rdClMemberMaster</target>
|
||||
@ -85,6 +95,13 @@
|
||||
<group master='rdClIP'>
|
||||
<slave>rdClmask</slave>
|
||||
</group>
|
||||
|
||||
<group master='rdClMember'>
|
||||
<slave>rdClMemberIP</slave>
|
||||
<slave>rdClMemberPort</slave>
|
||||
<slave>rdClMemberRole</slave>
|
||||
<slave>rdClMemberMaster</slave>
|
||||
</group>
|
||||
<check name="valid_enum" target="redisRole">
|
||||
<param>['Leader','Node']</param>
|
||||
</check>
|
||||
|
29
postservice/91-redis-init
Executable file
29
postservice/91-redis-init
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Cluster init !
|
||||
#
|
||||
|
||||
redisTrib="/usr/share/doc/redis-tools/examples/redis-trib.rb"
|
||||
CONF="/etc/redis/cluster.conf"
|
||||
|
||||
if [[ -f ${1} ]]
|
||||
then
|
||||
CONF=${1}
|
||||
fi
|
||||
|
||||
if [[ -f "${CONF}" ]]
|
||||
then
|
||||
LEADER=$(awk -F ':' '/^leader/ {print $2 ":" $3}' ${CONF})
|
||||
|
||||
REPLICA=$(${redisTrib} check ${LEADER} | awk '/additional replica/ {print $1}')
|
||||
|
||||
if [[ ${REPLICA} -eq 0 ]]
|
||||
then
|
||||
# Create Cluster
|
||||
yes yes | ${redisTrib} create --replicas 1 $(awk -F ':' '{printf "%s:%s ", $2, $3}' ${CONF})
|
||||
fi
|
||||
else
|
||||
echo "${CONF} is missing"
|
||||
exit 0
|
||||
fi
|
6
tmpl/redis-cluster.conf
Normal file
6
tmpl/redis-cluster.conf
Normal file
@ -0,0 +1,6 @@
|
||||
%if %%getVar('activer_redis','non') == 'oui' and %%getVar('redisRole','Node') == 'Leader'
|
||||
Leader:127.0.0.1:%%{redisPort}:master::
|
||||
%for %%node in %%getVar('rdClMember',[])
|
||||
%%{node}:%%{node.rdClMemberIP}:%%{node.rdClMemberPort}:%%{node.rdClMemberRole}:%%{node.rdClMemberMaster}:
|
||||
%end for
|
||||
%end if
|
Reference in New Issue
Block a user