Datum
12.02.2021
Dieser Beitrag wurde verfasst von:
Während Sametime 10 noch recht umständlich mit IBM WebSphere und Co. einzurichten war, ist das bei Sametime 11.x sehr viel leichter geworden. Dennoch trauen sich viele Domino-Administratoren nicht so recht an die Installation heran, da es dort nicht nur um reines Domino geht, sondern auch um die Einrichtung einer Mongo-DB. Für viele Domino-Administratoren ist das Neuland.
Leider hat HCL die Installation und Konfiguration der Mongo-DB zwar ausreichend detailliert beschrieben, aber die Konfiguration erfolgt manuell, über Konsolbefehle und manuelles Editieren von Konfigurationsdateien. Das ist immer potenziell fehlerträchtig, denn kein Administrator ist "frei" von Tippfehlern. Daher wäre es besser gewesen, wenn es eine Installationsroutine für die Mongo-DB gegeben hätte. Insbesondere unter Linux, welches ich für Sametime bevorzuge, ist die Mongo-Installation nicht ganz trivial, da sie nicht in den Vorgabe-Repositories enthalten ist.
Dieses kleines Skript, das ich erstellt habe, lässt den Installationsvorgang automatisch ablaufen. Es führt dabei folgende Schritte durch:
- MongoDB Repository hinzufügen
- MongoDB aus dem Repository installieren
- Den MongoDB-Port 27017 in der Firewall öffnen
- Den Sametime-User erstellen und die chatlogging-DB erstellen
- MongoDB auf alle Netzwerkadapter binden
- Ein Replication-Set erstellen, welches die Chatlogging DB spiegelt
- Den MongoDB-Deamon aktivieren
Das Ganze passt in dieses kleine Bash Skript:
clear
echo "#########################################################################################"
echo "# Automated Sametime MongoDB Installation #"
echo "# (c) 2021 Friedhelm Klein, TIMETOACT Group #"
echo "# Version 1.0 #"
echo "#########################################################################################"
echo -n "# Check for root access... "
if [ `whoami` != root ]; then
echo -e "ERROR\nPlease run this script as root or using sudo"
exit
else
echo "Success"
fi
echo -n "# Add MongoDB repository... \n\n\n"
echo "[mongodb-org-4.2]" >/etc/yum.repos.d/mongodb-org-4.2.repo
echo "name=MongoDB Repository" >>/etc/yum.repos.d/mongodb-org-4.2.repo
echo "baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.2/x86_64/" >>/etc/yum.repos.d/mongodb-org-4.2.repo
echo "gpgcheck=1" >>/etc/yum.repos.d/mongodb-org-4.2.repo
echo "enabled=1" >>/etc/yum.repos.d/mongodb-org-4.2.repo
echo "gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc" >>/etc/yum.repos.d/mongodb-org-4.2.repo
echo "Success"
echo -n "# Install MongoDB... "
yum install mongodb-org -y
echo "Success: "
echo -n "# Open MongoDB port 27017 in firewalld... "
firewall-cmd --permanent --new-service=mongodb >/nul
firewall-cmd --permanent --service=mongodb --set-description=MongoDB >/nul
firewall-cmd --permanent --service=mongodb --set-short=MongoDB >/nul
firewall-cmd --permanent --service=mongodb --add-port=27017/tcp >/nul
firewall-cmd --zone=public --add-service=mongodb --permanent >/nul
echo "Success"
echo -n "# Restarting firewalld... "
systemctl restart firewalld.service
echo "Success"
echo -n "# Starting MongoDb... "
systemctl start mongod
echo "Success"
echo "# Create SametimeUser and Chatlogging-DB... "
echo $'use admin' >init.js
echo $'db.createUser({user: "sametimeUser", pwd: "AenderMich!", roles:[{role:"readWrite", db:"chatlogging"},{ role:"readWrite",
db:"mobileOffline"},{role:"userAdminAnyDatabase", db:"admin"}]})' >>init.js
echo $'use chatlogging' >>init.js
echo $'db.EVENTS.insertOne({"_id" : "dummy"})' >>init.js
echo $'db.SESSIONS.insertOne({"_id" : "dummy"})' >>init.js
mongo < init.js
rm -f init.js
echo "Success"
echo -n "# Stopping MongoDb... "
systemctl stop mongod
echo "Success"
echo -n "# Enable all network interfaces, replication and security... "
sed -i 's/^ bindIp:.*/\ \ bindIpAll: true/g' /etc/mongod.conf
sed -i 's/^#replication:.*/replication:\n\ \ replSetName: rs0/g' /etc/mongod.conf
echo "Success"
echo -n "# Starting MongoDb... "
systemctl start mongod
systemctl enable mongod
echo "Success"
echo -n "# Initiate replication set... "
mongo --eval 'rs.initiate()'
echo "Success"