Client CLI pour l'administration
Le client CLI (« Command Line Interface » = Interface de lignes de commandes) permet d'effectuer des tâches d'administration de la plateforme BlueMind en ligne de commande, sans avoir à créer de scripts pour cela.
Couplé au système de monitoring bm-tick, il permet notamment des tâches d'administration de celui-ci. Pour plus d'informations, voir Découvrir et installer bm-tick.
Installation
Le client bm-cli est installé par défaut lors de l'installation de BlueMind.
Des composants additionnels peuvent être installés pour étendre les capacités de l'outil :
bm-plugin-cli-mapi: ajoute des commandes de gestion de MAPI pour Outlook
NB : ce paquet est installé automatiquement lors de l'installation des paquets mapi.bm-plugin-cli-setup: ajoute des commandes pour l'installation et la mise à jour de BlueMind
Usage
Lancer une commande
Pour utiliser l'outil en ligne de commande, se connecter au serveur en ssh et utiliser la commande bm-cli suivi de la commande et ses options.
Par exemple, pour lister les utilisateurs du domaine :
bm-cli user get bluemind.loc
Les commandes peuvent être couplées, entre elles ou avec d'autres commandes habituelles. Elle peuvent aussi être incluses dans des scripts afin d'effectuer plusieurs opérations en une seule fois.
Lister les commandes existantes
La commande bm-cli -h permet de lister l'intégralité des commandes disponibles :
bm-cli -h
auditlog
  auditlog create                           create audit log datastream
  auditlog acl                              get access control entries
  auditlog get                              get auditlog data
  auditlog calendar                         get calendar data
  auditlog dir                              get directory data
  auditlog global                           get global auditlog data
  auditlog login                            get login data
  auditlog mail                             get mail data
  auditlog mailfilter                       get mail filter rule data
  auditlog get-retention                    Get retention duration (days) for datastream
  auditlog sysconf                          get system configuration and global setting data
  auditlog set-retention                    set retention duration (days) for datastream
auth
  auth reconfigure                          Delete & recreate keycloak realms for existing domains
  auth get-conf                             Get domain authentication configurations
  auth set-conf                             Set domain authentication configuration
auth-provider
  auth-provider openid-list-provider        List registered OpenId provider systems
  auth-provider openid-register-provider    Register an OpenID provider system
calendar
  calendar log                              Pretty-Print an auditlog file
  calendar delete-events-by-organizer       Delete all events having a specific organizer
  calendar export                           Export a calendar to an ICS file
  calendar import                           import an ICS File
  calendar list                             List user or whole domain calendars
  calendar list-event-details-by-organizer  List event details
  calendar reset                            Reset a calendar
  calendar resync                           Resync an event
  calendar touch                            Increment the version of a calendar event
...
Les commandes sont enrichies au fur et à mesure des versions de BlueMind. Il se peut donc que plus (ou moins) de commandes et options soient disponibles selon la version de BlueMind installée.
Il est donc important de se référer à la commande bm-cli -h du serveur.
Le paramètre supplémentaire v permet d'ajouter au listing l'aide complète de chaque commande :
bm-cli -hv
auditlog  -h, --help
                 Affiche l'arbre complet des commandes.
  -v, --verbose
                 Affiche aussi les arguments pour chaque commande de l'arbre.
[...]
calendar  -h, --help
                 Affiche l'arbre complet des commandes.
  -v, --verbose
                 Affiche aussi les arguments pour chaque commande de l'arbre.
  calendar log                              Pretty-Print an auditlog file
    --dataShow data
    --show-ro
                        Show read-only data
    --data-by-date
                        Show data only on a specific date (yyyy-MM-ddThh:mm:ss).
                          Matching also works with substrings of this pattern
    --event-query
                        Event query string (Columns Action and Event)
    --event-uid
                        Event UID query string
    --calendar-query
                        Calendar query string (Column Calendar)
    --filtered-actions
                        Comma-separated list of actions which should not appear
                          in the output
    <file>Path to the auditlog file
  calendar delete-events-by-organizer       Delete all events having a specific organizer
    --domain
              domain
    --dry
              list events without deleting them
    <email>
              Organizer email
  calendar export                           Export a calendar to an ICS file
    --direntry-uid
                        Directory entry UID
    --all-domains
                        All domains except global.virt
    --workers
                        run with X workers (default: 1)
    --match
                        regex that entity must match, for example : [a-c].*
    --progress
                        display progress messages
    --output-directory
                        The output directory path, files will be save in an email
                          named subdirectory
    --dry Dry-run (do nothing)
    --calendarUid
                        calendar uid, export all calendars if not specified
    <target>
                        email address or domain name
[...]
setup  -h, --help
                 Affiche l'arbre complet des commandes.
  -v, --verbose
                 Affiche aussi les arguments pour chaque commande de l'arbre.
  setup enable-mailapp                      Activate MailApp
    --direntry-uid
                    Directory entry UID
    --all-domains
                    All domains except global.virt
    --workers
                    run with X workers (default: 1)
    --match
                    regex that entity must match, for example : [a-c].*
    --progress
                    display progress messages
    --group
                    Adds the necessary role to this group (defaults to 'user')
    <target>
                    email address or domain name
  setup check-subscription                  Check subscription
  setup install                             Install BlueMind
    --domain
                         Set the default domain name.
    --external-url
                         Set the External Url. Ex: bluemind.domain.tld
    --sw-pass
                         Set setup wizard password.
    --domain-admin-pass
                         Set domain administrator password.
    --admin0-pass
                         Set admin0 password.
    --reinstall
                         Force installation even if installed.
    --set-contact
                         Set a subscription contact
    --shard-ip
                         Provided shard server IP (deprecated, please use the
                           servers-map feature)
    --server-map
                                  Assign tags on the selected servers, can be
                           specified multiple times.
                         (List of tags in TagDescriptor from net.bluemind.server.
                           api)
                         Exemple:
                           * elasticsearch on 192.168.1.2
                           * storage servers on 192.168.1.3, 192.168.1.4
                         --server-map 192.168.1.2=bm/es \
                         --server-map 192.168.1.3=bm/pgsql-data,mail/imap \
                         --server-map 192.168.1.4=bm/pgsql-data,mail/imap
    --lang Set admin0 language. (default 'fr')
  setup upgrade_history                     Shows the Bluemind upgrade history
  setup upgrade                             Upgrade BlueMind
    -f, --force
                 force update, even if core reports the correct version
    --backup
                 Backup Bluemind databases (pg-dump), may be very long.
    --lang
                 Set admin0 language (en, fr...).
Aide sur une commande
À tout moment, il est possible d'obtenir de l'aide sur une commande particulière au moyen de --help ou -h.
Par exemple, maintenance -h présente la commande maintenance et ses diverses actions possibles :
bm-cli maintenance -h
consolidateIndex    Consolidate a mailbox index
dump-cache          Dump core caches to a json file
flush-cache         Flush bm-core caches
list                List directory entries
orphan-body-repair  delete orphan mail bodies
orphan-check        check and delete orphan mailbox records
read-cyrus-index    Read a cyrus index file
repair              Run repair maintenance operation
ops                 List available maintenance operations
schema              check database schema
sentry              sentry setup
update-fw           Update firewall rules
Pour obtenir plus de détails sur une sous-commande, il suffit de taper la sous-commande à son tour, ici pour obtenir l'aide concernant l'opération de consolidation d'index :
bm-cli maintenance consolidateIndex -h
Usage: bm-cli maintenance consolidateIndex [--progress] [--reset]
       [--match=<match>] [--workers=<workers>] (<target> |
       --direntry-uid=<dirEntryUid> | --all-domains)
Consolidate a mailbox index
      <target>              email address or domain name
      --all-domains         All domains except global.virt
      --direntry-uid=<dirEntryUid>
                            Directory entry UID
      --match=<match>       regex that entity must match, for example : [a-c].*
      --progress            display progress messages
      --reset               Reset the index (only the data belonging to the
                              target)
      --workers=<workers>   run with X workers (default: 1)
Gestion des entités
Obtenir l'UID d'une entité
Les différentes commandes concernant les entités (user, contact, calendar)
Trouver l'UID d'un utilisateur
Pour obtenir l'UID d'un utilisateur, utiliser la commande bm-cli user get en précisant comme caractère de recherche son adresse email par défaut ou en couplant avec grep pour filtrer sur un autre champ :
bm-cli user get bluemind.loc --match=jdoe@bluemind.loc --display uid
{"uid":"9236AE27-9C2D-4BA7-84D3-C2067D515195"}
bm-cli user get bluemind.loc --display "uid familyNames"|grep "Doe"
{"uid":"9236AE27-9C2D-4BA7-84D3-C2067D515195","familyNames":"Doe"}
Trouver l'UID d'un groupe
Pour obtenir l'UID d'un groupe, utiliser la commande bm-cli group get en précisant le nom du groupe et le domaine de recherche :
bm-cli group get Direction@bluemind.loc
{"value":{"orgUnitUid":null,"emails":[{"address":"direction@bluemind.loc","allAliases":true,"isDefault":true}],"hidden":false,"archived":false,"system":false,"dataLocation":"bm-master","name":"Direction","description":null,"properties":{},"hiddenMembers":false,"mailArchived":true,"memberCount":2},"uid":"A48CF63E-C39F-46A9-9F85-3DF1459E8BDC","internalId":24,"version":53,"displayName":"Direction","externalId":null,"createdBy":"admin0_global.virt","updatedBy":"system","created":1758880480523,"updated":1758880493135,"flags":[]}
NB : contrairement à la commande pour les utilisateurs, il n'est ici pas possible de filtrer la sortie pour n'obtenir que l'UID.
Trouver l'UID d'un carnet d'adresse
L'UID d'un carnet peut être trouvé grâce à la commande bm-cli contact list permettant de lister l'ensemble des carnets d'un utilisateur, d'un domaine ou de l'ensemble des domaines.
Pour le carnet d'un utilisateur on pourra récupérer la liste complète de ses carnets et éventuellement la filtrer grâce à d'autres commandes (grep par exemple) :
bm-cli contact list jdoe@bluemind.loc
Pour un carnet de domaine, le paramètre --match permet de filtrer facilement sur le nom :
bm-cli contact list --match=Clients --all-domains
{"owner":"FDF64CCE-E957-423E-BB93-25990B2B13C9","uid":"FDF64CCE-E957-423E-BB93-25990B2B13C9","name":"Clients"}
Trouver l'UID d'un calendrier
L'UID d'un calendrier peut être trouvé grâce à la commande bm-cli calendar list permettant de lister l'ensemble des calendriers d'un utilisateur, d'un domaine ou de l'ensemble des domaines.
Pour le calendrier d'un utilisateur on pourra récupérer la liste complète de ses calendrier et éventuellement la filtrer grâce à d'autres commandes (grep par exemple) :
bm-cli calendar list jdoe@bluemind.loc
{"owner":"9236AE27-9C2D-4BA7-84D3-C2067D515195","uid":"calendar:Default:9236AE27-9C2D-4BA7-84D3-C2067D515195","name":"John Doe"}
Pour un calendrier de domaine, le paramètre --match permet de filtrer facilement sur le nom :
bm-cli calendar list --all-domains --match=Evenementiel
{"owner":"B835E391-FB8E-4879-A763-883C5489C0CA","uid":"B835E391-FB8E-4879-A763-883C5489C0CA","name":"Evenementiel"}
Trouver l'UID d'une entité, quelle qu'elle soit
La commande maintenance list permet de lister l'ensemble des entités d'une domaine ou d'une installation, quelle que soit leur type. Cela permet de trouver les informations, dont l'UID, sans connaitre son type ou si son type n'a pas de commande propre :
# rechercher l'UID d'une entité de l'installation, sans connaître son type ou son domaine, grâce à grep
bm-cli maintenance list --all-domains | grep contact
{"displayName":"contact","entryUid":"8D2FCA19-798A-4ACE-A88F-9E5693172FD9","accountType":null,"kind":"MAILSHARE","path":"7bbaaa6d.internal/mailshares/8D2FCA19-798A-4ACE-A88F-9E5693172FD9","email":"contact@bluemind.loc","hidden":false,"system":false,"archived":false,"emails":null,"orgUnitUid":null,"orgUnitPath":null,"dataLocation":"bm-master","minId":13}
# rechercher l'UID de la boîte partagée "contact" du domaine bluemind.loc
bm-cli maintenance list contact@bluemind.loc
{"displayName":"contact","entryUid":"8D2FCA19-798A-4ACE-A88F-9E5693172FD9","accountType":null,"kind":"MAILSHARE","path":"7bbaaa6d.internal/mailshares/8D2FCA19-798A-4ACE-A88F-9E5693172FD9","email":"contact@bluemind.loc","hidden":false,"system":false,"archived":false,"emails":null,"orgUnitUid":null,"orgUnitPath":null,"dataLocation":"bm-master","minId":13}
NB : l'UID est ici retourné dans le champ entryUid.
Gestion des utilisateurs
Abonner tous les utilisateurs à un carnet ou un calendrier
Cas d'usage : on souhaite que tous les utilisateurs soient abonnés à un carnet d'adresse de domaine. Pour éviter les erreurs/oublis et simplifier la procédure, il est possible pour un administrateur de faire cela facilement grâce au CLI.
Dans un premier temps, il faut récupérer l'UID du carnet ou du calendrier souhaité (voir ci-dessus).
Ensuite, il suffit d'utiliser la commande user subscribe avec le paramètre --users-all pour abonner l'ensemble des utilisateurs à l'entité voulue :
# abonnement des utilisateurs au carnet "Clients"
bm-cli user subscribe --subscribe-to "FDF64CCE-E957-423E-BB93-25990B2B13C9" --users-all --domain "bluemind.loc"
1/3:SUCCESS:user UID 9236AE27-9C2D-4BA7-84D3-C2067D515195 subscribed
2/3:SUCCESS:user UID D44D1825-E4DF-44FB-99CD-3E8AF564AED1 subscribed
3/3:SUCCESS:user UID 678D2A6D-D573-41A2-B73D-C32DEA1C4BC1 subscribed
---
Subscribe to 'FDF64CCE-E957-423E-BB93-25990B2B13C9' ending
0 subscriber(s) not found
0/3 subscription(s) in error
3/3 subscription(s) success
# abonnement des utilisateurs au calendrier "Evenementiel"
bm-cli user subscribe --subscribe-to "B835E391-FB8E-4879-A763-883C5489C0CA" --users-all --domain "bluemind.loc"
1/3:SUCCESS:user UID 9236AE27-9C2D-4BA7-84D3-C2067D515195 subscribed
2/3:SUCCESS:user UID D44D1825-E4DF-44FB-99CD-3E8AF564AED1 subscribed
3/3:SUCCESS:user UID 678D2A6D-D573-41A2-B73D-C32DEA1C4BC1 subscribed
---
Subscribe to 'B835E391-FB8E-4879-A763-883C5489C0CA' ending
0 subscriber(s) not found
0/3 subscription(s) in error
3/3 subscription(s) success
Supprimer les utilisateurs archivés (suspendus) du domaine
La commande ci-dessous recherche les adresses de messagerie des utilisateurs suspendus :
bm-cli user get bluemind.loc --archived --display "email"
Il est alors possible de coupler le retour 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
Appliquer un quota à tous les utilisateurs qui n'en ont pas
Cette opération se fait à l'aide de plusieurs commandes bm-cli et jq qui sont regroupées en une seule :
- 
Récupérer la liste des utilisateurs avec leur quota :
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
jqpermet ensuite d'extraire l'email de chaque ligne retournée :jq -r '.email' - 
Enfin, la commande de mise à jour du quota (ici un quota de 80 Mo) :
bm-cli user update --quota "81920" username@bluemind.loc 
Ainsi, la commande finale pour réaliser cela en une seule ligne :
bm-cli user get bluemind.loc --display 'email quota' | grep null | jq -r '.email' | xargs -n1 bm-cli user update --quota "81920"
Opérations sur les calendriers
Exporter/importer l'ensemble des calendriers d'un utilisateur
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 - 
Importer le calendrier souhaité chez un autre utilisateur :
bm-cli calendar import --calendarUid calendar:Default:A1B2C3D4E5F6Z --ics-file-path /home/user/export/cals/jdoe_default.ics hannibal@bluemind.loc💡 Pour importer l'ensemble des calendriers (exportés comme ci-dessus, ou provenant d'une autre source) on peut inclure cette commande dans une boucle parcourant le dossier d'export et les calendriers de l'utilisateur cible.
 
Exporter les calendriers de tous les utilisateurs
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.
Pour cela, on réalise une boucle parcourant l'ensemble des utilisateurs et réalisant un export tel que ci-dessus :
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
Cette boucle exporte l'ensemble des calendriers en créant un dossier par utilisateur :
/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
Opérations sur les contacts
Importer les contacts d'un carnet d'adresse dans un autre
Cas d'usage : un utilisateur souhaite récupérer ses contacts collectés dans son carnet d'adresses personnel.
Pour cela, on va dans un premier temps éliminer les éventuels doublons du carnet des collectés de l'utilisateur, puis on transfèrera les contacts vers son carnet personnel (en testant au préalable l'import) :
# recherche de l'uid des carnets de l'utilisateur
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"
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
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"
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
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"
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
Administration & Maintenance
État de l'instance BlueMind
La commande suivante permet de détecter les erreurs sur les nœuds core d'une instance BlueMind :
bm-cli node status
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.
En cas d'installation multi-nœuds, cette commande ne doit être exécutée que sur un nœud core afin d'éviter l'apparition d'erreurs ou avertissements inutiles.
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
Modifier le mot de passe admin0
Pour diverses raisons, techniques ou pratiques (en cas de perte, par exemple), il peut être utile de modifier le mot de passe de l'utilisateur admin0 sans avoir à se loguer dans BlueMind.
La commande suivante permet de le faire sans connaître l'ancien mot de passe :
bm-cli user update admin0@global.virt --password "NewPassword"
Mettre à jour la configuration tick
Lorsque l'outil de monitoring Bm-Tick est installé (voir Découvrir et installer bm-tick), il est possible d'effectuer des tâches d'administration sur celui-ci. Par exemple, il est possible de redéployer la configuration sur l'ensemble des serveurs du domaine avec la commande suivante :
bm-cli tick reconfigure
L'option --dry permet de tester la commande : l'opération est juste simulée.
bm-cli tick reconfigure --dry
Maintenance des utilisateurs et index
L'outil bm-cli permet d'effectuer diverses opérations de maintenance sur les utilisateurs, par exemple :
# 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].\*'
Analyse des logs
L'outil Auditlog permet de connaitre les actions et modifications réalisées sur les entités BlueMind.
Pour plus d'informations, voir Logs - Configuration et analyseActivation des logs EAS
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.
Installation et mise à jour de BlueMind
La souscription donnant accès aux mises à jour automatisées de BlueMind, elle donne aussi accès à des opérations supplémentaires du client bm-cli pour celles-ci.
Pour disposer de ces commandes, il est nécessaire d'installer le plugin dédié :
- Debian/Ubuntu
 - Redhat/CentOS
 
apt install bm-plugin-cli-setup
yum install bm-plugin-cli-setup
La commande supplémentaire setup est alors disponible dès l'installation du plugin, sans redémarrage.
Installation
Pour installer BlueMind, utiliser la sous-commande install :
# 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
ℹ️ Paramètres utilisés ici :
--external-url: url externe du BlueMind--domain: domaine--set-contact: permet de positionner l'adresse de messagerie par défaut pour les notifications de l'expiration de la souscription--sw-pass: permet de positionner le mot de passe de l'admin pour le setupwizard
Le paramètre --server-map permet d'assigner des serveurs et installer toute une instance en une seule commande.
Par exemple :
--server-map 192.168.1.2=bm/es --server-map 192.168.1.3=bm/pgsql-data,mail/imap --server-map 192.168.1.4=bm/nginx-edge,mail/smtp-edge
Pour une information plus complète sur les paramètres disponibles, consulter l'aide en ligne de la commande :
bm-cli setup install -h
Mise à jour
Pour des informations sur la mise à jour de BlueMind en ligne de commande, consulter la page dédiée Mise à jour de BlueMind.
Gestion des certificats SSL
L'ajout et le renouvellement des certificats SSL, pour un domaine donné ou pour le système global, peut se faire de deux façons :
- en les générant via Let's Encrypt
 - en important directement les fichiers
 
Commandes utiles
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>
Utilisation de Let's Encrypt
Il est possible d'utiliser Let's Encrypt pour générer le certificat pour un domaine donné ou pour le système global.
Activation
Afin de lancer une première génération de certificat avec Let's Encrypt, il faut jouer la commande suivante :
bm-cli certificate manage-lets-encrypt --contact=no-reply@"default-domain" --domain="bluemind.loc"
--contact: permet d'ajouter une adresse email qui permettra d'être informé lorsque l'expiration du certificat approchera.
Si aucune adresse n'est renseignée l'adresseno-reply@"default-domain"sera utilisée (Pré-requis: le default domain devra être renseigné au préalable).- -
-domain: par défautglobal.virtsi aucun domaine n'est spécifié 
Renouvellement
Si le domaine possède déjà un certificat généré par Let's Encrypt, celui-ci pourra être mis à jour en jouant la commande suivante :
bm-cli certificate manage-lets-encrypt --contact=no-reply@"default-domain" --domain="bluemind.loc"
--contact: permet de modifier l'adresse email, si besoin, sinon l'adresse précédemment renseignée sera conservée.--domain: par défautglobal.virtsi aucun domaine n'est spécifié
Import manuel
Il est possible d'importer manuellement un certificat SSL en ajoutant les trois fichiers obligatoires, grâce à la commande suivante :
bm-cli certificate file-cert --ca=certificate_authority.pem --cert=cert.pem --key=private_key.pem --domain="bluemind.loc"
--domain: par défautglobal.virtsi aucun domaine n'est spécifié