I've opened an PR to fix / extend the rspamd config. first to add redis support and second to fix the antivirus stuff. this was misconfigured.

Hallo zusammen, ich habe mittels der tollen Vorarbeit und dem Debian install script (herzlichen Dank dafür an alle) hier auf debian11 eine Basis grommunio Installation zum laufen bekommen, und habe mich jetzt am grommunio-index Paket und am grommunio-archive versucht.

  1. grommunio-index (Debian Paket)

Nach dem installieren von dem grommunio-index Debian Paket kann ich zwar wunderbar die Systemd Komponenten enablen, allerdings geht dann der Aufruf von /usr/bin/grommunio-index-run.sh schief.

  • Für einen neuen user kann die sqlite Datei /var/lib/grommunio-web/sqlite-index/user@domain/index.sqlite3 nicht angelegt werden, obwohl das user@domain Verzeichnis 0775 auf groweb:groweb berechtigt ist.
  • Legt man diese von Hand an, dann verabschiedet sich der Aufruf von grommunio-index aus dem grommunio-index-run.sh script mit [FATAL] exmdb call failed: Unknown error code 72.

Hat jemand eine Idee wie man das weiter analysieren könnte? Die grommunio Doku gibt dazu leider nichts her!

  1. grommunio-archive (rpm-Paket aus der Suse appliance)
    mit alien --scripts in ein Debian Paket umgewandelt und dann einige Pfade für die Piler shared Libraries (libpiler.so.0.1.1) auf /usr/lib64 umgebogen sowie einer Installation der libtre5 und libzlib5 Pakete die fehlenden Elemente nachinstalliert. Anschließend aus dem Suse Install script die Sequenz für den archiver rausgezogen und Debian tauglich umgebaut, um die ganzen config Dateien für grommunio-archive.conf und sphinx.conf zu erzeugen sowie die postfix main.cf anzupassen.

Allerdings ist im Suse Setup script ein Schritt drin, für den ich keine Lösung finden kann: es wird dort
sudo -u groarchive indexer --all
indexe wird nirgendwo gefunden.
Zu welchem Paket/modul gehört der?

Freue mich auf einen Reply

Br br

  • crpb replied to this.

    Puh, gute Frage. Tatsächlich fehlte bei mir das /usr/sbin/grommunio-index-run.sh Script. Das habe ich nun aus dem Git Repo kopiert da abgelegt und gestartet, das tut aber ohne Probleme. Auch mit einem neuen User :-/ Ich kann das also leider nicht nachstellen :-(

      eryx Aus welchem git repo hast du denn das script genommen, dann kann ich das mal vergleichen?

      Br br

      bringha sudo -u groarchive indexer --all

      Schau mal in /usr/lib/grommunio-archive/ nach den indexer-scripts.

        crpb Danke für die Info !

        Die hatte ich auch gefunden, aber die rufen alle freudig direkt einen 'indexer' mit verschiedenen Parametern auf. Irgendwie fehlt da ein Schritt davor. (so a la ... wird ein systemd file indexer.service gebaut o ä)

        Br br

        eryx Vielen Dank! das sieht bei mir genau gleich aus...

        Wem gehören denn bei dir /var/lib/grommunio-web/... und mit welchen Rechten bevor du den ersten user indiziert hast?

        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 ^^

          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 <->

            crpb

            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 <-> 

            crpb LOGS IN SCRIPTBLOCK

            was sagt denn grommunio-admin exmdb user@domain.tld store get?

              crpb

              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

              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 :-).

                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.

                  © 2020-2024 grommunio GmbH. All rights reserved. | https://grommunio.com | Data Protection | Legal notice