Rake vs. Thor для сценариев автоматизации? - PullRequest
45 голосов
/ 19 августа 2010

Я хочу автоматизировать такие вещи, как:

  • Создание нового приложения Ruby on Rails с предварительно выбранной базой данных, Git, его инициализация, создание проекта Heroku , фиксация всех файлов и т. Д.
  • Загружайте все файлы в папке на другой компьютер через SSH, но не перезаписывайте файлы.
  • Обновите Ubuntu, установите все основные пакеты через apt-get.

Из того, что я понимаю, инструментами для этого являются Рейк и Тор, однако, какой из них мне следует использовать?

Рейк мне кажется более фактическим и популярным. Я слышал, как люди рекомендуют Тора.

Как они соотносятся друг с другом в кратком изложении?

Ответы [ 4 ]

98 голосов
/ 20 августа 2010

Грабли и Тор служат разным целям.

Rake - это общий инструмент для создания сценариев, который зависит от проекта.Другими словами, вы помещаете свой rakefile в папку вашего проекта и в систему управления исходным кодом вашего проекта, и вы можете создавать, создавать и выполнять другие задачи автоматизации, которые характерны для вашего проекта в этом rakefile.Rake требует для запуска rakefile.

Thor - это инструмент создания сценариев командной строки общего назначения, который позволяет очень легко повторно использовать сценарии во многих проектах, а также выполнять настройку проекта и т. Д., Как вы предлагаете.Thor позволяет вам «установить» исполняемый скрипт, который вы можете вызвать из любой точки вашей системы, аналогично вызову команд «ruby», «gem» или «rake».Однако сценарии Thor больше подходят для универсальной автоматизации приложений, поскольку сценарий Thor не зависит от файла, который находится в папке вашего проекта.Скрипт Thor - это весь скрипт, упакованный и установленный для повторного использования в любом месте.

Исходя из ваших заявленных потребностей, вам лучше использовать Thor, потому что вы сможете установить свой скрипт в одном месте и иметь егоработать в любом месте вашей системы.Вы не будете привязаны к тому, где находится файл Rake или что-то в этом роде.

Кстати, Rails 3 использует Thor практически для всего, что не относится к конкретному проекту.У вас все еще есть файл Rake, и вы по-прежнему запускаете такие вещи, как "rake db:migrate" или "rake test:units".Thor используется для таких вещей, как "rails new ...", "rails server" и "rails generate ...". Использование Thor и Rake в Rails 3 является прекрасной иллюстрацией того, где лучше всего подходит каждый из этих инструментов.

13 голосов
/ 14 апреля 2011

Для настройки работы по Ubuntu лучше подойдет Chef.

С их веб-сайта:

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

Он написан на Ruby, и есть множество рецептов / поваренных книг от шеф-повара. Chef будет заниматься настройкой Ubuntu и установкой пакетов, серверов и т. Д.

Я не знаю, работаете ли вы с виртуальными машинами, но Vagrant настроит виртуальную машину и затем использует Chef для ее настройки.

0 голосов
/ 08 сентября 2013

Здесь нужно упомянуть кое-что важное.

http://guides.rubyonrails.org/generators.html в разделе 8 Шаблоны приложений.

Вы можете выполнять команды git, выбирать гемы, создавать проекты.

И вы также можете выполнять системные команды, чтобы удовлетворить ваш последний пункт: Upgrade Ubuntu, install all basic packages through apt-get.

0 голосов
/ 04 сентября 2012

Я бы пошел с марионеткой .

Кстати, может быть vagrant тебе пригодится?

...