797 lines
32 KiB
Bash
Executable File
797 lines
32 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# kan: 30/03/2021
|
|
# koi: créer les users dans le système KAZ, le KazWorld, to become a kaznaute, a kaaaaaaaznaute!
|
|
# ki : fab
|
|
# test git du 02/10/2023 depuis snster
|
|
|
|
# !!! need by htpasswd
|
|
# apt-get install apache2-utils dos2unix
|
|
|
|
# rechercher tous les TODO du script pour le reste à faire
|
|
##########################################################
|
|
|
|
# fonctionnement :
|
|
# vérification de l'existence du fichier des demandes et création si absent
|
|
# on garnit les variables
|
|
# on vérifie les variables
|
|
# on créé un mdp utilisable par tous les services (identifiant : email kaz)
|
|
# pour chacun des services KAZ (NC / WP / DOKUWIKI)
|
|
# * on vérifie si le sous-domaine existe, on le créé sinon
|
|
# * on créé le user et le met admin si nécessaire
|
|
# * s'il existe déjà, rollback (y compris sur les autres services)
|
|
# pour paheko, on vérifie si le sous-domaine existe, on le créé sinon
|
|
# pour mattermost, on créé le user et l'équipe si nécé=essaire, sur l'agora de base
|
|
# tout est ok, on créé l'email
|
|
# on créé le mail d'inscription avec tout le détail des services créés (url/user)
|
|
# on inscrit le user dans la liste infos@${domain_sympa}
|
|
# on avertit contact@kaz.bzh et on post dans l'agora/creation_compte
|
|
|
|
# TODO : utilisez la req sql pour attaquer paheko et créer createUser.txt en auto et modifier le champ dans paheko ACTION de "à créer" à "aucune"
|
|
|
|
# on récupère toutes les variables et mdp
|
|
# on prend comme source des repertoire le dossier du dessus ( /kaz dans notre cas )
|
|
KAZ_ROOT=$(cd "$(dirname $0)/.."; pwd)
|
|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
|
|
setKazVars
|
|
|
|
cd "${KAZ_ROOT}"
|
|
. "${DOCKERS_ENV}"
|
|
. "${KAZ_KEY_DIR}/SetAllPass.sh"
|
|
|
|
# DOCK_DIR="${KAZ_COMP_DIR}" # ???
|
|
|
|
SETUP_MAIL="docker exec -ti mailServ setup"
|
|
|
|
# on détermine le script appelant, le fichier log et le fichier source, tous issus de la même racine
|
|
PRG=$(basename $0)
|
|
RACINE=${PRG%.sh}
|
|
|
|
CREATE_ORGA_CMD="${KAZ_CONF_DIR}/orgaTmpl/orga-gen.sh"
|
|
|
|
mkdir -p "${KAZ_ROOT}/tmp" "${KAZ_ROOT}/log"
|
|
|
|
# fichier source dans lequel se trouve les infos sur les utilisateurs à créer
|
|
FILE="${KAZ_ROOT}/tmp/${RACINE}.txt"
|
|
# fichier de log pour
|
|
LOG="${KAZ_ROOT}/log/${RACINE}.log"
|
|
# TODO : risque si 2 admins lance en même temps
|
|
|
|
CMD_LOGIN="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-1-LOGIN.sh"
|
|
CMD_SYMPA="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-2-SYMPA.sh"
|
|
CMD_ORGA="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-3-ORGA.sh"
|
|
CMD_PROXY="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-4-PROXY.sh"
|
|
CMD_FIRST="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-5-FIRST.sh"
|
|
CMD_INIT="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-6-INIT.sh"
|
|
CMD_PAHEKO="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-7-PAHEKO.sh"
|
|
CMD_MSG="${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-8-MSG.sh"
|
|
TEMP_PAHEKO="${KAZ_ROOT}/tmp/${RACINE}.TEMP_PHAEKO.cvs"
|
|
|
|
URL_SITE="${domain}"
|
|
URL_WEBMAIL="${webmailHost}.${domain}"
|
|
URL_LISTE="${sympaHost}.${domain}"
|
|
URL_AGORA="${matterHost}.${domain}"
|
|
URL_MDP="${ldapUIHost}.${domain}"
|
|
# URL_PAHEKO="kaz-${pahekoHost}.${domain}"
|
|
URL_PAHEKO="${httpProto}://${paheko_API_USER}:${paheko_API_PASSWORD}@kaz-paheko.${domain}"
|
|
|
|
availableProxyComposes=($(getList "${KAZ_CONF_DIR}/container-proxy.list"))
|
|
|
|
NL_LIST=infos@${domain_sympa}
|
|
|
|
# indiqué dans le mail d'inscription
|
|
# (mail+cloud base+agora : max=3, min=2)
|
|
NB_SERVICES_BASE=0
|
|
# max : 5, min : 0
|
|
NB_SERVICES_DEDIES=0
|
|
# note qu'on rajoute dans le mail pour les orgas
|
|
MESSAGE_MAIL_ORGA_1=""
|
|
MESSAGE_MAIL_ORGA_2=""
|
|
MESSAGE_MAIL_ORGA_3=""
|
|
|
|
############################
|
|
# Traitement des arguments #
|
|
############################
|
|
|
|
CREATE_ORGA="true"
|
|
SIMULATION=YES
|
|
|
|
usage () {
|
|
echo "${PRG} [-h] [-s] [-e] [-v] [-u]"
|
|
echo " version 1.0"
|
|
echo " Create users in kaz world using ${FILE} as source file. All logs in ${LOG}"
|
|
echo " -h Display this help."
|
|
echo " -s Simulate. none user created but you can see the result in ${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-*.sh"
|
|
echo " -e Execute commands. user or orga will be created !!!"
|
|
echo " -u create only user (don't create orga)"
|
|
echo " -v or -V display site informations"
|
|
}
|
|
|
|
for ARG in $*; do
|
|
case "${ARG}" in
|
|
'-h' | '-help' )
|
|
usage
|
|
shift
|
|
exit;;
|
|
-s)
|
|
shift;;
|
|
-e)
|
|
SIMULATION=NO
|
|
shift;;
|
|
-u)
|
|
# only user => no orga
|
|
CREATE_ORGA=
|
|
shift;;
|
|
'-v' | '-V' )
|
|
echo "${PRG}, root : ${KAZ_ROOT}, on domain : ${URL_SITE}"
|
|
exit
|
|
;;
|
|
*)
|
|
usage
|
|
echo "${PRG}: ${RED}unknown parameter${NC}"
|
|
shift
|
|
exit;;
|
|
esac
|
|
done
|
|
|
|
##################################
|
|
# Inventaire des comptes à créer #
|
|
##################################
|
|
|
|
# la recherche des comptes à créé avec la commande :
|
|
# bin/interoPaheko.sh
|
|
|
|
# création d'un fichier vide
|
|
# TODO : même code ici et dans interoPaheko.sh => risque de divergence
|
|
if [ ! -s "${FILE}" ];then
|
|
echo "${RED}"
|
|
echo "ERREUR : le fichier ${FILE} n'existait pas"
|
|
echo "Il vient d'être créé. Vous pouvez le compléter."
|
|
echo "${NC}"
|
|
cat > "${FILE}" <<EOF
|
|
# -- fichier de création des comptes KAZ
|
|
# --
|
|
# -- 1 ligne par compte
|
|
# -- champs séparés par ";". les espaces en début et en fin sont enlevés
|
|
# -- laisser vide si pas de donnée
|
|
# -- pas d'espace dans les variables
|
|
# --
|
|
# -- ORGA : nom de l'organisation (max 23 car), vide sinon
|
|
# -- ADMIN_ORGA : O/N indique si le user est admin de l'orga (va le créer comme admin du NC de l'orga et admin de l'équipe agora)
|
|
# -- NC_ORGA : O/N indique si l'orga a demandé un NC
|
|
# -- PAHEKO_ORGA : O/N indique si l'orga a demandé un paheko
|
|
# -- WP_ORGA : O/N indique si l'orga a demandé un wp
|
|
# -- AGORA_ORGA : O/N indique si l'orga a demandé un mattermost
|
|
# -- WIKI_ORGA : O/N indique si l'orga a demandé un wiki
|
|
# -- NC_BASE : O/N indique si le user doit être inscrit dans le NC de base
|
|
# -- GROUPE_NC_BASE : soit null soit le groupe dans le NC de base
|
|
# -- EQUIPE_AGORA : soit null soit equipe agora (max 23 car)
|
|
# -- QUOTA = (1/10/20/...) en GB
|
|
# --
|
|
# NOM ; PRENOM ; EMAIL_SOUHAITE ; EMAIL_SECOURS ; ORGA ; ADMIN_ORGA ; NC_ORGA ; PAHEKO_ORGA ; WP_ORGA ; AGORA_ORGA ; WIKI_ORGA ; NC_BASE ; GROUPE_NC_BASE ; EQUIPE_AGORA ; QUOTA
|
|
|
|
# exemple pour un compte découverte :
|
|
# loufoque ; le_mec; loufoque.le-mec@kaz.bzh ; gregomondo@kaz.bzh; ; N; N; N; N; N; N;N;;; 1
|
|
|
|
# exemple pour un compte asso de l'orga gogol avec le service dédié NC uniquement + une équipe dans l'agora
|
|
# loufoque ; le_mec; loufoque.le-mec@kaz.bzh ; gregomondo@kaz.bzh; gogol ; O; O; N; N; N; N;N;;gogol_team; 10
|
|
|
|
EOF
|
|
exit
|
|
fi
|
|
ALL_LINES=$(sed -e "/^[ \t]*#.*$/d" -e "/^[ \t]*$/d" "${FILE}")
|
|
if [ -z "${ALL_LINES}" ];then
|
|
usage
|
|
echo "${PRG}: ${RED}nothing to do in ${FILE}${NC}"
|
|
exit
|
|
fi
|
|
|
|
###################
|
|
# Initialisations #
|
|
###################
|
|
|
|
# emails et les alias KAZ déjà créés
|
|
TFILE_EMAIL="$(mktemp /tmp/${RACINE}.XXXXXXXXX.TFILE_EMAIL)"
|
|
# comptes mattermost
|
|
TFILE_MM="$(mktemp /tmp/${RACINE}.XXXXXXXXX.TFILE_MM)"
|
|
# l'ident NextCloud
|
|
TEMP_USER_NC="$(mktemp /tmp/${RACINE}.XXXXXXXXX.TEMP_USER_NC)"
|
|
# le groupe NextCloud
|
|
TEMP_GROUP_NC="$(mktemp /tmp/${RACINE}.XXXXXXXXX.TEMP_GROUP_NC)"
|
|
# l'ident WP
|
|
TEMP_USER_WP="$(mktemp /tmp/${RACINE}.XXXXXXXXX.TEMP_USER_WP)"
|
|
|
|
trap "rm -f '${TFILE_EMAIL}' '${TFILE_MM}' '${TEMP_USER_NC}' '${TEMP_GROUP_NC}' '${TEMP_USER_WP}'" 0 1 2 3 15
|
|
|
|
for i in "${CMD_LOGIN}" "${CMD_SYMPA}" "${CMD_ORGA}" "${CMD_PROXY}" "${CMD_FIRST}" "${CMD_INIT}" "${CMD_PAHEKO}" "${CMD_MSG}"; do
|
|
echo "#!/bin/bash" > "${i}" && chmod +x "${i}"
|
|
done
|
|
|
|
echo "numero,nom,quota_disque,action_auto" > "${TEMP_PAHEKO}"
|
|
echo "curl \"https://${paheko_API_USER}:${paheko_API_PASSWORD}@kaz-paheko.kaz.bzh/api/user/import\" -T \"${TEMP_PAHEKO}\"" >> "${CMD_PAHEKO}"
|
|
|
|
#echo "récupération des login postfix... "
|
|
## on stocke les emails et les alias KAZ déjà créés
|
|
#(
|
|
# ${SETUP_MAIL} email list
|
|
# ${SETUP_MAIL} alias list
|
|
#) | cut -d ' ' -f 2 | grep @ | sort > "${TFILE_EMAIL}"
|
|
# did on supprime le ^M en fin de fichier pour pas faire planter les grep
|
|
#dos2unix "${TFILE_EMAIL}"
|
|
|
|
echo "on récupère tous les emails (secours/alias/kaz) sur le ldap"
|
|
FILE_LDIF=/home/sauve/ldap.ldif
|
|
/kaz/bin/ldap/ldap_sauve.sh
|
|
gunzip ${FILE_LDIF}.gz -f
|
|
grep -aEiorh '([[:alnum:]]+([._-][[:alnum:]]+)*@[[:alnum:]]+([._-][[:alnum:]]+)*\.[[:alpha:]]{2,6})' ${FILE_LDIF} | sort -u > ${TFILE_EMAIL}
|
|
|
|
echo "récupération des login mattermost... "
|
|
docker exec -ti mattermostServ bin/mmctl user list --all | grep ":.*(" | cut -d ':' -f 2 | cut -d ' ' -f 2 | sort > "${TFILE_MM}"
|
|
|
|
dos2unix "${TFILE_MM}"
|
|
echo "done"
|
|
|
|
# se connecter à l'agora pour ensuite pouvoir passer toutes les commandes mmctl
|
|
echo "docker exec -ti mattermostServ bin/mmctl auth login ${httpProto}://${URL_AGORA} --name local-server --username ${mattermost_user} --password ${mattermost_pass}" | tee -a "${CMD_INIT}"
|
|
|
|
# vérif des emails
|
|
regex="^(([A-Za-z0-9]+((\.|\-|\_|\+)?[A-Za-z0-9]?)*[A-Za-z0-9]+)|[A-Za-z0-9]+)@(([A-Za-z0-9]+)+((\.|\-|\_)?([A-Za-z0-9]+)+)*)+\.([A-Za-z]{2,})+$"
|
|
function validator {
|
|
if ! [[ "$1" =~ ${regex} ]]; then
|
|
# printf "* %-48s \e[1;31m[fail]\e[m\n" "${1}"
|
|
(
|
|
echo
|
|
echo "ERREUR : le paramètre ${RED}${BOLD}$1 n'est pas un email valide${NC} - on stoppe tout - aucun utilisateur de créé"
|
|
echo
|
|
) | tee -a "${LOG}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
######################################
|
|
# Boucle lecture des comptes à créer #
|
|
######################################
|
|
echo -e "$(date '+%Y-%m-%d %H:%M:%S') : ${PRG} - sauvegarde des utilisateurs à créer" | tee "${LOG}"
|
|
cat "${FILE}" >> "${LOG}"
|
|
|
|
LDAP_IP=$(docker inspect -f '{{.NetworkSettings.Networks.ldapNet.IPAddress}}' ldapServ)
|
|
ALL_ORGA=
|
|
|
|
while read ligne; do
|
|
|
|
# | xargs permet de faire un trim
|
|
NOM=$(awk -F ";" '{print $1}' <<< "${ligne}" | xargs)
|
|
PRENOM=$(awk -F ";" '{print $2}' <<< "${ligne}" | xargs)
|
|
|
|
declare -A tab_email
|
|
tab_email[EMAIL_SOUHAITE]=$(awk -F ";" '{print $3}' <<< "${ligne}" | xargs)
|
|
tab_email[EMAIL_SECOURS]=$(awk -F ";" '{print $4}' <<< "${ligne}" | xargs)
|
|
|
|
ORGA=$(awk -F ";" '{print $5}' <<< "${ligne}" | xargs)
|
|
ORGA=${ORGA,,}
|
|
|
|
declare -A service
|
|
service[ADMIN_ORGA]=$(awk -F ";" '{print $6}' <<< "${ligne}" | xargs)
|
|
service[NC_ORGA]=$(awk -F ";" '{print $7}' <<< "${ligne}" | xargs)
|
|
service[PAHEKO_ORGA]=$(awk -F ";" '{print $8}' <<< "${ligne}" | xargs)
|
|
service[WP_ORGA]=$(awk -F ";" '{print $9}' <<< "${ligne}" | xargs)
|
|
service[AGORA_ORGA]=$(awk -F ";" '{print $10}' <<< "${ligne}" | xargs)
|
|
service[WIKI_ORGA]=$(awk -F ";" '{print $11}' <<< "${ligne}" | xargs)
|
|
service[NC_BASE]=$(awk -F ";" '{print $12}' <<< "${ligne}" | xargs)
|
|
|
|
GROUPE_NC_BASE=$(awk -F ";" '{print $13}' <<< "${ligne}" | xargs)
|
|
GROUPE_NC_BASE="${GROUPE_NC_BASE,,}"
|
|
EQUIPE_AGORA=$(awk -F ";" '{print $14}' <<< "${ligne}" | xargs)
|
|
EQUIPE_AGORA=${EQUIPE_AGORA,,}
|
|
QUOTA=$(awk -F ";" '{print $15}' <<< "${ligne}" | xargs)
|
|
PASSWORD=$(awk -F ";" '{print $16}' <<< "${ligne}" | xargs)
|
|
|
|
IDENT_KAZ=$(unaccent utf8 "${PRENOM,,}.${NOM,,}")
|
|
EMAIL_SOUHAITE=${tab_email[EMAIL_SOUHAITE]}
|
|
EMAIL_SECOURS=${tab_email[EMAIL_SECOURS]}
|
|
|
|
echo -e "${NL}***************************** traitement de ${ligne}" | tee -a "${LOG}"
|
|
|
|
###########################
|
|
# Vérification des champs #
|
|
###########################
|
|
|
|
for k in "${!tab_email[@]}"; do
|
|
validator "${tab_email[${k}]}"
|
|
done
|
|
|
|
# vérif des champs O/N
|
|
for k in "${!service[@]}"; do
|
|
if [ "${service[${k}]}" != "O" -a "${service[${k}]}" != "N" ]; then
|
|
(
|
|
echo "${RED}"
|
|
echo "${k} : ${service[${k}]}"
|
|
echo "ERREUR : le paramètre ${k} accepte O ou N - on stoppe tout - aucun utilisateur de créé"
|
|
echo "${NC}"
|
|
) | tee -a "${LOG}"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# taille ORGA et EQUIPE_AGORA
|
|
TAILLE_MAX="23"
|
|
if [ "${#ORGA}" -gt "${TAILLE_MAX}" ]; then
|
|
(
|
|
echo "${RED}"
|
|
echo "ERREUR : le paramètre ORGA est trop grand : ${ORGA} , taille max : ${TAILLE_MAX} - on stoppe tout - aucun utilisateur de créé"
|
|
echo "${NC}"
|
|
) | tee -a "${LOG}"
|
|
exit 1
|
|
fi
|
|
if [ "${#ORGA}" -gt "0" ]; then
|
|
if [[ "${ORGA}" =~ ^[[:alnum:]-]+$ ]]; then
|
|
echo "ok"
|
|
else
|
|
(
|
|
echo "${RED}"
|
|
echo "ERREUR : le paramètre ORGA ne contient pas les caractères autorisés : ${ORGA} - on stoppe tout - aucun utilisateur de créé"
|
|
echo "${NC}"
|
|
) | tee -a "${LOG}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "${#EQUIPE_AGORA}" -gt "${TAILLE_MAX}" ]; then
|
|
(
|
|
echo "${RED}"
|
|
echo "ERREUR : le paramètre EQUIPE_AGORA est trop grand : ${EQUIPE_AGORA} , taille max : ${TAILLE_MAX} - on stoppe tout - aucun utilisateur de créé"
|
|
echo "${NC}"
|
|
) | tee -a "${LOG}"
|
|
exit 1
|
|
fi
|
|
|
|
# vérif quota est entier
|
|
if ! [[ "${QUOTA}" =~ ^[[:digit:]]+$ ]]; then
|
|
(
|
|
echo
|
|
echo "ERREUR : ${RED}${BOLD}QUOTA n'est pas numérique : ${QUOTA}${NC} - on stoppe tout - aucun utilisateur de créé"
|
|
) | tee -a "${LOG}"
|
|
fi
|
|
|
|
####################################################
|
|
# cree un mdp acceptable par postfix/nc/mattermost #
|
|
####################################################
|
|
if [ -z ${PASSWORD} ]; then
|
|
PASSWORD=_`apg -n 1 -m 10 -M NCL -d`_
|
|
fi
|
|
SEND_MSG_CREATE=
|
|
if [ -n "${ORGA}" -a -z "${CREATE_ORGA}" ]; then
|
|
# skeep orga
|
|
continue
|
|
fi
|
|
|
|
####################################################################
|
|
# TODO: Test de l'identKAZ du ldap, il faut l'unicité. si KO, STOP #
|
|
####################################################################
|
|
|
|
###################################
|
|
# Création du compe de messagerie #
|
|
###################################
|
|
# le mail existe t-il déjà ?
|
|
if grep -q "^${EMAIL_SOUHAITE}$" "${TFILE_EMAIL}"; then
|
|
echo "${EMAIL_SOUHAITE} existe déjà" | tee -a "${LOG}"
|
|
else
|
|
SEND_MSG_CREATE=true
|
|
echo "${EMAIL_SOUHAITE} n'existe pas" | tee -a "${LOG}"
|
|
echo "${SETUP_MAIL} email add ${EMAIL_SOUHAITE} ${PASSWORD}" | tee -a "${CMD_LOGIN}"
|
|
echo "${SETUP_MAIL} quota set ${EMAIL_SOUHAITE} ${QUOTA}G" | tee -a "${CMD_LOGIN}"
|
|
# LDAP, à tester
|
|
user=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $1}')
|
|
domain=$(echo ${EMAIL_SOUHAITE} | awk -F '@' '{print $2}')
|
|
pass=$(mkpasswd -m sha512crypt ${PASSWORD})
|
|
echo "echo -e '\n\ndn: cn=${EMAIL_SOUHAITE},ou=users,${ldap_root}\n\
|
|
changeType: add\n\
|
|
objectclass: inetOrgPerson\n\
|
|
objectClass: PostfixBookMailAccount\n\
|
|
objectClass: nextcloudAccount\n\
|
|
objectClass: kaznaute\n\
|
|
sn: ${PRENOM} ${NOM}\n\
|
|
mail: ${EMAIL_SOUHAITE}\n\
|
|
mailEnabled: TRUE\n\
|
|
mailGidNumber: 5000\n\
|
|
mailHomeDirectory: /var/mail/${domain}/${user}/\n\
|
|
mailQuota: ${QUOTA}G\n\
|
|
mailStorageDirectory: maildir:/var/mail/${domain}/${user}/\n\
|
|
mailUidNumber: 5000\n\
|
|
mailDeSecours: ${EMAIL_SECOURS}\n\
|
|
identifiantKaz: ${IDENT_KAZ}\n\
|
|
quota: ${QUOTA}\n\
|
|
nextcloudEnabled: TRUE\n\
|
|
nextcloudQuota: ${QUOTA} GB\n\
|
|
mobilizonEnabled: TRUE\n\
|
|
agoraEnabled: TRUE\n\
|
|
userPassword: {CRYPT}${pass}\n\n' | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldap_LDAP_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldap_LDAP_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
|
|
fi
|
|
#userPassword: {CRYPT}\$6\$${pass}\n\n\" | ldapmodify -c -H ldap://${LDAP_IP} -D \"cn=${ldap_LDAP_CONFIG_ADMIN_USERNAME},${ldap_root}\" -x -w ${ldap_LDAP_CONFIG_ADMIN_PASSWORD}" | tee -a "${CMD_LOGIN}"
|
|
|
|
CREATE_ORGA_SERVICES=""
|
|
|
|
#############
|
|
# NEXTCLOUD #
|
|
#############
|
|
# on recalcul l'url de NC
|
|
if [ "${ORGA}" != "" -a "${service[NC_ORGA]}" == "O" ]; then
|
|
URL_NC="${ORGA}-${cloudHost}.${domain}"
|
|
|
|
# si le cloud de l'orga n'est pas up alors on le créé
|
|
nb=$(docker ps | grep "${ORGA}-${cloudHost}" | wc -l)
|
|
if [ "${nb}" == "0" ];then
|
|
echo " * +cloud +collabora ${ORGA}"
|
|
CREATE_ORGA_SERVICES="${CREATE_ORGA_SERVICES} +cloud +collabora"
|
|
# installe les plugins initiaux dans "/kaz/bin/gestClouds.sh"
|
|
fi
|
|
|
|
NB_SERVICES_DEDIES=$((NB_SERVICES_DEDIES+1))
|
|
|
|
else
|
|
URL_NC="${cloudHost}.${domain}"
|
|
NB_SERVICES_BASE=$((NB_SERVICES_BASE+1))
|
|
fi
|
|
|
|
MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1}${NL}* un bureau virtuel pour stocker des fichiers/calendriers/contacts et partager avec vos connaissances : ${httpProto}://${URL_NC}"
|
|
|
|
# le user existe t-il déjà sur NC ?
|
|
curl -o "${TEMP_USER_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
|
|
if grep -q "<element>${IDENT_KAZ}</element>" "${TEMP_USER_NC}"; then
|
|
echo "${IDENT_KAZ} existe déjà sur ${URL_NC}" | tee -a "${LOG}"
|
|
else
|
|
|
|
# on créé l'utilisateur sur NC sauf si c'est le NC général, on ne créé jamais l'utilisateur7
|
|
if [ ${URL_NC} != "${cloudHost}.${domain}" ]; then
|
|
|
|
echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
|
|
-d userid='${IDENT_KAZ}' \
|
|
-d displayName='${PRENOM} ${NOM}' \
|
|
-d password='${PASSWORD}' \
|
|
-d email='${EMAIL_SOUHAITE}' \
|
|
-d quota='${QUOTA}GB' \
|
|
-d language='fr' \
|
|
" | tee -a "${CMD_INIT}"
|
|
|
|
fi
|
|
|
|
# s'il est admin de son orga, on le met admin
|
|
if [ "${service[ADMIN_ORGA]}" == "O" -a "${ORGA}" != "" -a "${service[NC_ORGA]}" == "O" ]; then
|
|
echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://${nextcloud_NEXTCLOUD_ADMIN_USER}:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid='admin'" | tee -a "${CMD_INIT}"
|
|
fi
|
|
|
|
# faut-il mettre le user NC dans un groupe particulier sur le NC de base ?
|
|
if [ "${GROUPE_NC_BASE}" != "" -a "${service[NC_BASE]}" == "O" ]; then
|
|
# le groupe existe t-il déjà ?
|
|
curl -o "${TEMP_GROUP_NC}" -X GET -H 'OCS-APIRequest:true' "${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups?search=${GROUPE_NC_BASE}"
|
|
nb=$(grep "<element>${GROUPE_NC_BASE}</element>" "${TEMP_GROUP_NC}" | wc -l)
|
|
if [ "${nb}" == "0" ];then
|
|
echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
|
|
fi
|
|
# puis attacher le user au groupe
|
|
echo "curl -X POST -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users/${IDENT_KAZ}/groups -d groupid=${GROUPE_NC_BASE}" | tee -a "${CMD_INIT}"
|
|
fi
|
|
fi
|
|
|
|
#############
|
|
# WORDPRESS #
|
|
#############
|
|
|
|
# TODO : pour l'utilisation de l'api : https://www.hostinger.com/tutorials/wordpress-rest-api
|
|
|
|
if [ "${ORGA}" != "" -a "${service[WP_ORGA]}" == "O" ]; then
|
|
|
|
URL_WP_ORGA="${ORGA}-${wordpressHost}.${domain}"
|
|
|
|
# si le wp de l'orga n'est pas up alors on le créé
|
|
nb=$(docker ps | grep "${ORGA}-${wordpressHost}" | wc -l)
|
|
if [ "${nb}" == "0" ];then
|
|
echo " * +wp ${ORGA}"
|
|
CREATE_ORGA_SERVICES="${CREATE_ORGA_SERVICES} +wp"
|
|
fi
|
|
|
|
NB_SERVICES_DEDIES=$((NB_SERVICES_DEDIES+1))
|
|
MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1}${NL}* un site web de type wordpress : ${httpProto}://${URL_WP_ORGA}/wp-admin/"
|
|
|
|
# TODO : vérif existance user
|
|
# # le user existe t-il déjà sur le wp ?
|
|
# curl -o "${TEMP_USER_WP}" -X GET "${httpProto}://${wp_WORDPRESS_ADMIN_USER}:${wp_WORDPRESS_ADMIN_PASSWORD}@${URL_WP_ORGA}/ocs/v1.php/cloud/users?search=${IDENT_KAZ}"
|
|
# nb_user_wp_orga=$(grep "<element>${IDENT_KAZ}</element>" "${TEMP_USER_WP}" | wc -l)
|
|
# if [ "${nb_user_wp_orga}" != "0" ];then
|
|
# (
|
|
# echo "${RED}"
|
|
# echo "ERREUR : ${IDENT_KAZ} existe déjà sur ${URL_WP_ORGA} - on stoppe tout - aucun utilisateur de créé"
|
|
# echo "${NC}"
|
|
# ) | tee -a "${LOG}"
|
|
#
|
|
# # ROLLBACK - on vire le user de NC
|
|
# if [ "${nb_user_nc_orga}" != "0" ];then
|
|
# (
|
|
# echo "${RED}"
|
|
# echo "ERREUR : ${IDENT_KAZ} existe déjà sur ${URL_NC} - on stoppe tout - aucun utilisateur de créé"
|
|
# echo "${NC}"
|
|
# ) | tee -a "${LOG}"
|
|
#
|
|
# # on supprime l'utilisateur sur NC.
|
|
# echo "curl -X DELETE -H 'OCS-APIRequest:true' ${httpProto}://admin:${nextcloud_NEXTCLOUD_ADMIN_PASSWORD}@${URL_NC}/ocs/v1.php/cloud/users \
|
|
# -d userid='${IDENT_KAZ}' \
|
|
# " | tee -a "${CMD_INIT}"
|
|
# fi
|
|
#
|
|
# exit 1
|
|
# fi
|
|
|
|
# TODO : créer le user et le mettre admin si nécessaire
|
|
# if [ "${service[ADMIN_ORGA]}" == "O" ]; then
|
|
# :
|
|
# else
|
|
# :
|
|
# fi
|
|
fi
|
|
|
|
############
|
|
# PAHEKO #
|
|
############
|
|
|
|
|
|
if [ "${ORGA}" != "" -a "${service[PAHEKO_ORGA]}" == "O" ]; then
|
|
|
|
URL_PAHEKO_ORGA="${ORGA}-${pahekoHost}.${domain}"
|
|
|
|
# il n'y a pas de docker spécifique paheko (je cree toujours paheko)
|
|
echo " * +paheko ${ORGA}"
|
|
CREATE_ORGA_SERVICES="${CREATE_ORGA_SERVICES} +paheko"
|
|
|
|
NB_SERVICES_DEDIES=$((NB_SERVICES_DEDIES+1))
|
|
MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1}${NL}* un service de gestion adhérents/clients : ${httpProto}://${URL_PAHEKO_ORGA}"
|
|
|
|
if [ "${service[ADMIN_ORGA]}" == "O" ]; then
|
|
MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1} (l'installation est à terminer en vous rendant sur le site)"
|
|
fi
|
|
fi
|
|
|
|
|
|
############
|
|
# DOKUWIKI #
|
|
############
|
|
|
|
if [ "${ORGA}" != "" -a "${service[WIKI_ORGA]}" == "O" ]; then
|
|
|
|
URL_WIKI_ORGA="${ORGA}-${dokuwikiHost}.${domain}"
|
|
|
|
# si le wiki de l'orga n'est pas up alors on le créé
|
|
nb=$(docker ps | grep "${ORGA}-${dokuwikiHost}" | wc -l)
|
|
if [ "${nb}" == "0" ];then
|
|
echo " * +wiki ${ORGA}"
|
|
CREATE_ORGA_SERVICES="${CREATE_ORGA_SERVICES} +wiki"
|
|
fi
|
|
|
|
NB_SERVICES_DEDIES=$((NB_SERVICES_DEDIES+1))
|
|
MESSAGE_MAIL_ORGA_1="${MESSAGE_MAIL_ORGA_1}${NL}* un wiki dédié pour votre documentation : ${httpProto}://${URL_WIKI_ORGA}"
|
|
|
|
|
|
# TODO : ??? à voir https://www.dokuwiki.org/devel:xmlrpc:clients
|
|
|
|
if grep -q "^${IDENT_KAZ}:" "${DOCK_VOL}/orga_${ORGA}-wikiConf/_data/users.auth.php" 2>/dev/null; then
|
|
echo "${IDENT_KAZ} existe déjà sur ${URL_WIKI_ORGA}" | tee -a "${LOG}"
|
|
else
|
|
echo "echo \"${IDENT_KAZ}:$(htpasswd -bnBC 10 "" ${PASSWORD}):${PRENOM} ${NOM}:${EMAIL_SOUHAITE}:admin,user\" >> \"${DOCK_VOL}/orga_${ORGA}-wikiConf/_data/users.auth.php\"" | tee -a "${CMD_INIT}"
|
|
fi
|
|
fi
|
|
|
|
##############
|
|
# MATTERMOST #
|
|
##############
|
|
|
|
# on ne gère pas la création du docker dédié mattermost
|
|
if [ "${ORGA}" != "" -a "${service[AGORA_ORGA]}" == "O" ]; then
|
|
echo "# ******************************************************************************" | tee -a "${CMD_INIT}"
|
|
echo "# **************************** ATTENTION ***************************************" | tee -a "${CMD_INIT}"
|
|
echo "# ******************************************************************************" | tee -a "${CMD_INIT}"
|
|
echo "# Mattermost dédié : on ne fait rien." | tee -a "${CMD_INIT}"
|
|
echo "# ******************************************************************************" | tee -a "${CMD_INIT}"
|
|
fi
|
|
|
|
if grep -q "^${IDENT_KAZ}$" "${TFILE_MM}" 2>/dev/null; then
|
|
echo "${IDENT_KAZ} existe déjà sur mattermost" | tee -a "${LOG}"
|
|
else
|
|
# on créé le compte mattermost
|
|
echo "docker exec -ti mattermostServ bin/mmctl user create --email ${EMAIL_SOUHAITE} --username ${IDENT_KAZ} --password ${PASSWORD}" | tee -a "${CMD_LOGIN}"
|
|
# et enfin on ajoute toujours le user à l'équipe KAZ et aux 2 channels publiques
|
|
echo "docker exec -ti mattermostServ bin/mmctl team users add kaz ${EMAIL_SOUHAITE}" | tee -a "${CMD_LOGIN}"
|
|
echo "docker exec -ti mattermostServ bin/mmctl channel users add kaz:une-question--un-soucis ${EMAIL_SOUHAITE}" | tee -a "${CMD_LOGIN}"
|
|
echo "docker exec -ti mattermostServ bin/mmctl channel users add kaz:cafe-du-commerce--ouvert-2424h ${EMAIL_SOUHAITE}" | tee -a "${CMD_LOGIN}"
|
|
NB_SERVICES_BASE=$((NB_SERVICES_BASE+1))
|
|
fi
|
|
|
|
if [ "${EQUIPE_AGORA}" != "" -a "${EQUIPE_AGORA}" != "kaz" ]; then
|
|
# l'équipe existe t-elle déjà ?
|
|
nb=$(docker exec mattermostServ bin/mmctl team list | grep -w "${EQUIPE_AGORA}" | wc -l)
|
|
if [ "${nb}" == "0" ];then # non, on la créé en mettant le user en admin de l'équipe
|
|
echo "docker exec -ti mattermostServ bin/mmctl team create --name ${EQUIPE_AGORA} --display_name ${EQUIPE_AGORA} --email ${EMAIL_SOUHAITE}" --private | tee -a "${CMD_INIT}"
|
|
fi
|
|
# puis ajouter le user à l'équipe
|
|
echo "docker exec -ti mattermostServ bin/mmctl team users add ${EQUIPE_AGORA} ${EMAIL_SOUHAITE}" | tee -a "${CMD_INIT}"
|
|
fi
|
|
|
|
if [ -n "${CREATE_ORGA_SERVICES}" ]; then
|
|
SEND_MSG_CREATE=true
|
|
echo "${CREATE_ORGA_CMD}" --create ${CREATE_ORGA_SERVICES} "${ORGA}" | tee -a "${CMD_ORGA}"
|
|
echo "${CREATE_ORGA_CMD}" --init ${CREATE_ORGA_SERVICES} "${ORGA}" | tee -a "${CMD_FIRST}"
|
|
ALL_ORGA="${ALL_ORGA} ${ORGA}"
|
|
fi
|
|
|
|
##########################
|
|
# Inscription newsletter #
|
|
##########################
|
|
|
|
# TODO : utiliser liste sur dev également
|
|
|
|
# on inscrit le user sur sympa, à la liste infos@${domain_sympa}
|
|
# docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=https://listes.kaz.sns/sympasoap --trusted_application=SOAP_USER --trusted_application_password=SOAP_PASSWORD --proxy_vars="USER_EMAIL=contact1@kaz.sns" --service=which
|
|
if [[ "${mode}" = "dev" ]]; then
|
|
echo "# DEV, on teste l'inscription à sympa"| tee -a "${CMD_SYMPA}"
|
|
LISTMASTER=$(echo ${sympa_LISTMASTERS} | cut -d',' -f1)
|
|
echo "docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\"" | tee -a "${CMD_SYMPA}"
|
|
else
|
|
echo "# PROD, on inscrit à sympa"| tee -a "${CMD_SYMPA}"
|
|
LISTMASTER=$(echo ${sympa_LISTMASTERS} | cut -d',' -f1)
|
|
echo "docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\"" | tee -a "${CMD_SYMPA}"
|
|
echo "docker exec -ti sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SECOURS}\"" | tee -a "${CMD_SYMPA}"
|
|
fi
|
|
|
|
if [ "${service[ADMIN_ORGA]}" == "O" ]; then
|
|
MESSAGE_MAIL_ORGA_2="${MESSAGE_MAIL_ORGA_2}Comme administrateur de votre organisation, vous pouvez créer des listes de diffusion en vous rendant sur ${httpProto}://${URL_LISTE}"
|
|
fi
|
|
|
|
###################
|
|
# update paheko #
|
|
###################
|
|
|
|
# TODO : problème si 2 comptes partagent le même email souhaité (cela ne devrait pas arriver)
|
|
curl -s "https://${paheko_API_USER}:${paheko_API_PASSWORD}@kaz-paheko.kaz.bzh/api/sql" -d "SELECT numero,nom,quota_disque from users WHERE email='${EMAIL_SOUHAITE}'" | jq '.results[] | .numero,.nom,.quota_disque ' | tr \\n ',' | sed 's/,$/,Aucune\n/' >> "${TEMP_PAHEKO}"
|
|
|
|
####################
|
|
# Inscription MAIL #
|
|
####################
|
|
|
|
if [ "${NB_SERVICES_DEDIES}" != "0" ];then
|
|
MESSAGE_MAIL_ORGA_1="${NL} dont ${NB_SERVICES_DEDIES} service(s) dédié(s) pour votre organisation:${NL} ${MESSAGE_MAIL_ORGA_1}"
|
|
fi
|
|
|
|
if [ -z "${SEND_MSG_CREATE}" ]; then
|
|
# rien de créé => pas de message
|
|
continue
|
|
fi
|
|
|
|
#si admin alors msg pour indiquer qu'il faut nous renvoyer ce qu'il souhaite comme service.
|
|
if [ "${service[ADMIN_ORGA]}" == "O" ]; then
|
|
MESSAGE_MAIL_ORGA_3="${MESSAGE_MAIL_ORGA_3}En tant qu'association/famille/société. Vous avez la possibilité d'ouvrir, quand vous le voulez, des services kaz, il vous suffit de nous le demander.
|
|
|
|
Pourquoi n'ouvrons-nous pas tous les services tout de suite ? parce que nous aimons la sobriété et que nous préservons notre espace disque ;)
|
|
A quoi sert d'avoir un site web si on ne l'utilise pas, n'est-ce pas ?
|
|
|
|
Par retour de mail, dites-nous de quoi vous avez besoin tout de suite entre:
|
|
* une comptabilité : un service de gestion adhérents/clients
|
|
* un site web de type WordPress
|
|
* un cloud : bureau virtuel pour stocker des fichiers/calendriers/contacts et partager avec vos connaissances
|
|
|
|
Une fois que vous aurez répondu à ce mail, votre demande sera traitée manuellement.
|
|
"
|
|
fi
|
|
|
|
# on envoie le mail de bienvenue
|
|
MAIL_KAZ="Bonjour,
|
|
|
|
Bienvenue chez KAZ!
|
|
|
|
Vous disposez de $((${NB_SERVICES_BASE} + ${NB_SERVICES_DEDIES})) services kaz avec authentification :
|
|
|
|
* une messagerie classique : ${httpProto}://${URL_WEBMAIL}
|
|
* une messagerie instantanée pour discuter au sein d'équipes : ${httpProto}://${URL_AGORA}
|
|
|
|
Votre email et identifiant pour tous ces services : ${EMAIL_SOUHAITE}
|
|
Le mot de passe : ${PASSWORD}
|
|
|
|
Pour changer votre mot de passe de messagerie, c'est ici: ${httpProto}://${URL_MDP}
|
|
Si vous avez perdu votre mot de passe, c'est ici: ${httpProto}://${URL_MDP}/?action=sendtoken
|
|
|
|
Vous pouvez accéder à votre messagerie :
|
|
* soit depuis votre webmail : ${httpProto}://${URL_WEBMAIL}
|
|
* soit depuis votre bureau virtuel : ${httpProto}://${URL_NC}
|
|
* soit depuis un client de messagerie comme thunderbird
|
|
|
|
${MESSAGE_MAIL_ORGA_3}
|
|
|
|
Vous avez quelques docs intéressantes sur le wiki de kaz:
|
|
|
|
* Migrer son site internet wordpress vers kaz
|
|
https://wiki.kaz.bzh/wordpress/start#migrer_son_site_wordpress_vers_kaz
|
|
|
|
* Migrer sa messagerie vers kaz
|
|
https://wiki.kaz.bzh/messagerie/gmail/start
|
|
|
|
* Démarrer simplement avec son cloud
|
|
https://wiki.kaz.bzh/nextcloud/start
|
|
|
|
Votre quota est de ${QUOTA}GB. Si vous souhaitez plus de place pour vos fichiers ou la messagerie, faites-nous signe !
|
|
|
|
Pour accéder à la messagerie instantanée et communiquer avec les membres de votre équipe ou ceux de kaz : ${httpProto}://${URL_AGORA}/login
|
|
|
|
${MESSAGE_MAIL_ORGA_2}
|
|
|
|
Enfin, vous disposez de tous les autres services KAZ où l'authentification n'est pas nécessaire : ${httpProto}://${URL_SITE}
|
|
|
|
En cas de soucis, n'hésitez pas à poser vos questions sur le canal 'Une question ? un soucis' de l'agora dispo ici : ${httpProto}://${URL_AGORA}
|
|
|
|
Si vous avez besoin d'accompagnement pour votre site, votre cloud, votre compta, votre migration de messagerie,... nous proposons des formations mensuelles gratuites. Si vous souhaitez être accompagné par un professionnel, nous pouvons vous donner une liste de pros, référencés par KAZ.
|
|
|
|
À bientôt ;)
|
|
|
|
La collégiale de KAZ. "
|
|
|
|
echo "docker exec -i mailServ mailx -a 'Content-Type: text/plain; charset=\"UTF-8\"' -r contact@kaz.bzh -s \"KAZ: confirmation d'inscription\" ${EMAIL_SOUHAITE} ${EMAIL_SECOURS} << EOF
|
|
${MAIL_KAZ}
|
|
EOF" | tee -a "${CMD_MSG}"
|
|
|
|
# on envoie le mail de confirmation d'inscription à contact
|
|
MAIL_KAZ="*****POST AUTOMATIQUE******
|
|
Hello,
|
|
${NOM} ${PRENOM} vient d'être inscrit avec l'email ${EMAIL_SOUHAITE}
|
|
quota : ${QUOTA}GB
|
|
|
|
NC_BASE : ${service[NC_BASE]}
|
|
groupe NC base : ${GROUPE_NC_BASE}
|
|
équipe agora base : ${EQUIPE_AGORA}
|
|
email de secours : ${EMAIL_SECOURS}
|
|
|
|
ORGA : ${ORGA}
|
|
ADMIN_ORGA : ${service[ADMIN_ORGA]}
|
|
NC_ORGA : ${service[NC_ORGA]}
|
|
PAHEKO_ORGA : ${service[PAHEKO_ORGA]}
|
|
WP_ORGA : ${service[WP_ORGA]}
|
|
AGORA_ORGA : ${service[AGORA_ORGA]}
|
|
WIKI_ORGA : ${service[WIKI_ORGA]}
|
|
|
|
bisou!"
|
|
echo "docker exec -i mailServ mailx -a 'Content-Type: text/plain; charset=\"UTF-8\"' -r contact@kaz.bzh -s \"KAZ: confirmation d'inscription\" ${EMAIL_CONTACT} << EOF
|
|
${MAIL_KAZ}
|
|
EOF" | tee -a "${CMD_MSG}"
|
|
|
|
echo " # on envoie la confirmation d'inscription sur l'agora " | tee -a "${CMD_MSG}"
|
|
echo "docker exec -ti mattermostServ bin/mmctl post create kaz:Creation-Comptes --message \"${MAIL_KAZ}\"" | tee -a "${CMD_MSG}"
|
|
|
|
# fin des inscriptions
|
|
done <<< "${ALL_LINES}"
|
|
|
|
if [[ -n "${ALL_ORGA}" ]]; then
|
|
echo "sleep 2" | tee -a "${CMD_PROXY}"
|
|
echo "${KAZ_BIN_DIR}/container.sh start ${ALL_ORGA}" | tee -a "${CMD_PROXY}"
|
|
for item in "${availableProxyComposes[@]}"; do
|
|
echo "cd \"${KAZ_COMP_DIR}/${item}/\"; ./proxy-gen.sh; docker-compose up -d; ./reload.sh " | tee -a "${CMD_PROXY}"
|
|
done
|
|
fi
|
|
|
|
###########################
|
|
# Lancement des commandes #
|
|
###########################
|
|
if [ "${SIMULATION}" == "NO" ]; then
|
|
echo "on exécute"
|
|
"${CMD_LOGIN}"
|
|
# on attend qques secondes que le mail soit bien créé avant de continuer (prob de lecture de la BAL : à investiguer)
|
|
# je rallonge à 20s car je vois que le docker sympa ne connait pas toujours l'email kaz créé
|
|
echo "on attend 20s pour que la création des emails soit certaine"
|
|
sleep 20
|
|
"${CMD_SYMPA}"
|
|
"${CMD_ORGA}"
|
|
"${CMD_PROXY}"
|
|
"${CMD_FIRST}"
|
|
"${CMD_INIT}"
|
|
"${CMD_PAHEKO}"
|
|
"${CMD_MSG}"
|
|
else
|
|
echo "Aucune commande n'a été lancée : Possibilité de le faire à la main. cf ${KAZ_ROOT}/tmp/${RACINE}_cmds_to_run-*.sh"
|
|
fi
|
|
|
|
# END
|