Главная страница Новости кинофильмов Игровые новости Новости спорта Новости технологий Автомобильные новости

Анонсируем Mecano, набор функций для развертывания системы

Новости

Обновление от июля 2016 года, Mecano теперь переименован в Nikita.

Мы выпускаем Node Mecano на GitHub, в котором собраны общие функции, используемые при развертывании систем. Идея заключалась в том, чтобы объединить эти функции в единую библиотеку.

Код был запущен, когда мы писали Heco, а также когда мы развернули кластер Hadoop для одного из наших клиентов. Источником вдохновения для этого послужил API Chef Resource.

Функциональные возможности по-прежнему ограничены, и, очевидно, есть много потенциальных улучшений, но мы хотели выпустить код как можно раньше. Мы уже убедились, что он очень полезен, и API должен быть достаточно стабильным, чтобы интегрировать его в ваш собственный проект.

В Mecano предусмотрены следующие функции: копирование, загрузка, выполнение, извлечение, git, ln, mkdir, удаление и рендеринг. Их API всегда одинаков. Первый аргумент определяет одну или несколько команд для запуска (объект или массив объектов), а второй — это обратный вызов, вызываемый по завершении, который сообщает вам, сколько общих команд действительно выполняется. Например, чтобы скопировать 2 файла, код будет выглядеть следующим образом:

mecano = требуется(‘mecano’); mecano.copy([ { источник: ‘file_1’, пункт назначения: ‘dest_1’ }, { источник: ‘file_2’, пункт назначения: ‘dest_2’ } ], (ошибка, скопировано) -> console.log( ‘Номер скопированного файла: ‘+скопировано );

Вызовите ту же команду во второй раз, и значение copyed будет равно “0”, поскольку новый файл не был скопирован.

У команды есть набор общих свойств для условного запуска команды и проверки ее результата. Например, следующая команда будет выполнена только в том случае, если указанный файл существует, и выдаст ошибку, если код завершения не соответствует указанному.

mecano = требуется(‘mecano’); mecano.execute({ команда: ‘whoami’, if_exists: ‘/home/itsme’, //код условия: 0 //код завершения по умолчанию }, (ошибка, выполнено) -> console.log( ‘Выполнено ли команда «выполнить»+(выполнена?»да»: «нет»));

Надеюсь, вы тоже найдете ее полезной и, не стесняйтесь, оставляйте нам свои отзывы.


Другие новости: