耙与自动化脚本托尔?

我想自动化的东西,如:

  • 使用预先选定的数据库创build一个新的Ruby on Rails应用程序,Git初始化它,创build一个Heroku项目,提交所有文件等。
  • 通过SSH上传文件夹中的所有文件到另一台计算机,但不要覆盖文件。
  • 升级Ubuntu,通过apt-get安装所有的基本软件包。

据我所知,这个工具是Rake和Thor,但是,我应该使用哪一个呢?

耙子在我看来更像事实上和stream行。 我听到有人推荐雷神。

这些如何在一个破败的对方站在一起?

耙子和托尔服务不同的目的。

Rake是一个特定于项目的通用构build脚本工具。 换句话说,您将rakefile放入项目文件夹和项目的源代码pipe理中,您可以在rakefile中创build,编译和执行特定于您的项目的其他自动化任务。 Rake需要一个rakefile来运行。

Thor是一个通用的命令行脚本工具,它使得在许多项目中重复使用脚本以及执行项目设置等都变得非常简单,就像你所build议的一样。 Thor允许你“安装”一个可执行的脚本,你可以在系统的任何地方调用,类似于调用“ ruby ”,“ gem ”或“ rake ”命令行。 但是,Thor的脚本更适合于通用的跨应用程序自动化,因为Thor脚本不依赖于位于项目特定文件夹中的文件。 一个Thor脚本是整个脚本,打包并安装在任何地方重新使用。

根据您的需求,您最好使用Thor,因为您可以将脚本安装在一个位置,并可以在系统的任何位置使用。 你不会被绑定到Rake文件的位置或类似的地方。

顺便说一下,R​​ails 3使用Thor几乎所有不是项目特定的东西。 你还有一个Rake文件,你仍然可以运行诸如“ rake db:migrate ”或“ rake test:units ”之类的东西。 Thor用于“ rails new ... ”,“ rails server ”和“ rails generate ... ”之类的东西。在Rails 3中使用Thor和Rake是每个工具最适合的地方的完美例证。

为了设置Ubuntu的杂事,厨师可能是一个更好的select。

从他们的网站:

Chef是一个开源的系统集成框架,旨在将服务器configurationpipe理的优势带入整个基础架构。

这是用Ruby写的,有大量的厨师食谱/食谱。 厨师将负责设置Ubuntu并安装软件包,服务器等。

我不知道你是否在使用虚拟机,但是Vagrant会设置一个虚拟机,然后使用Chef来configuration它。

我会傀儡去。

顺便说一下,也许stream浪对你有用?

这里要提到一些重要的东西。

http://guides.rubyonrails.org/generators.html第8节应用模板。;

你可以执行git命令,selectgems,capify项目。

你也可以执行系统命令来满足你的最后一点: Upgrade Ubuntu, install all basic packages through apt-get