読了: 約 3 分

アプリケーションを作っている時にダミーユーザーやダミー投稿を作るのが面倒ですよね。
rubyを使っているプロジェクトであればそういうのを簡単に生成出来るrakeというツール・コマンドがあります。
現在やっているプロジェクトでrakeを使うのでrakeとは何ぞや、rake使ってこんな事も出来るのかという事を備忘録として書いておきます。
rake taskでdummy userを作成する時のコマンドとrbファイルをメモしておきます。

Rakeとは

公式サイト

rakeのインストール

gem install rake

rakeには次のような機能がある
・Rakefileはmakefileのrakeバージョン。標準のrubyの書き方でコードを記述できる。
・ユーザーは、前提条件とタスクを指定することができる。暗黙的なタスクを合成するルールパターンをサポートしています。

細かい解説

ruby形式でタスクを書いて、それをコマンドで実行出来るという代物ということです。

rubyのコード

deploy時に実行されるrb


require 'bundler/capistrano'

namespace :db do
  desc 'Prepare dummy users'
  //実行対象のサーバに「roles」を設定し、特定のrolesに所属する複数のサーバ全てに対して処理を実行する
  task :make_dummy_user,:roles => :db, :only => { :primary => true } do
    nickname = Capistrano::CLI.ui.ask("user nickname")
    run "cd #{latest_release} && rake RAILS_ENV=#{rails_env} 'db:user_with_backdated_posts_and_views[#{nickname}]'"
  end
end

descはtaskの名前です。
Capistranoについてはこちらの記事が詳細に説明してくれています。
私たちのプロジェクトでは、jenkinsでビルド実行を押した際に、Capistranoが実行されるという仕組みになっているようです。

下記の記事一部抜粋

Capistranoを使って必要な運用作業をスクリプト化し、一回の実行で全サーバを対象に作業する、といったことを行っています。

Capistrano

Capistranoインストール

Capistranoはrubyが必須です。

gem install capistrano

コマンド

下記コマンドで引数に使ってるアプリケーションのnicknameを記述するとそのユーザーのpostを生成

rake db:user_with_backdated_posts_and_views[nickname]

無事こんな感じでユーザーのポストが生成されました。
スクリーンショット 2013-11-13 16.09.46

// rakeの設定を確認
rake -T

まとまらない

簡単な使い方と説明を書きましたが、アプリケーションの開発でデバックするのを簡単にするインフラ的な部分であるところもう少し掘り下げて書いていきたいと思います。
インフラの自動化に使えるツールはCapistranoだけでなく、今話題のChefもあるので勉強していきます。