Installation
Remarque |
---|
title | Versions antérieures à 3.5.14 |
---|
|
Si votre BlueMind n'est pas à jour de la toute dernière version publiée, il risque d'y avoir un conflit entre les paquets installés car bm-cli s'installera dans la dernière version disponible. Pour éviter cela, vous pouvez : Bloc de code |
---|
#deb https://SUBSCRIPTION_USER:PASSWORD@pkg.bluemind.net/3.5/xenial/pkgs /
deb https://SUBSCRIPTION_USER:PASSWORD@pkg.bluemind.net/3.5.12-4/xenial/pkgs |
NB : nous vous recommandons comme ci-dessus de copier la ligne et commenter la 1ère version en rajoutant un # en début de ligne, cela facilitera le retour arrière. Image Added avec cela, la version de toute votre installation BlueMind est figée. Une fois les paquets installés, pensez à remettre le numéro de version générique afin de pouvoir mettre à jour lorsque vous le souhaiterez. |
Pour installer le client bm-cli, installer le paquet dédié sur le serveur, disponible à partir de BlueMind 3.5.10 :
Tabs group |
---|
border | all-sides |
---|
navcolor | navy |
---|
|
Debian/UbuntuRedhat/CentOS |
Info |
---|
Aucun redémarrage n'est nécessaire, l'outil est immédiatement effectif. |
Fonctionnement
Les commandes
Les commandes sont passées via un terminal directement sur le serveur, connecté en ssh par exemple.
Par exemple, une commande permettant de connaître les carnets d'adresses d'un utilisateur :
Bloc de code |
---|
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"} |
Obtenir de l'aide
Remarque |
---|
Les commandes sont enrichies au fur et à mesure des versions de BlueMind. Il se peut donc que vous ayez plus (ou moins) de commandes selon la version de votre installation. Il est donc important de se référer à la commande "bm-cli help" afin de savoir quelles sont celles que vous pouvez utiliser. Par exemple |
Fonctionnement
Les commandes
Les commandes sont passées via un terminal directement sur le serveur, connecté en ssh par exemple.
Par exemple, une commande permettant de connaître les carnets d'adresses d'un utilisateur :
Bloc de code |
---|
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"} |
Obtenir de l'aide
Remarque |
---|
Les commandes sont enrichies au fur et à mesure des versions de BlueMind. Il se peut donc que vous ayez plus (ou moins) de commandes selon la version de votre installation. Il est donc important de se référer à la commande "bm-cli help" afin de savoir quelles sont celles que vous pouvez utiliser. Par exemple : Bloc de code |
---|
# bm-cli help
usage: bm-cli <command> [<args>]
The most commonly used bm-cli commands are:
calendar calendar task(s)
contact contact task(s)
help Display help information
maintenance maintenance task(s)
tick tick task(s)
user user task(s)
See 'bm-cli help <command>' for more information on a specific command. |
L'installation, ici en 3.5.11, bénéficie ici des commandes calendar, contact et user qui n'étaient pas présentes sur les versions antérieures. |
À tout moment vous pouvez obtenir de l'aide sur une commande, une sous-commande, son usage et ses options au moyen de "help".
Par exemple "help maintenance" vous présente la commande maintenance et ses diverses actions possibles : Bloc de code |
---|
# bm-cli help | maintenanceNAME
usage: bm-cli <command> [<args>]
The most commonly used bm-cli | maintenance-maintenancetask(s)
SYNOPSIS
bm-cli maintenancebm-climaintenanceconsolidateIndex[--workers <workers>]
bm-climaintenancelist[--workers <workers>]
Display help information
maintenance | bm-clirepair [--dry] [--workers <workers>]
COMMANDS
Withnoarguments,List directory entries
list
user task(s)
See 'bm-cli help <command>' for | Listdirectory entries
...information on a specific command. |
L'installation, ici en 3.5.11, bénéficie ici des commandes calendar, contact et user qui n'étaient pas présentes sur les versions antérieures. |
À tout moment vous pouvez obtenir de l'aide sur une commande, une sous-commande, son usage et ses options au moyen de "help".
Par exemple "help maintenance" vous présente la commande maintenance et ses diverses actions possibles Pour obtenir plus de détail sur une sous-commande, il vous suffit de taper la sous-commande à son tour, ici pour obtenir l'aide concernant l'opération de consolidation d'index :
Bloc de code |
---|
# bm-cli help maintenance consolidateIndex
NAME
bm-cli maintenance consolidateIndex - Consolidate a mailbox indexmaintenance task(s)
SYNOPSIS
bm-cli maintenance
bm-cli maintenance consolidateIndex [--workers <workers>]
[--] <target>
OPTIONS
bm-cli maintenance list [--workers <workers>]
bm-cli maintenance repair [--dry] [--workers <workers>]
COMMANDS
With no arguments, List run with X workers
... |
Exemples pratiques
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 en utilisant 4 threads :
Bloc de code |
---|
bm-cli maintenance repair domain.net --numworkers 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 :
Bloc de code |
---|
bm-cli user update admin0@global.virt --password "NewPassword" |
Mettre à jour la configuration tick
Lorsque l'outil de monitoring Bm-Tick est installé, il est possible d'effectuer des tâches d'administration sur celui-ci. Par exemple, vous pouvez redéployer la configuration sur l'ensemble des serveurs du domaine avec la commande suivante :
Bloc de code |
---|
# bm-cli tick reconfigure |
Astuce |
---|
L'option --dry permet de tester la commande : l'opération est juste simulée Bloc de code |
---|
# bm-cli tick reconfigure --dry |
|
Gestion des utilisateurs
Supprimer les utilisateurs archivés (suspendus) du domaine
Info |
---|
|
La commande "bm-cli user" sera disponible avec BlueMind 3.5.11. |
Les commandes peuvent être couplées afin d'effectuer plusieurs opérations en une seule fois.
directory entries
list
List directory entries
... |
Pour obtenir plus de détail sur une sous-commande, il vous suffit de taper la sous-commande à son tour, ici pour obtenir l'aide concernant l'opération de consolidation d'index :
Bloc de code |
---|
# bm-cli help maintenance consolidateIndex
NAME
bm-cli maintenance consolidateIndex - Consolidate a mailbox index
SYNOPSIS
bm-cli maintenance consolidateIndex [--workers <workers>] [--] <target>
OPTIONS
--workers <workers>
run with X workers
... |
Exemples pratiques
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 en utilisant 4 threads :
Bloc de code |
---|
bm-cli maintenance repair domain.net --numworkers 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 Par exemple, avec la commande ci-dessous on recherche les adresses emails des utilisateurs suspendus :
Bloc de code |
---|
bm-cli user getupdate domainadmin0@global.locvirt --archived --displaypassword "email" |
Il est alors possible de coupler le retour de cette commande avec une commande "delete" afin de supprimer les utilisateurs retournés :
Bloc de code |
---|
bm-cli user get domain.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
Pour cela, nous avons besoin de plusieurs commande qui seront ensuite regroupées en une seule :
Mettre à jour la configuration tick
Lorsque l'outil de monitoring Bm-Tick est installé, il est possible d'effectuer des tâches d'administration sur celui-ci. Par exemple, vous pouvez redéployer la configuration sur l'ensemble des serveurs du domaine avec la commande suivante :
Bloc de code |
---|
# bm-cli tick reconfigure |
Astuce |
---|
L'option --dry permet de tester la commande : l'opération est juste simulée Bloc de code |
---|
# bm-cli tick reconfigure --dry |
|
Gestion des utilisateurs
Supprimer les utilisateurs archivés (suspendus) du domaine
Info |
---|
|
La commande "bm-cli user" sera disponible avec BlueMind 3.5.11. |
Les commandes peuvent être couplées afin d'effectuer plusieurs opérations en une seule fois.
Par exemple, avec la commande ci-dessous on recherche les adresses emails des utilisateurs suspendus :
Bloc de code |
---|
Bloc de code |
---|
#récupérer la liste des utilisateurs avec leur quota :
bm-cli user get domain.loc --archived --display 'email quota'
#filtrer sur les utilisateurs ayant un quota null :
"email" |
Il est alors possible de coupler le retour de cette commande avec une commande "delete" afin de supprimer les utilisateurs retournés :
Bloc de code |
---|
bm-cli user get domain.loc --display '"email quota'" |grep null
#l'outil "jq" nous aidera ensuite à extraire l'email de chaque ligne retournée :
jq -r '.email'
#enfin, pour chaque ligne nous appliquerons la commande de mise à jour du quota (ici un quota de 80Mo) :
-r '.email' > /tmp/archived.txt
while read account; do bm-cli user updatedelete --quota "81920" $1 |
Ainsi, la commande finale pour réaliser cela en une seule ligne de commande :
dry $account ;done < /tmp/archived.txt |
Appliquer un quota à tous les utilisateurs qui n'en ont pas
Pour cela, nous avons besoin de plusieurs commande qui seront ensuite regroupées en une seule :
Bloc de code |
---|
#récupérer la liste des utilisateurs avec leur quota :
|
Bloc de code |
---|
bm-cli user get domain.loc --display 'email quota'
#filtrer |grep null|jq -r '.email'| xargs -n1 sur les utilisateurs ayant un quota null :
bm-cli user updateget domain.loc --display 'email quota' |grep null
#l'outil "81920" $1 |
Astuce |
---|
L'exécution n'émet pas de retour sur la console, or cela peut s'avérer long à s'exécuter ; il convient donc de patienter jusqu'à ce que le prompt rende la main.
Pour vérifier que tout se passe bien, on peut en premier lieu récupérer la liste des utilisateurs :
Bloc de code |
---|
bm-cli user get domain.loc --display 'email quota' |grep null |
Si celle-ci est importante, on peut rajouter l'option "-p4" afin d'exécuter la commande avec 4 threads en parallèle jq" nous aidera ensuite à extraire l'email de chaque ligne retournée :
jq -r '.email'
#enfin, pour chaque ligne nous appliquerons la commande de mise à jour du quota (ici un quota de 80Mo) :
bm-cli user update --quota "81920" $1 |
Ainsi, la commande finale pour réaliser cela en une seule ligne de commande :
Bloc de code |
---|
bm-cli user get domain.loc --display 'email quota' |grep null|jq -r '.email'| xargs -n1 bm-cli user update --quota "81920" $1 -p4Pendant l'attente, on peut ainsi vérifier dans la console d'administration l'onglet messagerie d'un utilisateur de temps en temps, en les prenant dans l'ordre de la liste : le nouveau quota est visible et effectif dès que la commande le concernant est passée. |
Opérations sur les calendriers
Partager les calendriers de tous les utilisateurs vers un utilisateur
Il peut s'avérer utile qu'un utilisateur ait des droits d'accès sur les calendriers de tous les autres utilisateurs sans pour autant qu'il soit désigné administrateur (par exemple une secrétaire devant pouvoir voir/créer des événements pour l'ensemble des collaborateurs). Afin d'éviter la tâche laborieuse de passer sur toutes les fiches d'administration des utilisateurs pour activer un partage, il est possible de réaliser cela en ligne de commande.
Cette opération n'est pas réalisable en une seule commande, néanmoins il est possible de réaliser une boucle récupérant l'ensemble des utilisateurs du domaine puis activant un partage pour chacun d'eux :
Bloc de code |
---|
bm-cli users get domain.net > /tmp/allUser.domain.net
while read account; do bm-cli calendar share $account « default » toto@domain.net r;done < /tmp/allUser.domain.net |
Exemple de procédure pour nettoyer le carnet des collectés d'un utilisateur puis transférer les contacts vers son carnet personnel (en testant au préalable l'import) :
Astuce |
---|
L'exécution n'émet pas de retour sur la console, or cela peut s'avérer long à s'exécuter ; il convient donc de patienter jusqu'à ce que le prompt rende la main. Pour vérifier que tout se passe bien, on peut en premier lieu récupérer la liste des utilisateurs : Bloc de code |
---|
bm-cli user get domain.loc --display 'email quota' |grep null |
Si celle-ci est importante, on peut rajouter l'option "-p4" afin d'exécuter la commande avec 4 threads en parallèle : Bloc de code |
---|
bm-cli user get domain.loc --display 'email quota' |grep null|jq -r '.email'| xargs -n1 bm-cli user update --quota "81920" $1 -p4 |
Pendant l'attente, on peut ainsi vérifier dans la console d'administration l'onglet messagerie d'un utilisateur de temps en temps, en les prenant dans l'ordre de la liste : le nouveau quota est visible et effectif dès que la commande le concernant est passée. |
Opérations sur les calendriers
Exporter l'ensemble des calendriers d'un utilisateur
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 utilisateurs :
Bloc de code |
---|
bm-cli calendar export --output-directory /home/user/export/cals user@domain.net #exporte tous les calendriers de l'utilisateur dans le dossier /home/user/export/cals |
NB : cette commande est disponible à partir de BlueMind 3.5.13
On pourra ensuite les réimporter soit individuellement, soit en créant une boucle plus complexe sur les calendriers d'un autre utilisateur et le dossier d'export grâce à la commande d'import suivante :
Bloc de code |
---|
bm-cli calendar import user@domain.net --calendarUid calendar:Default:A1B2C3D4E5F6Z --ics-file-path /tmp/user_default.ics --dry #importe les événements du fichier user_default.ics dans le calendrier par défaut de user@domain.net |
Exporter les calendriers de tous les utilisateurs
Dans une optique de migration ou de sauvegarde, on souhaite exporter et sauvegarder tous les calendriers de tous les utilisateurs au format ICS.
Cette opération n'est pas réalisable en une seule commande, néanmoins il est possible de réaliser une boucle récupérant l'ensemble des utilisateurs du domaine puis en lançant l'export de leurs calendriers (voir ci-dessus) :
Bloc de code |
---|
bm-cli user get domain.net --display 'email' |grep -v null|jq -r '.email' > /tmp/allUser.domain.net
while read account; do bm-cli calendar export --output-directory /tmp/export/cals $account;done < /tmp/allUser.domain.net |
Exemple de procédure pour nettoyer le carnet des collectés d'un utilisateur puis transférer les contacts vers son carnet personnel (en testant au préalable l'import) :
Bloc de code |
---|
root@mail:~# bm-cli contact list jdoe@bluemind.loc
{"owner":"05E25C2C-3643-4ED2-997C-4A4F39933D18","uid":"book:Contacts |
Bloc de code |
---|
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 ","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 of jdoe@bluemind.loc was imported","name":"Perso"}
root@mail:~# bm-cli contact importdeduplicate jdoe@bluemind.loc --vcfaddressbook-file-path /tmp/jdoe-collected.vcf --addressbook-uid 408C741B-3FDC-44B6-B1FD-19E79404BFCF
AddressBook 408C741B-3FDC-44B6-B1FD-19E79404BFCF of jdoe@bluemind.loc was importeduid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
2 were removed out of 35
root@mail:~# bm-cli contact resetexport jdoe@bluemind.loc --vcf-file-path /tmp/jdoe-collected.vcf --addressbook-uid book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18
Addressbookaddressbook book:CollectedContacts_05E25C2C-3643-4ED2-997C-4A4F39933D18 of jdoe@bluemind.loc was reset |