ISOファイルからVagrantのBOXファイルを作成する
vagrant のbox ファイルを作成したメモです。
本文中でもあげていますが以下を読んで作業すればそんなに難しいことはありませんでした。
CentOS 6.6 x86_64 minimalのVagrant boxを作る - 作業ノート
Creating a Base Box - Vagrant by HashiCorp
ISOファイルからVagrantのBOXファイルを作成する
OS Xのターミナルから、Vagrantコマンドでboxを作成するには以下のコマンドを実行すればよい。
$ vagrant package --base centos66
baseオプションは仮想マシン名を指定する。
minimalなCentOSをサーバから落としてきて上記のコマンドを実行しても動かない。
vagrantの実行に必要なvagrant ユーザーが存在しないからだ。
他にも不要な機能を削除したりする必要がある。
実際に何をすれば動かせるようになるかは以下のサイトに書いてある。
http://te2u.hatenablog.jp/entry/2015/05/11/012225
https://docs.vagrantup.com/v2/boxes/base.html
CentOS 6.6 x86_64 minimalのVagrant boxを作る - 作業ノート で記されている以下の手順を行った。
- ISOのダウンロード(CentOS 6.7で行った)
- 仮想マシンの新規作成
- 仮想マシンの設定変更
- OSインストール
- eth0の有効化
- ホスト側(Mac)からsshでログインする
- yumリポジトリの登録(やってない)
- Vagrantユーザの作成と設定 -- ユーザ作成
- sshの設定
- sudoの設定
- rpmパッケージのインストール
- selinuxの無効化
- iptablesの無効化
- VirtualBox Guest Additionsのインストール
- udevのルールの削除
- box作成のための最適化 -- yum clean -- フラグメンテーションの解消
- OS シャットダウン
- NATのポートフォワーディング設定の削除
他にやったこと
これでboxファイルの基本形はできた。
あとは、アプリケーションを動かすためのソフトウェアをインストールする作業が必要になる。
EPELパッケージを使えるようにする
ansible で設定周りを記述していこうと考えているのでansible がインストールできるようにする。
# yum localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
参考 http://weblabo.oscasierra.net/install-epel-01/
ansibleをインストールする
# yum install ansible
で、ここからつらつらと playbook につらつらと構成なんかを書いていく予定なのだ。
box に登録する
これでベースとなるOSができた。
これを元にvagrant コマンドを叩いてbox ファイルを作成する。
vagrant package --base centos67 --output CentOS-6.7-x86_64 # CentOS-6.7-x86_64.box が作成される。
vagrant package --base centos67
によって、 package.box
が生成される。これがVagrant Cloudから取得していたあのboxファイルだ。
--output
とファイル名を指定すれば出力するboxファイルの名前をつけることができる。
指定なければpackage.box
となる。
vagrant box add --name CentOS-6.7-x86_64-minimal-ja-20151104 CentOS-6.7-x86_64.box vagrant box list
これでlist の中にCentOS-6.7-x86_64-minimal-ja-20151104 が表示される。
あとは、vagrant を立ち上げるだけだ。
vagrant init CentOS-6.7-x86_64-minimal-ja-20151104 vagrant up
以上で、CentOSのISOファイルからVagrantのbox ファイルを作成&登録してvagrant up でVMを起動するところまでを行った。
まとめ
会社のセキュリティ的な事情とかなければ、イチからboxファイルを作成するというのは手間なだけでそんなに使う機会はないのかなという気がします。
ただ、開発環境の整った状態のbox ファイルを配布するなどの用途でbox ファイルを作成するというのはとても便利ですね。
box ファイルとVagrantfile さえあれば vagrant up
で開発環境が構築できるのですから素晴らしい。
- 作者: ジーンキム,ケビンベア,ジョージスパッフォード
- 出版社/メーカー: 日経BP社
- 発売日: 2014/08/12
- メディア: Kindle版
- この商品を含むブログ (1件) を見る