Debian 11 clean install script
Direkt im offiziellen Git :-)
- Edited
Ich rate mal zu grommunio-web
- meine Test-VM ist gerade aus.
dpkg -S /var/lib/grommunio-web/
sollte das Paket nennen.
EDIT: meintest du die Besitzer vom Ordner? Ich schalt meine kiste einfach mal an und schau auch mal.
Also das sollte alles auf Benutzer und Gruppe groweb stehen.
Und im Debian-Paket liegt das Script in /usr/bin
root@grom-deb:/var/lib/grommunio-web# dpkg -L grommunio-index
/.
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/grommunio-index.service
/lib/systemd/system/grommunio-index.timer
/usr
/usr/bin
/usr/bin/grommunio-index
/usr/bin/grommunio-index-run.sh
/usr/share
/usr/share/doc
/usr/share/doc/grommunio-index
/usr/share/doc/grommunio-index/changelog.Debian.gz
root@grom-deb:/var/lib/grommunio-web# cat /usr/bin/grommunio-index-run.sh
#!/bin/bash
MYSQL_CFG="/etc/gromox/mysql_adaptor.cfg"
if [ ! -e "${MYSQL_CFG}" ] ; then
echo "MySQL configuration not found. ($MYSQL_CFG)"
exit 1
fi
mysql_params="--skip-column-names --skip-line-numbers"
mysql_username=$(sed -ne 's/mysql_username\s*=\s*\(.*\)/-u\1/p' ${MYSQL_CFG})
mysql_password=$(sed -ne 's/mysql_password\s*=\s*\(.*\)/-p\1/p' ${MYSQL_CFG})
mysql_dbname=$(sed -ne 's/mysql_dbname\s*=\s*\(.*\)/\1/p' ${MYSQL_CFG})
mysql_host=$(sed -ne 's/mysql_host\s*=\s*\(.*\)/-h\1/p' ${MYSQL_CFG})
mysql_port=$(sed -ne 's/mysql_port\s*=\s*\(.*\)/-P\1/p' ${MYSQL_CFG})
mysql_query='select username, maildir from users where id <> 0 and maildir <> "";'
mysql_cmd="mysql ${mysql_params} ${mysql_username} ${mysql_password} ${mysql_host} ${mysql_port} ${mysql_dbname}"
web_index_path="/var/lib/grommunio-web/sqlite-index"
# ensure correct ownership of the root dir
chown groweb:groweb "${web_index_path}"
echo "${mysql_query[@]}" | ${mysql_cmd} | while read -r username maildir ; do
[ -e "${web_index_path}/${username}/" ] || mkdir "${web_index_path}/${username}/"
# set ownership on dir (prevent collision with gweb)
chown groweb:groweb "${web_index_path}/${username}"
# run the index
grommunio-index "$1" "${maildir}" -o "${web_index_path}/${username}/index.sqlite3"
# set the owner on the index db
chown groweb:groweb "${web_index_path}/${username}/index.sqlite3"
done
crpb Danke, das sieht bei mir identisch aus - mittlerweile bin ich einen Schritt weiter gekommen
Eine manuelle Ausführung von grommunio-index mit debug Ausgabe:
grommunio-index -vvv "$1" /var/lib/gromox/user/0/1 -o /var/lib/grommunio-web/sqlite-index/user1@domain.xx/index.sqlite3
[DEBUG] exmdb=localhost:5000, user=/var/lib/gromox/user/0/1, output=/var/lib/grommunio-web/sqlite-index/user1@domain.xx/index.sqlite3
[FATAL] Send failed: Connection refused
Offenbar lässt mich der exmdb-provider nicht rein .... 8( wie das???
Br br
Hmm, also der index service liest ja die mysql_adaptor.cfg aus. kann der eventuell da nicht drauf zugreifen? Passen müssten die Daten ja an sich da drin sonst würde ja wahrscheinlich gar nichts gehen ^^
- Edited
Grad mal meine ldap-conf transferiert und gesynced. grommunio-index-run.sh lief ohne probleme.
Wie sehen denn die berechtigungen aus? Bei mir schauts so aus
root@grom-deb:~# find /var/lib/gromox/user/*/*/exmdb/ -iname '*sqlite3' -ls
1577197 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/0/1/exmdb/midb.sqlite3
1577195 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/0/1/exmdb/exchange.sqlite3
1577354 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/0/2/exmdb/midb.sqlite3
1577309 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/0/2/exmdb/exchange.sqlite3
1577486 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/0/3/exmdb/midb.sqlite3
1577485 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/0/3/exmdb/exchange.sqlite3
1577730 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/0/4/exmdb/midb.sqlite3
1577729 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/0/4/exmdb/exchange.sqlite3
1577231 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/1/0/exmdb/midb.sqlite3
1577230 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/1/0/exmdb/exchange.sqlite3
1577270 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/1/1/exmdb/midb.sqlite3
1577263 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/1/1/exmdb/exchange.sqlite3
1577420 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/1/2/exmdb/midb.sqlite3
1577418 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/1/2/exmdb/exchange.sqlite3
1577507 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/1/3/exmdb/midb.sqlite3
1577506 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/1/3/exmdb/exchange.sqlite3
1577784 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/1/4/exmdb/midb.sqlite3
1577783 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/1/4/exmdb/exchange.sqlite3
1577446 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/2/0/exmdb/midb.sqlite3
1577445 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/2/0/exmdb/exchange.sqlite3
1577459 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/2/1/exmdb/midb.sqlite3
1577458 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/2/1/exmdb/exchange.sqlite3
1577473 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/2/2/exmdb/midb.sqlite3
1577472 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/2/2/exmdb/exchange.sqlite3
1577538 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/2/3/exmdb/midb.sqlite3
1577537 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/2/3/exmdb/exchange.sqlite3
1577812 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/2/4/exmdb/midb.sqlite3
1577810 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/2/4/exmdb/exchange.sqlite3
1577573 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/3/0/exmdb/midb.sqlite3
1577571 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/3/0/exmdb/exchange.sqlite3
1577600 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/3/1/exmdb/midb.sqlite3
1577598 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/3/1/exmdb/exchange.sqlite3
1577631 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/3/2/exmdb/midb.sqlite3
1577629 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/3/2/exmdb/exchange.sqlite3
1577680 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/3/3/exmdb/midb.sqlite3
1577672 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/3/3/exmdb/exchange.sqlite3
1577838 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/3/4/exmdb/midb.sqlite3
1577835 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/3/4/exmdb/exchange.sqlite3
1577873 76 -rw-rw---- 1 grommunio gromox 77824 Nov 7 10:41 /var/lib/gromox/user/4/0/exmdb/midb.sqlite3
1577872 292 -rw-rw---- 1 grommunio gromox 299008 Nov 7 10:41 /var/lib/gromox/user/4/0/exmdb/exchange.sqlite3
Und läuft da was auf localhost:5000? Sollte ja sonst würde nicht viel gehen denke ich mal :-p
root@grom-deb:~# ss -tulpen |grep 5000
tcp LISTEN 0 4096 [::1]:5000 [::]:* users:(("http",pid=863,fd=5)) ino:10721 sk:1e cgroup:/system.slice/gromox-http.service v6only:1 <->
- Edited
Hmmmm - also bei mir siehts sehr ähnlich aus:
find /var/lib/gromox/user/*/*/exmdb/ -iname '*sqlite3' -ls
279761 116 -rw-rw---- 1 grommunio gromox 118784 Nov 7 10:16 /var/lib/gromox/user/0/1/exmdb/midb.sqlite3
279760 1404 -rw-rw---- 1 grommunio gromox 1437696 Nov 7 09:44 /var/lib/gromox/user/0/1/exmdb/exchange.sqlite3
ss -tulpen |grep 5000
tcp LISTEN 0 4096 [::1]:5000 [::]:* users:(("http",pid=107909,fd=4)) ino:2893577 sk:12 cgroup:/system.slice/gromox-http.service v6only:1 <->
Das sagt:
grommunio-admin exmdb user1@domain.xx store get
internetarticlenumber 33
messagesizeextended 7108469 6.78 MiB
displayname user1name
creationtime 133119387740000000 2022-11-03 09:46:14
displaytypeex 0
outofofficestate 0
normalmessagesizeextended 7093943 6.77 MiB
assocmessagesizeextended 14526 14.2 kiB
- Edited
nochmal eine kleine Nickligkeit am Rande: Ich habe jetzt das Debian Paket grommunio-index nochmal komplett gelöscht (purge). Dort gibt es auch noch 2 issues mit dem systemd file (grommunio-index.service).
- das Paket wird statisch installiert (keine INSTALL section, gewollt?)
- ExecStart soll dann /usr/sbin/grommunio-index-run.sh laden (SuSe location) , das script wird aber in /usr/bin/grommunio-index-run.sh (Debian) installiert - insofern startet da ohne Änderungen eh nix
br br
Hmm .. also zum Fehlerhaften verhalten.. Kein schimmer was er da nicht mag.
Vielleicht noch mal frisch machen ist ja eh noch am testen wa? :-).
Zum Fehlerhaften SystemD-File erstmal ein fix
systemctl edit grommunio-index.service
und das hier da rein
[Service]
ExecStart=/usr/bin/grommunio-index-run.sh
Danach kannste ihn auch aktivieren mittels systemctl enable grommunio-index.service
Auch wenn das solange der Fehler besteht nicht viel hilft :P
@mwilliams meld dich doch mal bitte.. auch gern per mail oder irc :-).
- Edited
crpb
Ja, danke Dir, klar, das habe ich schon für mich geändert aber das muss ja irgendwie ins offizielle Paket fürs Debian repo rein! Kann ich das irgendwo 'offiziell' einkippen? (git?). Mit dem aktivieren über enable gehts damit aber noch nicht:
systemctl enable grommunio-index
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
instance name specified.
Das mit dem 'mal frisch' machen ist sicherlich die Ultima ratio - jedoch geht es mir darum, einen möglichst nachvollziehbaren und robusten Debian Installationsprozess zu erreichen, der einen produktiv nutzbaren grommunio mail server erzeugt und vor allem nicht mit jedem grommunio update repariert/modifiziert werden muss - davon scheinen wir - nun ja - aktuell doch noch etwas entfernt von zu sein :-/
Ich bin jetzt mal die letzten drei meiner snapshots zurück gegangen - ohne Erfolg. Ich nutze eine Openstack Cloud mit dem Debian 11 openstack image und habe die Manual installation Anleitung sowie das Debian grommunio-setup script verwendet. Bislang bin ich noch nicht an dem Punkt, dass dreimal ausführen des grommunio-setup.sh dreimal exakt das gleich Ergebnis ergibt; insbesondere updates einzelner packages über das off. repo haben immer noch Seiteneffekte .... etwas mehr regression wäre vor Veröffentlichung schon wünschenswert - soweit mal mein ganz pers. Erfahrungsfeedback in a nutshell.
Aber na ja - kommt zeit, kommt laufendes Debian grommunio
br br
Versuch dir mal die drei ``` anzugewöhnen für "pastes" :-).
also meine tests sind bis jetzt nur auf vmware mit ner preseed die so ca 320 pakete nach reboot hat.
Von daher sollte das eigtl. auch dann mit dem openstack-image passen.
Ansonsten sinds fast die gleichen pakete wie es mir scheint :-).
curl https://cdimage.debian.org/cdimage/cloud/bullseye/latest/debian-11-generic-amd64.json 2>/dev/null|jq '.items[].data.packages|values[]|.name' |wc -l
Ich kann so leider nicht nachvollziehen was gerade bei dir kaputt ist. Deswegen würde ich jetzt zumindest noch mal den redo empfehlen um einfach alles auszuschließen.
Ansonsten können wir das auch gerne via IRC #grommunio (irc.debian.org) genauer diagnostizieren. Hier ist das ein wenig schwierig mit dem hin und her.
Apropos Offiziell reinkippen. Leider ist der "build"-Prozess nicht mit drin aber schau mal hier.
https://github.com/grommunio/grommunio-index