Fulcrumのcookbookを作成

FulcrumPivotal Trackerのクローンを目標にしているプロジェクトです。

Pivotal Trackerに似ているツールFulcrum: プログラマの思索

malclocke/fulcrumのインストール方法を参考にcookbookを作りました。
さらにそれを使って、Vagrantとchef-soloでCentOS6.4(x86_64)上で動かしてみました。

1. 条件

  • Fulcrumの依存パッケージ(Qt 4.8)をインストールするためにゲストOSはCentOS 6.4の64bitのみ
  • FulcrumはRuby on Rails製で、今回使用するRubyはbox内にすでにある/opt/chef/embedded/binにあるruby(1.9.3p286)です。
  • 検証用として作成したので、実行時の環境(RAILS_ENV)はdevelopmentでDBはSQLiteを使い、実体はdb/development.sqlite3となります。

2. 必要なもの

  • VirtualBoxとVagrantとchef-solo,knife-solo一式
    入門Chef Solo – Infrastructure as Codeなどを参考に
  • Berkshell
    RubyGemsのbundlerのようなもの
    cookbookを作成するに当り、yum cookbookが必要だったので、依存管理のため

3. ファイルの構成

chef-repo/ - cookbook置き場(A)
    Berksfile
    cookbooks/
    data_bags/
    nodes/
    roles/
    site-cookbooks/
fulcrum/ - ゲストOS(B)
    Vagrantfile

chef-repo(A)はknife soloを使用して

knife solo init chef-repo

としたときのもの

fulcrum(B)は
ディレクトリを作成(mkdir fulcrum)して、

vagrant init

とした状態

4. cookbookの作成

  1. (A)に移動
    cd chef-repo
    
  2. Berksfileを編集して
    cookbook 'yum'
    

    を追記。新規作成する場合は

    site :opscode
    cookbook 'yum'
    
  3. Berkshellを使って依存cookbookをダウンロード
    berks install --path cookbooks
    
  4. Fulcrum用cookbookを新規作成
    knife cookbook create chef-fulcrum -o site-cookbooks
    
  5. metadata.rbを編集して依存cookbookを列挙する
    cd site-cookbooks/chef-fulcrum
    
    depends 'yum'
    
  6. recipes/default.rbを編集
    長いのでこちら

5. Vagrantを使ってゲストOSを起動する

  1. (B)に移動
    cd ../../../fulcrum
    
  2. Vagrantfileを編集
    # Centos 6.4 64bit版のbox
    config.vm.box = "CentOS-6.4-x86_64-ja"
    config.vm.box_url = "https://dl.dropboxusercontent.com/u/428597/vagrant_boxes/CentOS-6.4-x86_64-ja.box"
    
    # ホストOSからアクセスするためにIPをセット(IPは各々の環境に応じて変更する)
    config.vm.network :private_network, ip: "192.168.33.105"
    
    # chef soloのprovitionを有効にして、cookbookのパスを設定、run_listにfulcrum cookbookを設定
    config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["../chef-repo/cookbooks", "../chef-repo/site-cookbooks"]
    chef.roles_path = "../chef-repo/roles"
    chef.data_bags_path = "../chef-repo/data_bags"
    
    chef.run_list = [
        "recipe[chef-fulcrum]"
    ]
    end
    
  3. ゲストOS起動
    vagrant up
    
  4. upし終わったら、http://192.168.33.105:3000でアクセス
    ユーザID:test@example.com、パスワード:testpassでログイン
ユーザID:test@example.com、パスワード:testpassでログイン

ユーザID:test@example.com、パスワード:testpassでログイン

Fulcrumログイン後の画面

Fulcrumログイン後の画面

サンプルプロジェクトの中身

サンプルプロジェクトの中身

6. 作成したcookbookをgithubにUPしました。

mistymagich/chef-fulcrum

6.1 使用方法

  1. 3.の状態で(A)に移動し、Berksfileを編集
    site :opscode
    
    cookbook 'chef-fulcrum', git: 'https://github.com/mistymagich/chef-fulcrum.git'
    
  2. Berkshellを使ってcookbookをダウンロード
    berks install --path cookbooks
    
  3. あとは4. は不要で、5. の手順でvagrant up

boxのダウンロード後、ゲストOS起動からURLでアクセスできるようになるまで、Vagrant起動時の表示では794sec(約13分)、実際には19分程度かかりました。(ホストOS WindowsXP / CPU Core2 Quad Q9550 / Memory 3.5GB)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中