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_5428744075-resized

scp を使ってファイルのコピーを実行したら “command not found” と表示されたときの対処法

CentOS が起動しているサーバに scp を使ってファイルをコピーしようとコマンドを実行したら

記事を読む

icatch_2385618390-resized

Linuxでmp3をお手軽に結合する

このブログを運用している Linux サーバで radiko.jp から番組を mp3 に録音して個

記事を読む

icatch_4365495446-resized

CentOS6.5にGitをソースコードからインストールする

CentOS 6.5 の64ビット版を "Minimal" でインストールした環境で、git sta

記事を読む

icatch-2015-003-1

Vagrantで起動したCentOS上のMySQLにホストOSからログインする設定

マシンを新しくしたこともあり、検証と称してソフトウェアをやみくもにインストールすることに抵抗が出てき

記事を読む

icatch-vagrant_box_customize

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

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

記事を読む

no image

IE9 のキャッシュ対策

どのようなバグだったのか POST で送信した内容を確認する画面で、最新の内容が表示されないという

記事を読む

no image

no space left と表示されたときの対処法

タイトルの "no space left" とは「書き込みたいけど、ディスクの飽

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

icatch-sublimetext_9222613858_mini-thumbnail

Sublime Text3 のインストール直後に行った設定メモ

突発的に自宅のマシンにインストールしてあった Sublime Text2 を 3 にアップデートしま

記事を読む

Googleアドセンス用(PC)

Message

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


7 − = 四

次の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 ↑