読了: 約 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はrubyが必須です。
gem install capistrano
コマンド
下記コマンドで引数に使ってるアプリケーションのnicknameを記述するとそのユーザーのpostを生成
rake db:user_with_backdated_posts_and_views[nickname]
無事こんな感じでユーザーのポストが生成されました。
// rakeの設定を確認 rake -T
まとまらない
簡単な使い方と説明を書きましたが、アプリケーションの開発でデバックするのを簡単にするインフラ的な部分であるところもう少し掘り下げて書いていきたいと思います。
インフラの自動化に使えるツールはCapistranoだけでなく、今話題のChefもあるので勉強していきます。