Zum Hauptinhalt gehen
Version: 4.9

CLI-Client für die Verwaltung

Mit dem CLI-Client ("Command Line Interface" = Kommandozeilen-Schnittstelle) können Aufgaben zur Administration der BlueMind-Plattform direkt über die Befehlszeile ausgeführt werden, ohne dafür Skripte erstellen zu müssen.

Gekoppelt mit dem bm-tick Monitoringsystem ermöglicht es unter anderem die Durchführung von Administrationsaufgaben.

Installation

Der bm-cli Client ist standardmäßig in BlueMind 4 installiert.

Zusätzliche Komponenten können installiert werden, um die Fähigkeiten des Tools zu erweitern:

  • bm-plugin-cli-mapi: Fügt Befehle zur MAPI-Verwaltung für Outlook hinzu
    Hinweis: Dieses Paket wird bei der Installation der MAPI-Pakete automatisch installiert.
  • bm-plugin-cli-setup`: fügt Befehle für die Installation und Aktualisierung von BlueMind hinzu

Hilfe erhalten

Sie können jederzeit Hilfe zu einem Befehl oder Unterbefehl, dessen Verwendung und Optionen mit -help oder -h abrufen.

Par exemple, maintenance -h vous présente la commande maintenance et ses diverses actions possibles :

root@mail:~$ bm-cli maintenance -help
Verwendung: bm-cli maintenance [-hV] [BEFEHL]
-h, --help Diese Hilfe anzeigen und das Programm beenden.
-V, --version Versionsinformationen anzeigen und das Programm beenden.
Befehle:
help Zeigt Hilfeinformationen zum angegebenen Befehl an
generate-completion Erzeugt ein Bash-/Zsh-Vervollständigungsskript für bm-cli.
consolidateIndex Konsolidiert einen Postfachindex
dump-cache Speichert Core-Caches in einer JSON-Datei
flush-cache Leert die bm-Core-Caches
hsm-to-cyrus Konvertiert den HSM-Snappy-Spool in einen Cyrus-Maildir-Ordner
list Listet Verzeichniseinträge auf
read-cyrus-index Liest eine Cyrus-Indexdatei
repair Führt einen Reparatur-Wartungsvorgang durch
ops Listet verfügbare Wartungsvorgänge auf
full-replication-resync Erzwingt eine Neusynchronisierung aller IMAP-Ordner
schema Überprüft das Datenbankschema
xfer Überträgt Benutzer von einem Backend in ein anderes Backend
Exit-Codes:
0 Erfolgreiche Programmausführung
1 Interner Softwarefehler: Beim Aufruf der
Geschäftslogik dieses Befehls ist eine Ausnahme aufgetreten.
51 Anwendungsfehler: Die Benutzereingabe für den Befehl war fehlerhaft, z. B. falsche
Anzahl von Argumenten, ein ungültiges Flag, eine fehlerhafte Syntax in einem Parameter usw.

Um weitere Details zu einem Unterbefehl zu erhalten, geben Sie einfach den Unterbefehl ein, hier finden Sie Hilfe zur Indexkonsolidierung:

root@mail:~$ bm-cli maintenance consolidateIndex -help
Erforderlicher Parameter fehlt: '<target>'
Verwendung: bm-cli maintenance consolidateIndex [--no-progress] [--reset]
[--match=<match>] [--workers=<workers>] <target>
Konsolidieren Sie einen Postfachindex
<target> E-Mail-Adresse, Domänenname oder „all“ für alle Domänen
--match=<match> regulärer Ausdruck, dem die Entität entsprechen muss, zum Beispiel: [a-c].*
--no-progress keine Fortschrittsmeldungen anzeigen
--reset Index zurücksetzen (nur die Daten, die zum
Ziel gehören)
--workers=<workers> mit X Workern ausführen

info

Die Befehle werden mit jeder neuen Version von BlueMind erweitert. Daher kann es sein, dass Sie je nach Version Ihrer Installation mehr (oder weniger) Befehle und Optionen haben.

Es ist daher wichtig, den Befehl „bm-cli -help“ aufzurufen, um zu erfahren, welche Befehle Ihnen zur Verfügung stehen.

Praktische Beispiele

Tipp

Die Befehle können miteinander oder mit anderen üblichen Befehlen gekoppelt und in Skripte eingebunden werden, um mehrere Operationen auf einmal auszuführen.

Status der BlueMind-Instanz

Mit dem folgenden Befehl können Sie Fehler auf den core Knoten einer BlueMind Instanz erkennen:

bm-cli node status
Exemple d'erreurs remontées par bm-cli node status :
root@bm:~# bm-cli node status
Warnmeldungen seit 3 Tagen (einige davon sind möglicherweise bereits behoben)
* [192.168.121.109] ES / elasticsearch-cluster-health: Clusterstatus „rot“ @ Fr, 19. Mai 08:32:10 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-hps sind langsam @ Mi., 17. Mai 14:57:39 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-ysnp sind langsam @ Mi., 17. Mai 11:43:51 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-hps sind langsam @ Mi, 17. Mai 11:43:51 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-ysnp sind langsam @ Mi, 17. Mai 07:35:24 GMT 2023
* [192.168.121.109] ES / elasticsearch-cluster-health: Der Cluster ist im roten Status @ Mi, 17. Mai 07:35:08 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-ysnp sind langsam @ Di, 16. Mai 15:08:50 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-ysnp sind langsam @ Di, 16. Mai 10:50:49 GMT 2023
* [192.168.121.109] Heartbeat: Die Heartbeats von bm-hps sind langsam @ Di, 16. Mai 10:50:49 GMT 2023
Server 192.168.121.109 (bm-master 192.168.121.109 [mail/smtp, mail/imap, bm/es, bm/core, bm/hps, bm/xmpp, bm/ac, bm/cal, bm/webmail, bm/contact, bm/settings, bm/redirector, bm/nginx, bm/pgsql, bm/pgsql-data, metrics/influxdb]) OK
DMESG Fr, 19. Mai 08:31:19 GMT 2023: systemd-journald[266]: Die Datei /var/log/journal/1bda33e3d75246aaaa6d2b8bfafcbad6/system.journal ist beschädigt oder wurde nicht ordnungsgemäß heruntergefahren; sie wird umbenannt und ersetzt.
DMESG Fr, 19. Mai 08:31:19 GMT 2023: FAT-fs (vda15): Das Volume wurde nicht ordnungsgemäß ausgehängt. Einige Daten sind möglicherweise beschädigt. Bitte führen Sie fsck aus.

:::info Mehrknoten-Installation

Bei einer Multi-Knoten-Installation sollte dieser Befehl nur auf einem core-Knoten ausgeführt werden, um unnötige Fehler oder Warnungen zu vermeiden.

:::

Verwaltung der Nutzer

Archivierte (suspendierte) Benutzer aus der Domäne entfernen

Der folgende Befehl sucht nach den E-Mail-Adressen der gesperrten Benutzer:

bm-cli user get bluemind.loc --archived --display "email".

Es ist dann möglich, die Rückgabe dieses Befehls mit einem "delete"-Befehl zu koppeln, um die zurückgegebenen Benutzer zu löschen:

bm-cli user get bluemind.loc --display "email" | jq -r '.[].email' > /tmp/archived.txt
while read account; do bm-cli user delete --dry $account ;done < /tmp/archived.txt

Wenden Sie eine Quote auf alle Nutzer an, die keine Quote haben.

Dieser Vorgang erfolgt mithilfe mehrerer Befehle von „bm-cli“ und „jq“, die zu einem einzigen Befehl zusammengefasst sind:

  1. Die Liste der Nutzer mit ihren Quoten abrufen :

    bm-cli user get bluemind.loc --display 'email quota'.

  2. Filtern Sie denselben Befehl nach Benutzern mit einer Quote von Null:

    bm-cli user get bluemind.loc --display 'email quota' | grep null

  3. Mit dem Tool „jq“ lässt sich anschließend die E-Mail-Adresse aus jeder zurückgegebenen Zeile extrahieren:

    jq -r '.email'.

  4. Und schließlich der Befehl zum Aktualisieren der Kontingentgröße (in diesem Fall ein Kontingent von 80 MB):

    bm-cli user update --quota "81920" $1

Der letzte Befehl, um dies in einer einzigen Zeile zu erreichen, ist :

root@mail:~# bm-cli contact list jdoe@bluemind.loc
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"book:Contacts_05E25C2C-3643-4ED2-997C-4A4F39933D18","name":"My contacts"}
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18","name":"Collected contacts"}
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"408C741B-3FDC-44B6-B1FD-19E79404BFCF","name":"Perso"}

Kalenderoperationen

Exportieren/Importieren aller Kalender eines Benutzers

Cas d'usage : Dans le cadre d'un départ, en vue de pouvoir les réimporter chez d'autres utilisateurs, on veut exporter l'ensemble des calendriers d'un utilisateur.

  1. Exporter l'ensemble des calendriers de l'utilisateur John Doe (identifiant jdoe@bluemind.loc) dans le dossier /home/user/export/cals :
bm-cli calendar export --output-directory /home/user/export/cals jdoe@bluemind.loc
  1. Den gewünschten Kalender bei einem anderen Benutzer importieren:
bm-cli calendar import --calendarUid calendar:Default:A1B2C3D4E5F6Z --ics-file-path /home/user/export/cals/jdoe_default.ics hannibal@bluemind.loc
Tipp

Um alle Kalender (die wie oben beschrieben exportiert wurden oder aus einer anderen Quelle stammen) zu importieren, können Sie diesen Befehl in eine Schleife einfügen, die den Exportordner und die Kalender des Zielbenutzers durchläuft.

Exportieren Sie die Kalender aller Nutzer

Cas d'usage : Dans une optique de migration ou de sauvegarde, on souhaite exporter et sauvegarder tous les calendriers de tous les utilisateurs au format ICS.

Zu diesem Zweck wird eine Schleife erstellt, die alle Benutzer durchläuft und einen Export wie oben beschrieben durchführt:

bm-cli user get bluemind.loc --display 'email' | grep -v null | jq -r '.email' > /tmp/allUser.bluemind.loc
while read account; do bm-cli calendar export --output-directory /tmp/export/cals $account; done < /tmp/allUser.bluemind.loc

Diese Schleife exportiert alle Kalender, indem sie einen Ordner pro Benutzer erstellt:

/tmp/export/cals/
./admin@bluemind.loc
-admin.ics
./hannibal@bluemind.loc
- John+Smith.ics
./jdoe@bluemind.loc
- John+Doe.ics
- Reunions.ics
./patreides@bluemind.loc
- children.ics
- on-call+duty.ics
- Paul+Atreides.ics

Kontaktoperationen

Anwendungsfall: Ein Benutzer möchte seine in seinem persönlichen Adressbuch gespeicherten Kontakte abrufen

Dazu werden zunächst eventuelle Duplikate aus dem Adressbuch der gesammelten Kontakte des Benutzers entfernt und anschließend die Kontakte in sein persönliches Adressbuch übertragen (wobei der Import zuvor getestet wird):

root@mail:~# bm-cli contact list jdoe@bluemind.loc
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"book:Contacts_05E25C2C-3643-4ED2-997C-4A4F39933D18","name":"My contacts"}
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18","name":"Collected contacts"}
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"408C741B-3FDC-44B6-B1FD-19E79404BFCF","name":"Perso"}
root@mail:~# bm-cli contact deduplicate jdoe@bluemind.loc --addressbook-uid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
2 were removed out of 35
root@mail:~# bm-cli contact export jdoe@bluemind.loc --vcf-file-path /tmp/jdoe-collected.vcf --addressbook-uid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
addressbook book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18 of jdoe@bluemind.loc was exported
root@mail:~# bm-cli contact import jdoe@bluemind.loc --vcf-file-path /tmp/jdoe-collected.vcf --addressbook-uid 408C741B-3FDC-44B6-B1FD-19E79404BFCF --dry
DRY : AddressBook 408C741B-3FDC-44B6-B1FD-19E79404BFCF of jdoe@bluemind.loc was imported
root@mail:~# bm-cli contact import jdoe@bluemind.loc --vcf-file-path /tmp/jdoe-collected.vcf --addressbook-uid 408C741B-3FDC-44B6-B1FD-19E79404BFCF
AddressBook 408C741B-3FDC-44B6-B1FD-19E79404BFCF of jdoe@bluemind.loc was imported
root@mail:~# bm-cli contact reset jdoe@bluemind.loc --addressbook-uid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
Addressbook book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18 of jdoe@bluemind.loc was reset

Aktivierung der EAS-Logs

bm-cli ermöglicht auch die Aktivierung oder Deaktivierung von EAS-Logs, um die Handhabung von Verbindungs- oder Synchronisationsproblemen auf Mobiltelefonen zu erleichtern. Siehe Probleme bei der mobilen Synchronisation für Befehle.

Administration & Maintenance

Effectuer un check&repair global

Mit dem folgenden Befehl können Sie den Vorgang „Überprüfen und Reparieren“ für alle Benutzer der Domäne „bluemind.loc“ unter Verwendung von 4 Threads durchführen:

bm-cli maintenance repair bluemind.loc --workers 4

Ändern des Passworts admin0

Aus verschiedenen technischen oder praktischen Gründen (z. B. bei Verlust) kann es sinnvoll sein, das Passwort des Benutzers admin0 zu ändern, ohne sich in BlueMind anmelden zu müssen.

Mit dem folgenden Befehl können Sie dies tun, ohne das alte Passwort zu kennen:

bm-cli user update admin0@global.virt --password "NewPassword".

Die tick-Konfiguration aktualisieren

Sobald das Überwachungstool Bm-Tick installiert ist, können Sie damit Verwaltungsaufgaben durchführen. Zum Beispiel können Sie die Konfiguration mit dem folgenden Befehl auf alle Server der Domäne verteilen:

# bm-cli tick neu konfigurieren
Tipp

Die Option --dry ermöglicht es, den Befehl zu testen: Die Operation wird nur simuliert.

# bm-cli tick reconfigure --dry

Pflege von Nutzern und Index

Das Tool bm-cli ermöglicht die Durchführung von Wartungsvorgängen an Benutzern, z. B.:

# repair the user user@bluemind.loc
bm-cli maintenance repair user@bluemind.loc
# repair all users in the domain using 4 threads
bm-cli maintenance repair bluemind.loc --numworkers 4
# consolidate the user index user@bluemind.loc
bm-cli maintenance consolidateIndex user@bluemind.loc
# processes the first 100 returned users
bm-cli maintenance consolidateIndex bluemind.loc --from 0 --size 100
# Bearbeitet die nächsten 50 Benutzer
bm-cli maintenance consolidateIndex bluemind.loc --from 101 --size 50
# Bearbeitet die Entitäten, die mit a, b oder c beginnen
bm-cli maintenance consolidateIndex bluemind.loc --match '[a-c].\*'.

Installation und Update

Da das Abonnement Zugang zu den automatisierten Updates von BlueMind gewährt, erhalten Sie auch Zugang zu zusätzlichen bm-cli Client-Operationen für diese.

info

Da diese Operationen sensibel und riskant sind, sollten diese Befehle nur von fortgeschrittenen Administratoren verwendet werden.

Um diese Befehle zu erhalten, müssen Sie das entsprechende Plugin installieren:

apt install bm-plugin-cli-setup

Das zusätzliche setup-Kommando ist direkt nach der Plugin-Installation verfügbar:

# Hilfe zu den verfügbaren Argumenten und ihrer Verwendung erhalten
bm-cli setup -h
# BlueMind installieren, indem Sie die gewünschten Konfigurationsparameter als Argumente übergeben
bm-cli setup install --external-url bluemind.bluemind.loc --domain bluemind.loc --sw-pass Passw0rd
bm-cli setup install install --external-url bluemind.bluemind.loc --domain bluemind.loc --sw-pass Passw0rd --set-contact admin@bluemind.loc --reinstall
  • --external-url : externe URL von BlueMind
  • --domain : Domain
  • --set-contact : ermöglicht das Festlegen der Standard-E-Mail-Adresse für Benachrichtigungen über das Ablaufdatum des Abonnements
  • --sw-pass : ermöglicht das Setzen des Administratorpassworts für den Setupwizard

:::note Befehlszeilen

Informationen zu den Befehlszeilen finden Sie auf der entsprechenden Seite BlueMind-Update.

:::

Verwaltung von SSL-Zertifikaten

Das Hinzufügen von SSL-Zertifikaten, entweder für eine bestimmte Domain oder für das Gesamtsystem, kann auf 2 Arten erfolgen:

  • indem sie via Let's Encrypt erstellt werden
  • indem Sie die Dateien direkt importieren

Nützliche Befehle

bm-cli certificate file-cert --ca=certificate_authority.pem --cert=cert.pem --key=private_key.pem --domain=<domain>
bm-cli certificate manage-lets-encrypt --contact=no-reply@\<default-domain> --domain=<domain>

Verwaltung eines Let's Encrypt-Zertifikats

Es ist möglich, Let's Encrypt zu verwenden, um ein Zertifikat für eine bestimmte Domain oder für das globale System zu erstellen.

Aktivierung

Um ein erstes Zertifikat mit Let's Encrypt zu generieren, muss der folgende Befehl ausgeführt werden:

bm-cli certificate manage-lets-encrypt --contact=no-reply@"default-domain" --domain="bluemind.loc".
  • --contact : ermöglicht das Hinzufügen einer E-Mail-Adresse, über die Sie benachrichtigt werden, wenn das Zertifikat abläuft.
    Wenn keine Adresse angegeben ist, wird die Adresse no-reply@"default-domain" verwendet (Voraussetzung: die Default-Domain muss vorher festgelegt werden).
  • --domain : Standardmäßig global.virt, wenn keine Domain angegeben ist

Erneuerung

Wenn die Domain bereits über ein von Let's Encrypt generiertes Zertifikat verfügt, kann dieses durch Ausführen des folgenden Befehls aktualisiert werden:

bm-cli certificate manage-lets-encrypt --contact=no-reply@"default-domain" --domain="bluemind.loc".
  • --contact : ermöglicht das Ändern der E-Mail-Adresse, falls erforderlich, andernfalls wird die zuvor angegebene Adresse beibehalten.
  • --domain : Standardmäßig global.virt, wenn keine Domain angegeben ist

Manueller Import

Es ist möglich, ein SSL-Zertifikat manuell zu importieren, indem man 3 erforderlichen Dateien mit folgendem Befehl hinzufügt:

bm-cli certificate file-cert --ca=certificate_authority.pem --cert=cert.pem --key=private_key.pem --domain="bluemind.loc"

  • --domain : Standardmäßig global.virt, wenn keine Domain angegeben ist