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

関連記事

no image

VPS に Redmine を設置したときに対処したトラブル

Redmine のインストール自体は Redmine 2.3をCentOS 6.4にインストールする

記事を読む

icatch_5428744075-resized

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

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

記事を読む

icatch-9214710040_822a4c3456_z-resized

ロードアベレージを監視するシェルスクリプトを作成してみた

このブログを運用している Linux サーバの負荷が高い状態になってました。 何か被害にあったとかで

記事を読む

icatch-2015-005-1

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

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

記事を読む

no image

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

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

記事を読む

icatch-2015-003-1

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

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

記事を読む

icatch-2015-006-1

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

Web アプリのバリデーションチェックにアノテーションを使うことが増えた。だが、アノテーションで実装

記事を読む

icatch_442682895-resized

scp コマンドを yum を使って CentOS にインストールする

小ネタです。 yum install scp ではなかったのでメモしておきます。 photo

記事を読む

icatch_4365495446-resized

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

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

記事を読む

icatch_3304032405-resized

CentOS に yum-plugin-priorities プラグインをインストールする

yum を使ってあるパッケージをインストールしようと調べていたところ、yum-plugin-prio

記事を読む

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 ↑