Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

公開日: : 最終更新日:2015/10/17 プログラム , ,

タイトルの通りだが、Vagrant を使って起動した CentOS に Octopress をインストールして、ホスト OS から確認する方法を試したのでメモしておく。

icatch-2015-004-1

目次

1. ソフトウェアのバージョン

主なソフトウェアのバージョンは以下の通り。

【ホスト OS】

  • OS: OS X Yosemite 10.10.5
  • VirtualBox: 5.0.0
  • Vagrant: 1.7.4
  • Box ファイル:
    • http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

Box ファイルのダウンロードは以下のコマンドで行う。

$ vagrant box add centos6.4_64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

【ゲスト OS】

  • OS: CentOS 6.4(64ビット)
  • rbenv: 0.4.0
  • Ruby: 2.2.2
  • Octopress: 3.0

2. 前提

  • 上記の Box ファイルを使って VirtualBox 上に仮想環境(CentOS 6.4)が構築されていること
  • CentOS に rbenv を使って Ruby がインストールされていること

3. Vagrant の設定(ホスト OS)

ゲスト OS 上に起動する Octopress はデフォルトの 4000 ポートで動かす。
ゲスト OS に IP アドレスを割り当て、ホスト OS の 4000 ポートアクセスをゲスト OS に流すように設定する。

以下は Vagrantfile の内容(コメントアウトしている行は省略)。

Vagrant.configure(2) do |config|
  config.vm.box = "centos6.4_64"
  config.vm.network "forwarded_port", guest: 4000, host: 4000
  config.vm.network "private_network", ip: "192.168.33.10"
end

4. iptable の設定(ゲスト OS)

Octopress はデフォルトの 4000 ポートで動かす。
ホスト OS から 4000 でアクセスできるように iptable に設定を追加する。

以下を /etc/sysconfig/iptables に追加する。

-A INPUT -p tcp -m tcp --dport 4000 -j ACCEPT

追加したらデーモンを再起動して有効にする。

$ sudo /etc/init.d/iptables restart

5. Octopress のインストールと設定(ゲスト OS)

ゲスト OS に Octopress をインストールする。
本来ならば /usr/local や /opt などが適切なのだろうが、検証なので /home/vagrant にインストールする。

手順は以下の通り。

  1. Octopress のソースコードを clone する
  2. Octopress が参照する依存ライブラリのインストール
  3. ホスト OS から確認するための設定追加
  4. Octopress の起動

5-1. Octopress のソースコードを clone する

ソースコードを Github から clone する。
ホームディレクトリに移動し、次のコマンドを実行する。

$ git clone git://github.com/imathis/octopress.git octopress
$ cd !$  ## octopress ディレクトリに移動

5-2. Octopress が参照する依存ライブラリのインストール

依存ライブラリのインストールには Bundler を使うので gem を使ってインストールする。

$ gem install bundler
$ rbenv rehash

rake preview を実行すると Octopress の出力が確認できるのだが、therubyracer というライブラリがインストールされていないとエラーになる。
なので、他の依存ライブラリと一緒にインストールしてしまう。

Gemfile に追記する。

source "https://rubygems.org"

group :development do
  gem 'rake', '~> 10.0'
  gem 'jekyll', '~> 2.0'
  gem 'octopress-hooks', '~> 2.2'
  gem 'octopress-date-format', '~> 2.0'
  gem 'jekyll-sitemap'
  gem 'rdiscount', '~> 2.0'
  gem 'RedCloth', '~> 4.2.9'
  gem 'haml', '~> 4.0'
  gem 'compass', '~> 1.0.1'
  gem 'sass-globbing', '~> 1.0.0'
  gem 'rb-fsevent', '~> 0.9'
  gem 'stringex', '~> 1.4.0'
  gem 'therubyracer'
end

gem 'sinatra', '~> 1.4.2'

Bundler を使って依存ライブラリをインストールする。

$ bundle install

5-3. ホスト OS から確認するための設定追加

Rakefile に IP アドレスの設定を追加しないとホスト OS から参照できなかった。
原因は他にあるのかもしれないが、ひとまず以下の設定を行う。

server_post の下に listen_host を以下のように追加する。

server_port     = "4000"      # port for preview server eg. localhost:4000
listen_host     = "0.0.0.0"

rackupPid を次のように変更する。

  # rackupPid = Process.spawn("rackup --port #{server_port}")
    rackupPid = Process.spawn("rackup --port #{server_port} --host #{listen_host}")

5-4. Octopress の起動

rake install を実行してデフォルトのテーマを作成する。

$ rake install

rake preview を実行して Octopress の起動を確認する。

$ rake preview

6. ホスト OS からの確認(ホスト OS)

ホスト OS のブラウザから以下のアドレスにアクセスして画面が表示されることを確認する。

  • http://localhost:4000/

7. 更新履歴

  • 2015/10/14: 初版作成
  • 2015/10/17: 文言を修正

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch-vagrant_box_customize

VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を構築することが多くなってきた。

記事を読む

no image

GoogleGuavaのRangeを使って範囲判定を簡潔に書く

次のような判定処理を if 文で書くことがよくある。 もし 100 よりも大きければ(=大小判定

記事を読む

no image

CVS でタグ間で変更があったファイルを抽出するスクリプト

今どきバージョン管理ツールに CVS を使っているところは珍しいと思うし、あまり需要はないだろうけど

記事を読む

icatch-thumbup_3507728739_mini-thumbnail

Sublime Text3 に SublimeLinter-jshint をインストールしてみた

エディタに Eclipse を使って Java のプログラムを書くことが多いんですが、JavaScr

記事を読む

icatch-2015-005-1

ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。 正常系テストの場合: 正

記事を読む

icatch_8617990318-resized

yum が参照するミラーサイトの baseurl を変更して日本国内のものに設定する

yum が参照するリポジトリのミラーサイトは変更することができます。 このミラーサイトを日本国内のも

記事を読む

20140811-00

64ビット版のCentOSをVMwareにインストールできない場合の対処法

Linux で検証したい作業が多かったので VMware に検証環境を作りました。OS は Cent

記事を読む

icatch-8785445626_587fdac14d_z-resized

検証用の CentOS をインストールした直後に行う初期設定手順

職場でも自宅でも Linux で検証したい作業があったので VMware に 64 ビット版の Ce

記事を読む

icatch-8442052993_2978189f52_z-resized

参照可能な yum リポジトリを確認する yum コマンドとワンライナー

あるパッケージをインストールするために配布リポジトリの設定を追加することがあります。 ビジネスユー

記事を読む

icatch_5623339500-resized

Bundler を使ってプロジェクト用の Gem をインストールして Gemfile をバージョン管理ツールに登録するまでの流れ

Bundler を使い始める人向けにまとめた次の記事を書きました。 CentOSにRubyのBu

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


+ 四 = 6

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑