web-dev-qa-db-ja.com

自動化スクリプトのRakevs。Thor?

次のようなものを自動化したい:

  • 新しいRuby on Railsアプリケーションを事前に選択したデータベースで作成し、Gitで初期化し、 Herok プロジェクトを作成し、すべてのファイルをコミットします、など。
  • フォルダー内のすべてのファイルをSSH経由で別のコンピューターにアップロードしますが、ファイルを上書きしないでください。
  • Ubuntuをアップグレードし、apt-getを使用してすべての基本パッケージをインストールします。

私の理解では、このためのツールはRakeとThorですが、どちらを使用すればよいですか?

レーキは私にはもっと事実上人気があるようです。トールを勧める人がいると聞きました。

ランダウンでこれらはどのように互いに立っていますか?

48

レーキとトールは異なる目的を果たします。

Rakeは、プロジェクト固有の一般的なビルドスクリプトツールです。つまり、rakefileをプロジェクトフォルダーとプロジェクトのソース管理に配置し、そのrakefileでプロジェクトに固有の他の自動化タスクを作成、構築、および実行できます。 Rakeを実行するには、rakefileが必要です。

Thorは汎用のコマンドラインスクリプトツールであり、多くのプロジェクトでスクリプトを再利用したり、プロジェクトのセットアップなどを簡単に実行したりできます。 Thorを使用すると、「Ruby」、「gem」、「rake」コマンドを呼び出すのと同じように、システムのどこからでも呼び出すことができる実行可能スクリプトを「インストール」できます。行。ただし、Thorスクリプトはプロジェクト固有のフォルダーにあるファイルに依存しないため、Thorのスクリプトは汎用のクロスアプリケーション自動化に適しています。 Thorスクリプトはスクリプト全体であり、どこでも再利用できるようにパックおよびインストールされています。

表明されたニーズに基づいて、スクリプトを1つの場所にインストールし、システムのどこでも機能させることができるため、Thorを使用することをお勧めします。 Rakeファイルが置かれている場所などに縛られることはありません。

ちなみに、Rails 3は、プロジェクト固有ではないほとんどすべてにThorを使用します。まだRakeファイルがあり、「rake db:migrate "または" rake test:units "。トールは" Rails new ... "、" Rails server "および" Rails generate ... "Thor AND Rake in Rails 3は、これらの各ツールが最適な場所を示す完璧な例です。

98
Derick Bailey

Ubuntuの雑用を設定するには、Chefの方が適している可能性があります。

彼らのウェブサイトから:

Chefは、インフラストラクチャ全体にサーバー構成管理の利点をもたらすために構築された、オープンソースのシステム統合フレームワークです。

Rubyで書かれており、Chefのレシピ/クックブックがたくさんあります。ChefがUbuntuのセットアップとパッケージ、サーバーなどのインストールを処理します。

仮想マシンを使用しているかどうかはわかりませんが、Vagrantが仮想マシンをセットアップし、Chefを使用して仮想マシンを構成します。

13
Tom Corbin

ここで言及すべき重要なことがあります。

http://guides.rubyonrails.org/generators.html そのセクション8アプリケーションテンプレート。

Gitコマンドを実行したり、gemを選択したり、プロジェクトをcapifyしたりできます。

また、最後のポイントを満たすためにシステムコマンドを実行することもできます:Upgrade Ubuntu, install all basic packages through apt-get

0
juanpastas

puppet と一緒に行きます。

ちなみに、多分 vagrant はあなたに役立ちますか?

0
czerasz