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
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
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
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.
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 :
- Die Liste der Nutzer mit ihren Quoten abrufen :
bm-cli user get bluemind.loc --display 'email quota'
- Filtrer cette même commande sur les utilisateurs ayant un quota
null
:
bm-cli user get bluemind.loc --display 'email quota' | grep null
- L'outil
jq
permet ensuite d'extraire l'email de chaque ligne retournée :
jq -r '.email'
- 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.
- 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
- 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
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 AnalyseInstallation und Aktualisierung von
Das Abonnement für automatische BlueMind-Updates bietet auch zusätzliche bm-cli
-Clientoperationen für diese.
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:
- Debian/Ubuntu
- Redhat/CentOS
apt install bm-plugin-cli-setup
yum 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
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 Adresseno-reply@"default-domain"
verwendet (Voraussetzung: die Default-Domain muss vorher festgelegt werden).- -
-domain
: Standardmäßigglobal.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äßigglobal.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äßigglobal.virt
, wenn keine Domain angegeben ist