Compare commits

..

2 Commits

12 changed files with 145 additions and 19 deletions

2
.gitignore vendored
View File

@ -11,6 +11,8 @@ docker-compose.yml
/services/30-openldap/volume/data /services/30-openldap/volume/data
/services/30-redis/volume
/services/40-keycloak/volume/realm/realm-export.json /services/40-keycloak/volume/realm/realm-export.json
/services/50-nextcloud/volume/data /services/50-nextcloud/volume/data

21
env/.env vendored
View File

@ -73,6 +73,13 @@ REDIS_LOCAL=1
REDIS_HOST=${REDIS_SERVICE_NAME} REDIS_HOST=${REDIS_SERVICE_NAME}
REDIS_PORT=6379 REDIS_PORT=6379
# SENTINEL
SENTINEL_SERVICE_NAME=sentinel
SENTINEL_ACTIVATE=1
SENTINEL_LOCAL=1
SENTINEL_HOST=${SENTINEL_SERVICE_NAME}
SENTINEL_PORT=26379
# MINIO # MINIO
MINIO_SERVICE_NAME=minio MINIO_SERVICE_NAME=minio
MINIO_ACTIVATE=1 MINIO_ACTIVATE=1
@ -101,18 +108,28 @@ LDAP_BASEORGANISATION=ou=ninegate,${LDAP_BASEDN}
LDAP_BASEUSER=ou=users,${LDAP_BASEORGANISATION} LDAP_BASEUSER=ou=users,${LDAP_BASEORGANISATION}
LDAP_BASENIVEAU01=ou=niveau01,${LDAP_BASEORGANISATION} LDAP_BASENIVEAU01=ou=niveau01,${LDAP_BASEORGANISATION}
LDAP_BASENIVEAU02=ou=niveau02,${LDAP_BASEORGANISATION} LDAP_BASENIVEAU02=ou=niveau02,${LDAP_BASEORGANISATION}
LDAP_BASENIVEAU03=ou=niveau03,${LDAP_BASEORGANISATION}
LDAP_BASENIVEAU04=ou=niveau04,${LDAP_BASEORGANISATION}
LDAP_BASEGROUP=ou=groups,${LDAP_BASEORGANISATION} LDAP_BASEGROUP=ou=groups,${LDAP_BASEORGANISATION}
LDAP_SYNC=1 LDAP_SYNC=1
LDAP_TEMPLATE=open LDAP_TEMPLATE=open
LDAP_USERNAME=uid LDAP_USERNAME=uid
LDAP_FIRSTNAME=givenname LDAP_FIRSTNAME=givenname
LDAP_LASTNAME=sn LDAP_LASTNAME=sn
LDAP_DISPLAYNAME=displayName LDAP_DISPLAYNAME=displayName
LDAP_EMAIL=mail LDAP_EMAIL=mail
LDAP_MEMBER=memberUid LDAP_MEMBEROF=memberOf
LDAP_USER_FILTER="(&(${LDAP_USERNAME}=*)(objectClass=person)(!(description=Computer)))"
LDAP_GROUP_GID=gidnumber
LDAP_GROUP_NAME=cn
LDAP_GROUP_MEMBER=memberUid
LDAP_GROUP_MEMBERISDN=0
LDAP_LOGIN_FILTER="(&(${LDAP_USERNAME}=%uid%)(objectClass=person)(!(description=Computer)))" LDAP_LOGIN_FILTER="(&(${LDAP_USERNAME}=%uid%)(objectClass=person)(!(description=Computer)))"
LDAP_USER_FILTER="(&(${LDAP_USERNAME}=*)(objectClass=person)(!(description=Computer)))"
LDAP_GROUP_FILTER="(&(objectClass=posixGroup))" LDAP_GROUP_FILTER="(&(objectClass=posixGroup))"
SCRIBE_GROUP=1 SCRIBE_GROUP=1
SCRIBE_MASTER=1 SCRIBE_MASTER=1
OPENLDAPREQNIVEAU01="(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))" OPENLDAPREQNIVEAU01="(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))"

View File

@ -0,0 +1,19 @@
FROM redis:6-alpine
ENV SENTINEL_QUORUM 2
ENV SENTINEL_DOWN_AFTER 1000
ENV SENTINEL_FAILOVER 1000
RUN mkdir -p /redis
WORKDIR /redis
COPY sentinel.conf .
COPY sentinel-entrypoint.sh /usr/local/bin/
RUN chown redis:redis /redis/* && \
chmod +x /usr/local/bin/sentinel-entrypoint.sh
EXPOSE 26379
ENTRYPOINT ["sentinel-entrypoint.sh"]

View File

@ -0,0 +1,7 @@
#!/bin/sh
sed -i "s/\$SENTINEL_QUORUM/$SENTINEL_QUORUM/g" /redis/sentinel.conf
sed -i "s/\$SENTINEL_DOWN_AFTER/$SENTINEL_DOWN_AFTER/g" /redis/sentinel.conf
sed -i "s/\$SENTINEL_FAILOVER/$SENTINEL_FAILOVER/g" /redis/sentinel.conf
redis-server /redis/sentinel.conf --sentinel

View File

@ -0,0 +1,9 @@
port 26379
dir /tmp
sentinel resolve-hostnames yes
sentinel monitor redismaster redis 6379 $SENTINEL_QUORUM
sentinel down-after-milliseconds redismaster $SENTINEL_DOWN_AFTER
sentinel parallel-syncs redismaster 1
sentinel failover-timeout redismaster $SENTINEL_FAILOVER

25
nine.sh
View File

@ -106,6 +106,26 @@ destroyall(){
fi fi
} }
#===========================================================================================================================================
#== PULL ===================================================================================================================================
#===========================================================================================================================================
pull(){
if [[ "$1" == "" ]]
then
Question_ouinon "Souhaitez-vous mettre à jour les images ?"
else
Question_ouinon "Souhaitez-vous mettre à jour l'images du service $1 ?"
fi
if [[ "$?" = 0 ]]
then
stop $1
docker-compose pull $1
fi
}
#=========================================================================================================================================== #===========================================================================================================================================
#== ENV ==================================================================================================================================== #== ENV ====================================================================================================================================
#=========================================================================================================================================== #===========================================================================================================================================
@ -281,6 +301,9 @@ then
else else
destroy$2 destroy$2
fi fi
elif [[ $1 == "pull" ]]
then
pull $2
elif [[ $1 == "services" ]] elif [[ $1 == "services" ]]
then then
services services
@ -331,6 +354,8 @@ else
EchoRouge "nine.sh bash monservice > lance un terminel dans le conteneur de monservice" EchoRouge "nine.sh bash monservice > lance un terminel dans le conteneur de monservice"
EchoRouge "nine.sh destroyall > détruit l'ensemble des services avec l'ensemble des BDD et des volumes persistant" EchoRouge "nine.sh destroyall > détruit l'ensemble des services avec l'ensemble des BDD et des volumes persistant"
EchoRouge "nine.sh destroy monservice > détruit monservices et si souhaitez sa BDD et ses volumes persistant" EchoRouge "nine.sh destroy monservice > détruit monservices et si souhaitez sa BDD et ses volumes persistant"
EchoRouge "nine.sh pull > Mettre à jour l'ensemble des images"
EchoRouge "nine.sh pull monservice > Mettre à jour l'image de monservice"
EchoRouge "nine.sh services > Liste des Services" EchoRouge "nine.sh services > Liste des Services"
EchoRouge "nine.sh logs > LOGS de l'ensemble des services" EchoRouge "nine.sh logs > LOGS de l'ensemble des services"
EchoRouge "nine.sh logs monservice > LOGS de monservice" EchoRouge "nine.sh logs monservice > LOGS de monservice"

View File

@ -10,3 +10,5 @@ services:
- nine-network - nine-network
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
volumes:
- ./services/30-redis/volume/data:/data:rw

View File

@ -18,6 +18,16 @@ function destroyredis(){
stop $REDIS_SERVICE_NAME 1 stop $REDIS_SERVICE_NAME 1
docker-compose rm -s -v -f "$REDIS_SERVICE_NAME" docker-compose rm -s -v -f "$REDIS_SERVICE_NAME"
if [[ -z $1 ]]; then
Question_ouinon "Souhaitez-vous supprimer la BDD associé à $REDIS_SERVICE_NAME ?";
response=$?
fi
if [[ "$response" == 0 || ! -z $1 ]]
then
EchoRouge "Delete BDD = $REDIS_SERVICE_NAME"
rm -rf services/30-redis/volume/data
fi
echo "" echo ""
fi fi
} }

View File

@ -0,0 +1,11 @@
services:
# Sentinel
# Sentinel du servince redis
# Port interne 26379
sentinel:
image: reg.cadoles.com/envole/sentinel
container_name: nine-sentinel
env_file: ./services/35-sentinel/env/.env.merge
networks:
- nine-network

3
services/35-sentinel/env/.env vendored Normal file
View File

@ -0,0 +1,3 @@
# == SENTINEL ================================================================================================================================

View File

@ -0,0 +1,23 @@
#!/bin/bash
function upsentinel {
if [[ $SENTINEL_ACTIVATE == 1 && $SENTINEL_LOCAL == 1 ]]
then
Title "SENTINEL"
EchoVert "CONTAINER"
upservice $SENTINEL_SERVICE_NAME
Echo
fi
}
function destroysentinel(){
if [[ $SENTINEL_LOCAL == 1 ]]
then
Title "DESTROY $SENTINEL_SERVICE_NAME"
stop $SENTINEL_SERVICE_NAME 1
docker-compose rm -s -v -f "$SENTINEL_SERVICE_NAME"
echo ""
fi
}

View File

@ -19,7 +19,7 @@ MAILER_NOREPLY=noreply@noreply.fr
# Basic # Basic
APP_WEBURL=${WEB_URL} APP_WEBURL=${WEB_URL}
APP_MASTERIDENTITY=${MASTERIDENTITY} # SQL | SSO | LDAP APP_MASTERIDENTITY=LDAP # SQL | SSO | LDAP
APP_AUTH=${MODE_AUTH} # SQL | CAS | LDAP | OPENID APP_AUTH=${MODE_AUTH} # SQL | CAS | LDAP | OPENID
APP_ALIAS=/${NINESKELETOR_PREFIX}/ APP_ALIAS=/${NINESKELETOR_PREFIX}/
APP_NAME=Nineskeletor APP_NAME=Nineskeletor
@ -40,7 +40,7 @@ APP_NIVEAU02LABEL="Niveau 02"
APP_NIVEAU02LABELS="Niveaux 02" APP_NIVEAU02LABELS="Niveaux 02"
APP_NIVEAU02MANDATORY='[""]' APP_NIVEAU02MANDATORY='[""]'
APP_NIVEAU03USE=1 APP_NIVEAU03USE=0
APP_NIVEAU03LABEL="Niveau 03" APP_NIVEAU03LABEL="Niveau 03"
APP_NIVEAU03LABELS="Niveaux 03" APP_NIVEAU03LABELS="Niveaux 03"
APP_NIVEAU03MANDATORY='[""]' APP_NIVEAU03MANDATORY='[""]'
@ -62,24 +62,22 @@ APP_ANNUSCOPEUSER=ALL # ALL or number
APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field
# Synchronisation # Synchronisation
APP_SYNCHRO=NINE2LDAP # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE APP_SYNCHRO=LDAP2NINE # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU03=0 # Purger les niveau03s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU04=0 # Purger les niveau04s obsolète en cas de synchronisation
APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation
APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation
# LDAP # LDAP
LDAP_PORT=389 # port du serveur ldap ex:389 LDAP_USETLS=${LDAP_TLS} # connection TLS 0/1
LDAP_USETLS=0 # connection TLS 0/1
LDAP_USERWRITER=1 # LDAP_USER compte writer ? 0/1 LDAP_USERWRITER=1 # LDAP_USER compte writer ? 0/1
LDAP_USER=${LDAP_ADMIN_USERNAME} # DN compte access ldap
LDAP_MEMBEROF=memberof # Attribut memberof d'un user LDAP_GROUPGID=${LDAP_GROUP_GID} # Attribut gid d'un groupe
LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe LDAP_GROUPNAME=${LDAP_GROUP_NAME} # Attribut name d'un groupe
LDAP_GROUPNAME=cn # Attribut name d'un groupe LDAP_GROUPMEMBER=${LDAP_GROUP_MEMBER} # Attribut stockant les membres d'un groupe
LDAP_GROUPMEMBER=${LDAP_MEMBER} # Attribut stockant les membres d'un groupe LDAP_GROUPMEMBERISDN=${LDAP_GROUP_MEMBERISDN} # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1
LDAP_GROUPMEMBERISDN=0 # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1
LDAP_FILTERGROUP=${LDAP_GROUP_FILTER} # requete ldap pour rechercher les groupes LDAP_FILTERGROUP=${LDAP_GROUP_FILTER} # requete ldap pour rechercher les groupes
LDAP_FILTERUSER=${LDAP_USER_FILTER} # requete ldap pour rechercher les users LDAP_FILTERUSER=${LDAP_USER_FILTER} # requete ldap pour rechercher les users
LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant