Lancement de Mecano, fonctions pour le déploiement de systèmes

Lancement de Mecano, fonctions pour le déploiement de systèmes

By WORMS David

12 févr. 2012

Mis à jour en juillet 2016, Mecano est désormais renommé Nikita.

Nous publions Node Mecano sur GitHub, qui regroupent des fonctions communes utilisées lors du déploiement de systèmes. L’idée était de regrouper ces fonctions dans une bibliothèque complète.

Le code a commencé lorsque nous avons écrit Heco et lorsque nous avons déployé un cluster Hadoop pour l’un de nos clients il y a maintenant 1 an. Il a trouvé l’inspiration dans API de ressources Chef.

Les fonctionnalités sont encore limitées et il y a évidemment de nombreuses améliorations potentielles, mais nous voulions publier le code aussi tôt que possible. Nous l’avons trouvé très utile et l’API doit être suffisamment stable pour l’intégrer dans votre propre projet.

Les fonctions couvertes par Mecano sont copy,download, execute,extract, git,ln, mkdir,remove et render. Leur API est toujours la même. Le premier argument définit une ou plusieurs commandes à exécuter (un objet ou un tableau d’objets) et le second est un callback appelé à la fin, qui vous indique le nombre de commandes communes exécutées. Par exemple, pour copier 2 fichiers, le code ressemblera à ceci :

mecano = require ('mecano');
mecano.copy ([
    {source: 'fichier_1', destination: 'dest_1'},
    {source: 'fichier_2', destination: 'dest_2'}
], (err, copié) ->
    console.log ('Nombre de fichiers copiés:' + copiés);

Si vous appelez la même commande une deuxième fois, la valeur de copied sera 0 car aucun nouveau fichier n’a été copié.

Les options partagent un ensemble de propriétés communes pour exécuter la commande de manière conditionnelle et valider son résultat. Par exemple, la commande suivante ne sera exécutée que si un fichier spécifié existe et émettra une erreur si le code de sortie n’est pas celui fourni.

mecano = require ('mecano');
mecano.execute ({
    cmd: 'whoami',
    if_exists: '/ home / itsme', // condition
    code: 0 // code de sortie par défaut
}, (err, exécuté) ->
    console.log ('La commande a-t-elle été exécutée' + (exécuté? 'oui': 'non'));

J’espère que vous le trouverez également utile et n’hésitez pas à nous faire part de vos commentaires.

Canada - Morocco - France

International locations

10 rue de la Kasbah
2393 Rabbat
Canada

Nous sommes une équipe passionnées par l'Open Source, le Big Data et les technologies associées telles que le Cloud, le Data Engineering, la Data Sciencem le DevOps…

Nous fournissons à nos clients un savoir faire reconnu sur la manière d'utiliser les technologies pour convertir leurs cas d'usage en projets exploités en production, sur la façon de réduire les coûts et d'accélérer les livraisons de nouvelles fonctionnalités.

Si vous appréciez la qualité de nos publications, nous vous invitons à nous contacter en vue de coopérer ensemble.