vagrantBox 配布方法

vagrantBoxの自作から公開までの最終回.
今回はサーバにvagrant boxをホスティングし, 配布環境を構築する.

vagrantBoxの自作から公開までのまとめ記事はこちら.
準備中

動作環境

  • windows8.1 64bit
  • RLogin
  • エックスサーバー x10
  • virtualBox 5.0.20
  • vagrant 1.8.7
  • centos 6.8

前提条件

前回の記事で自作した vagrant box を使用する.
前回の記事はこちら.

今回はエックスサーバでホスティングを行う.

sshクライアントソフトは RLogin を使用する.
winユーザで他のクライアントソフトを使っているのならそれもok.

RLoginについてはこちらの記事が参考になるかも.

[Windows]Rloginからエックスサーバーにssh接続する方法
今回はRloginからエックスサーバへssh接続する方法を紹介します。 概要は次の通り。 私がRloginでエックス...

今回のゴール

今回のゴールは次の通り.

  • 次のコマンドで vagrant box のDLができる
    • vagrant box add --name box名 http://ホスト名/boxのあるディレクトリ/metadata.json
  • metadata.json を編集することでバージョン管理ができる

バージョニング & 配布環境構築 をするとどんな良いことがあるのか

ここではvagrant boxのバージョニングや配布環境構築によるメリットを紹介.

  • バージョニング
    • 現在に比べてクリーンな旧boxの使用が可能
  • 配布環境構築
    • 複数台のPCで動作環境の統一が可能

可能であれば一人で使う場合もバージョニングした方が良い.
理由は, 過去に作成したboxへのロールバックが可能だから.

複数人で作業を行うのなら配布環境を構築するべき.
「私のPCだと動作するけど, あなたのPCだと動作しないね」
というような状況を回避できる.
もしも同じvagrant boxを使用した上でこのような現象に遭遇したら, コードに集中したデバッグが可能になる.

下準備・事前知識

vagrant box をホスティングするための準備を行う.
概要は次の通り.

  • サーバー ディレクトリ構成
  • ホストマシンに curl をインストール

サーバー ディレクトリ構成

あらかじめサーバ内のどこにvagrant boxを配置するか決めておく.
vagrant box ホスティング時のディレクトリ構成については次のサイトが参考になる.

d wwwroot/
d wwwroot/boxes
d wwwroot/boxes/yourname
f wwwroot/boxes/yourname/.htaccess
d wwwroot/boxes/yourname/box1
f wwwroot/boxes/yourname/box1/metadata.json
f wwwroot/boxes/yourname/box1/box1-$version1-$provider.box
f wwwroot/boxes/yourname/box1/box1-$version2-$provider.box
f wwwroot/boxes/yourname/box1/box1-$version2-$otherprovider.box
d wwwroot/boxes/yourname/box2
f wwwroot/boxes/yourname/box2/metadata.json
f wwwroot/boxes/yourname/box2/box2-$version1-$provider.box
(… etc)

引用: Vagrant box URL for JSON metadata file | superuser.com

私はエックスサーバにホスティングする.
次の場所にディレクトリを作り, そこにboxファイルや.jsonを置くことにする.

/home/サーバ名/ドメイン名/public_html/vagrantBox

私の環境では public_html がwebルートになっている.
apacheからのアクセス許可がある階層に vagrantBox というディレクトリを作成する.
ここに vagrantBox と jsonファイル を作成してゆく.

ホストマシンに curl をインストール

vagrant1.8.7 が抱えるバグ対策のために必要.
バグについては後述する.

ホストマシンにcurlがインストールされていない場合は次の手順でインストールしておく.

次のサイトへアクセス.

Win64 - GenericWin64 x86_64 zip をダウンロード.
curl.exe のあるディレクトリにpathを通しておく.

curlが必要な理由 と 不具合対策

vagrant1.8.7 ではvagrant内蔵のcurlパッケージが悪さをする.
これが原因でサーバからvagrant boxのDLができない.

参考: 1.8.7 fails to download or update boxes #7969 | github.com

ホストマシンにcurlがインストールされていれば, vagrant内curlパッケージは不要.
ゲストマシンにログインし, 次のコマンドでvagrant内のcurlパッケージを削除する.

手順

ここからは次の作業を行ってゆく.

  • vagrant boxバージョニング
  • サーバへの設置

概要は次の通り.

  • vagrant box パッケージ化
  • サーバにvagrant box を設置
    • package.box をrename-> box名= centos68amp.2-0-0.box
      • 今回は都合上このversion
    • Rlogin または FileZilla 等のファイル転送ツールで転送
  • json 編集
  • .htaccess 編集
  • vagrant box add --name box名 http://ホスト名/boxのあるディレクトリ/metadata.json でvagrant boxのDL

vagrant box パッケージ化

ここでは .boxファイル を作成する.

vagrantを起動したまま, 一度ホストマシンに戻る.
ホストマシンで次のコマンドを実行すると .bax ファイルが生成される.
$ vagrant package

サーバにvagrant box を設置

ファイル転送ツール (FileZilla等) で次の場所に .box ファイルを置く.
私はRLoginで転送を行った.

/home/サーバ名/ドメイン名/public_html/vagrantBox/package.box

このディレクトリに複数の.boxが存在する予定なので, バージョンの識別が可能になるようにrenameする.

今回は次のような名前にした.

/home/サーバ名/ドメイン名/public_html/vagrantBox/centos68amp.2-0-0.box

json 編集

次にjsonファイルを編集する.

/home/サーバ名/ドメイン名/public_html/vagrantBox/metadata.json

description の値は何でもok.
version は好きな番号で. 今回は 2.0.0 とした.

checksum はlinuxコマンドで値を確認する.

$ sha1sum centos68amp.2-0-0.box

.htaccess 編集

.htaccessの変更が必要.
キャッシュコントロールが間違っているかも知れないが, 私はこのように記述した.

/home/サーバ名/ドメイン名/public_html/vagrantBox/.htaccess

vagrant box add --name box名 http://ドメイン名/boxのあるディレクトリ/metadata.json でvagrant boxのDL

ホストマシンで vagrant box list で表示されるようにboxをDLする.

コマンドプロンプトで次のコマンドを実行.

$ vagrant box add --name centos68amp http://ドメイン名/vagrantBox/metadata.json

$ vagrant box list でboxと, そのバージョンまで表示されれば成功.

今回は以上.

スポンサーリンク
336 x 280 – レクタングル(大)
336 x 280 – レクタングル(大)
  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

トップへ戻る