Zum Hauptinhalt gehen

CLI-Client für die Verwaltung

Der CLI-Client ("Command Line Interface" = Befehlszeilenschnittstelle) ermöglicht es Ihnen, Verwaltungsaufgaben der BlueMind Plattform über die Befehlszeile auszuführen, ohne dafür Skripte erstellen zu müssen.

Gekoppelt mit dem bm-tick Monitoringsystem ermöglicht es unter anderem die Durchführung von Administrationsaufgaben. Weitere Informationen finden Sie unter bm-tick entdecken und installieren.

Installation

Le client bm-cli est installé par défaut lors de l'installation de BlueMind.

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

  • bm-plugin-cli-mapi : ajoute des commandes de gestion de MAPI für Outlook
    NB : ce paquet est installé automatiquement lors de l'installation des paquets mapi.
  • bm-plugin-cli-setup`: fügt Befehle für [die Installation und Aktualisierung von BlueMind] hinzu(#install-update)

Hilfe erhalten

À tout moment, vous pouvez obtenir de l'aide sur une commande ou une sous-commande, sur son usage et ses options au moyen de --help ou -h.

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

root@mail:~$ bm-cli maintenance --help
Usage: bm-cli maintenance [-hV] [COMMAND]
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
Commands:
help Displays help information about the specified command
generate-completion Generate bash/zsh completion script for bm-cli.
consolidateIndex Consolidate a mailbox index
dump-cache Dump core caches to a json file
flush-cache Flush bm-core caches
hsm-to-cyrus Converts HSM snappy spool to a cyrus maildir folder
list List directory entries
read-cyrus-index Read a cyrus index file
repair Run repair maintenance operation
ops List available maintenance operations
full-replication-resync Force a resync of all IMAP folders
schema check database schema
xfer xfer users from one backend to another backend
Exit Codes:
0 Successful program execution
1 Internal software error: an exception occurred when invoking the
business logic of this command.
51 Usage error: user input for the command was incorrect, e.g., the wrong
number of arguments, a bad flag, a bad syntax in a parameter, etc.

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
Missing required parameter: '<target>'
Usage: bm-cli maintenance consolidateIndex [--no-progress] [--reset]
[--match=<match>] [--workers=<workers>] <target>
Consolidate a mailbox index
<target> email address, domain name or 'all' for all domains
--match=<match> regex that entity must match, for example : [a-c].*
--no-progress don't display progress messages
--reset Reset the index (only the data belonging to the
target)
--workers=<workers> run with X workers

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.

Il est donc important de se référer à la commande bm-cli --help afin de savoir quelles sont celles que vous pouvez utiliser.

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.

État de l'instance BlueMind ](#install-update)

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 cette commande :
root@bm:~# bm-cli node status
Alerts for 3 days (some might be resolved)
* [192.168.121.109] ES / elasticsearch-cluster-health: cluster is red @ Fri May 19 08:32:10 GMT 2023
* [192.168.121.109] heartbeat: bm-ysnp heartbeats are slow @ Wed May 17 11:43:51 GMT 2023
* [192.168.121.109] heartbeat: bm-ysnp heartbeats are slow @ Wed May 17 07:35:24 GMT 2023
* [192.168.121.109] ES / elasticsearch-cluster-health: cluster is red @ Wed May 17 07:35:08 GMT 2023
* [192.168.121.109] heartbeat: bm-ysnp heartbeats are slow @ Tue May 16 15:08:50 GMT 2023
* [192.168.121.109] heartbeat: bm-ysnp heartbeats are slow @ Tue May 16 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/ac, bm/cal, bm/webmail, bm/contact, bm/settings, bm/redirector, bm/nginx, bm/pgsql, bm/pgsql-data, metrics/influxdb]) OK
DMESG Fri May 19 08:31:19 GMT 2023: systemd-journald[266]: File /var/log/journal/1bda33e3d75246aaaa6d2b8bfafcbad6/system.journal corrupted or uncleanly shut down, renaming and replacing.
DMESG Fri May 19 08:31:19 GMT 2023: FAT-fs (vda15): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Multi-Knoten-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 suspendierten Benutzer:

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

Il est alors possible de coupler le retour de cette commande avec une boucle et une commande delete afin de supprimer les utilisateurs retournés :

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.

Cette opération se fait à l'aide de plusieurs commandes bm-cli et jq qui sont regroupées en une seule :

  1. Die Liste der Nutzer mit ihren Quoten abrufen :
bm-cli user get bluemind.loc --display 'email quota'
  1. Filtrer cette même commande sur les utilisateurs ayant un quota null :
bm-cli user get bluemind.loc --display 'email quota' | grep null
  1. L'outil jq permet ensuite d'extraire l'email de chaque ligne retournée :
jq -r '.email'
  1. Schließlich der Befehl zum Aktualisieren der Quote (hier eine Quote von 80 MB) :
bm-cli user update --quota "81920" username@bluemind.loc

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

bm-cli user get bluemind.loc --display 'email quota' | grep null | jq -r '.email' | xargs -n1 bm-cli user update --quota "81920"

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. Importieren Sie den gewünschten Kalender von einem anderen Benutzer :
bm-cli calendar import --calendarUid calendar:Default:A1B2C3D4E5F6Z --ics-file-path /home/user/export/cals/jdoe_default.ics hannibal@bluemind.loc

💡 Um alle Kalender (exportiert wie oben oder aus einer anderen Quelle) zu importieren, kannst du diesen Befehl in eine Schleife einbinden, 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.

Dazu wird eine Schleife durch alle Nutzer gezogen und ein Export wie oben durchgefü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

Cas d'usage : un utilisateur souhaite récupérer ses contacts collectés dans son carnet d'adresses personnel.

Dann übertragen Sie die Kontakte in Ihr persönliches Notizbuch (testen Sie vorher den Import):

# recherche de l'uid des carnets de l'utilisateur
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"}
# nettoyage du carnet "Collected contacts"
root@mail:~$ bm-cli contact deduplicate jdoe@bluemind.loc --addressbook-uid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
2 were removed out of 35
# export au format VCF
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
# import du carnet au format VCF dans le carnet personnel
## test grâce à l'option "dry"
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
## réalisation de l'import
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
# réinitialisation du carnet "Collected contacts"
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 permet également d'activer ou désactiver les logs EAS afin de faciliter la gestion des problèmes de connexion ou de synchronisation sur mobile. Consulter la page Problèmes de synchronisation mobile pour voir les commandes.

Administration & Maintenance

Effectuer un check&repair global

La commande suivante permet d'effectuer l'opération "valider et réparer" sur l'ensemble des utilisateurs du domaine bluemind.loc en utilisant 4 threads :

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

Wenn das Bm-Tick-Monitoring-Tool installiert ist (siehe bm-tick entdecken und installieren), können Sie Verwaltungsaufgaben für das Tool ausführen. Zum Beispiel können Sie die Konfiguration mit dem folgenden Befehl auf alle Server der Domäne verteilen:

bm-cli tick reconfigure
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 verschiedene Wartungsmaßnahmen an Benutzern durchzuführen, z.B. :

# réparer l'utilisateur user@bluemind.loc
bm-cli maintenance repair user@bluemind.loc
# réparer l'ensemble des utilisateurs du domaine en utilisant 4 threads
bm-cli maintenance repair bluemind.loc --numworkers 4
# consolider l'index de l'utilisateur user@bluemind.loc
bm-cli maintenance consolidateIndex user@bluemind.loc
# traite les 100 premiers utilisateurs retournés
bm-cli maintenance consolidateIndex bluemind.loc --from 0 --size 100
# traite les 50 utilisateurs suivants
bm-cli maintenance consolidateIndex bluemind.loc --from 101 --size 50
# traite les entités commencant par a, b ou c
bm-cli maintenance consolidateIndex bluemind.loc --match '[a-c].\*'

Log-Analyse

Das Auditlog-Werkzeug ermöglicht es dir, die Aktionen und Änderungen zu verfolgen, die an den BlueMind-Einheiten vorgenommen wurden.

Weitere Informationen finden Sie unter Logs - Konfiguration und Analyse

Installation und Aktualisierung von

Das Abonnement für automatische BlueMind-Updates bietet auch zusätzliche bm-cli-Clientoperationen 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:

# obtenir de l'aide sur les arguments disponibles et leur utilisation
bm-cli setup -h
# installer BlueMind en passant en argument les paramètres de configuration souhaités
bm-cli setup install --external-url bluemind.bluemind.loc --domain bluemind.loc --sw-pass Passw0rd
bm-cli setup 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
Befehlszeilen

Die Befehlszeilen finden Sie auf der entsprechenden Seite Update von BlueMind.

Verwaltung von SSL-Zertifikaten

Das Hinzufügen und Erneuern von SSL-Zertifikaten für eine bestimmte Domäne oder für das gesamte System kann auf zwei 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>

Verwendung von Let's Encrypt.

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

Sie können ein SSL-Zertifikat auch manuell importieren, indem Sie die drei erforderlichen Dateien mit dem folgenden Befehl hinzufügen:

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