LoginSignup
80

More than 5 years have passed since last update.

自分仕様のboxファイルを作成する

Last updated at Posted at 2015-10-11

目的

仕事でVagrantを使う場合、インターネット上に落ちているboxは何がインストールされているか分からないから不安が付きまといます。
そのため、ここではVirtual Boxで一から仮想マシンを作成し、作成した仮想マシンのboxを作成し、Vagrantで使用出来るようにします。
なお、開発環境で使用する目的のため、セキュリティは一切無視します。

作成する仮想OSの仕様

作成する仮想OSの仕様を以下に記述します。

ハードウェア構成

  • 仮想CPU数は1つ
  • メモリ数は1GB
  • ディスク容量は500GB(可変)
  • ネットワークアダプタはNATで1つ

ソフトウェア仕様

  • OSはCentOS Linux7
  • インストールタイプはミディアム
  • 日付と時刻はアジア/東京
  • 言語サポートは日本
  • キーボードは日本語
  • パーティション構成は自動
  • SELinuxはオフ
  • yumで最新にしておく
  • sudoを使えるようにしておく
  • ssh設定
  • firewallをオフにする

まずはインストール

OSはhttp://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7/isos/x86_64/から取得します。

SELinuxをオフにする

/etc/selinux/config(変更箇所のみ)
SELINUX=disabled

yumで最新にしておく

あえて書く必要はないかも知れませんが。
アップデートが終わったらシャットダウンします。


$ yum update
$ shutdown -h now

sudoを使えるようにしておく

visudo
$ visudo
#Defaults requiretty ← コメントにする
%vagrant ALL=(ALL) NOPASSWD:ALL ←追加

注:これをやらないと「sudo を実行するには tty がなければいけません。すみません」のエラーが出ます。

ssh設定


$ su - vagrant
$ mkdir .ssh
$ curl https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub > .ssh/authorized_keys

firewallをオフに


$ su - 
$ systemctl stop firewalld
$ systemctl disable firewalld

vagrantのパッケージ作成

ここからやっとvagrantのパッケージ作成

packageコマンドの書式
vagrant package --base [VM名] --output [出力box名]
--outputオプションをつけなかったら、package.boxというファイル名になります。
実行例
$ vagrant package --base "CentOS7" --output CentOS7.box

Vagrantに作成したboxを追加する

addコマンドの書式
vagrant box add [VM名] [box名]
実行例
$ vagrant box add centos7 CentOS7.box
確認
$ vagrant box list
centos7 (virtualbox, 0)

以上で完成です。

作成したboxファイルはこちらにあります

CentOS7のbox

仮想OSをマウントするとエラーが出る

仮想OSを起動すると、



Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:
mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
The error output from the last command was:
mount: unknown filesystem type 'vboxsf'


とエラーが出る場合があるようです。
その場合は、「mount: unknown filesystem type 'vboxsf'」をキーワードにぐぐるとすぐに、解決方法が見つかります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80