Zimbra: Creation d’utilisateurs via SOAP

Cela faisait longtemps une éternité que je n’avais pas écrit un billet.
Je profite d’avoir enfin un peu de temps pour le faire.

J’était tombé sur l’article de Jorge permettant de créer des comptes de démonstration sur Zimbra en utilisant un script.
Hormis le fait que Zimbra propose déjà cette option par défaut :

zmprov createBulkAccounts(cabulk) {domain} {namemask} {number of accounts to create}

le fait de passer par un fichier intermédiaire et de devoir modifier le script pour l’adapter rend la solution, a mon sens, pénible.

Vous aller me dire, que la commande fourni par Zimbra fait le job, oui mais celle-ci doit être exécuté depuis le serveur Zimbra.
Pour pallier a ça j’ai crée un script permettant d’effectuer la même manipulation, mais depuis n’importe quel ordinateur ayant curl d’installé et surtout en utilisant SOAP, donc pas besoin de charger des variables d’environnement de l’utilisateur Zimbra..

Du coup en terme de performance ça donne ça :

Zimbra command (exécuté depuis le serveur Zimbra)

time zmprov createBulkAccounts domain.tld test 50
3c832f41-8f94-4b2f-b989-7ef40156f2f4
...
20a09f7a-172c-4ac0-9df0-f568444ecfe4
51ff0d62-54d0-4bcd-8cd1-22db50bbbe41

real    0m6.256s
user    0m5.296s
sys     0m0.126s

Jorge script (exécuté depuis le serveur Zimbra)

time zmprov -f /tmp/userlist.zmp
prov> b83aef83-98e2-470f-957e-7e144bc9c4da
...
prov> a93cb901-ce8a-4351-8a53-b39772797068
prov>
real    0m6.259s
user    0m5.529s
sys     0m0.188s

Soap Script (exécuté depuis le serveur Zimbra)

time zimbra_soap_demo_account.sh -a zimbra_admin -s zimbra_url -u test -d domain.tld -c 50
Enter Zimbra Admin Password
Creating Account test0@domain.tld
Creating Account test1@domain.tld
...
Creating Account test49@domain.tld

real    0m4.804s
user    0m0.492s
sys     0m0.090s

\o/ 2 secondes de gagné sur 50 comptes

Le gros avantage c’est que c’est transportable et vous pouvez créer vos comptes depuis n’importe où 🙂
Un exemple depuis mon poste via une ligne adsl qui mériterai d’être upgradé (4 Mb/s) :

time zimbra_soap_demo_account.sh -a zimbra_admin -s zimbra_url-u test -d domain.tld -c 50
Enter Zimbra Admin Password
Creating Account test0@domain.tld
Creating Account test1@domain.tld
...
Creating Account test49@domain.tld
real 21.799
user 1.43s 
system 0.75s 

Il faut prendre en compte aussi le temps de taper son mot de passe 😉
Vous trouverez le script sur mon github.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.