LoginSignup
3
4

More than 5 years have passed since last update.

Vagrant | Vagrant + Itamae で middleman 環境を構築し、 Vagrant Share で Vagrant Could に公開する #vagrant

Posted at

Vagrant | Vagrant + Itamae で middleman 環境を構築し、 Vagrant Share で Vagrant Could に公開する #vagrant #itamae #middleman

概要

Vagrant + Itamae で middleman 環境を構築し、 Vagrant Share で Vagrant Could に公開します。

  • Itamae: 国産プロビジョニングツール。Chef の軽量版のような立ち位置。
  • middleman: Ruby の 静的サイト構築フレームワーク

前提

  • Vagrant Cloud にユーザー登録しておきます
  • Vagrant / Itamae インストール済み

手順

作業用ディレクトリ + Vagrantfile ひな型生成

$ mkdir middleman
$ cd middleman
$ vagrant init -m
$ vi Vagrantfile

Vagrantfile 編集

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define "middleman" do |web|
    web.vm.provider :virtualbox do |vb|
      vb.name = "middleman"
    end
    web.vm.hostname = "middleman"
    web.vm.box = "hashicorp/precise64"
    # middleman のデフォルトポートは 4567
    config.vm.network :forwarded_port, guest: 4567, host: 4567
  end
end

Gemfile 編集

  • rutan さんの itamae-plugin-recipe-rtn_rbenv で rbenv + ruby 環境を構築
source "https://rubygems.org"

gem 'itamae-plugin-recipe-rtn_rbenv'

node.js の作成・編集

{
    "rtn_rbenv": {
        "user": "vagrant",
        "versions": {
            "2.1.2": [
                {
                    "name": "bundler",
                    "version": "1.7.3",
                    "force": true
                },
                "middleman"
            ]
        },
        "global": "2.1.2"
    }
}

middleman.rb

Itamae のレシピを作成

execute "apt-get update" do
  command "sudo apt-get update"
end
package "make" do
  action :install
end
include_recipe 'rtn_rbenv::user'

仮想環境起動

$ vagrant up

Itamae プロビジョニング

$ vagrant ssh-config --host middleman
$ bundle exec itamae ssh --vagrant -h middleman --node-json node.json middleman.rb
# 各種ログ

# インストール内容の確認
$ vagrant ssh
vagrant@middleman:~$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
vagrant@middleman:~$ middleman v
Middleman 3.3.7

middleman でサイトテンプレート生成

$ middleman init itamae_middleman

middleman 起動

$ cd itamae_middleman

$ vi Gemfile
# middleman-livereload をコメントアウト
$ bundle installs

# ここから
$ sudo apt-get install build-essential gcc g++ -y
$ gem install ejs
$ gem install eco
$ sudo apt-get install nodejs
# ここまで試行錯誤しながらだったので不要なものがあるかも

$ middleman server

middleman ローカル確認

middleman.png

vagrant share

$ vagrant login
# user, pass を入力
$ vagrant share
$ vagrant login --logout

share 実行時に表示された URL にアクセス

middleman.png

補足

  • Firewall の設定によって、 vagrant share が失敗するケースがある

参照

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4