アイネクシオ

私たちはネットワークから新しいアイデアを創出します

スキル

  • PHP
  • Python
  • C#
  • Java
  • Swift
  • Dart
  • HTML(CSS
  • Javascript
  • MySQL
  • PostgreSQL
  • Sqlite
  • Access
  • Redhat系 Linux
  • Debian系 Linux
  • CodeIgniter
  • fuelPHP
  • CakePHP
  • flutter
  • Illustrator
  • Photoshop
  • Adobe XD
  • InDesign
  • CLIP STUDIO PAINT

Vagrantで独自boxの作成

2017/11/06 2016/03/12

Category:CentOS, Ubuntu, 開発環境 Tag:,

以前、『Ubuntu 15.04にVirtualbox、Vagrantをインストール』でインストールをまとめてみましたが、チームで開発などするときは同じ環境を用意しなければなりません。
当然ですが、配布されているboxイメージではなく、チーム用だったり、ソフトウェア用に準備したものを利用する可能性の方が高かったりするわけです。

そこで、独自にbox化する方法をまとめてみました。
『説明が足りない』と知人から突っ込まれたこともありますが、端的に知りたいこと(ここでいうbox作成)だけをまとめてあるとこが見当たらなかったこともあるし。

目次

OSの準備を行う

OSの公式サイトからisoイメージをダウンロードしてきても、配布されているboxファイルから準備しても、その方法は何でも構いませんが、とりあえず提供したい環境を整えます。
そしてOSをアップデートしておいたり、開発に必要なコンパイラや環境を整えておきます。

MACアドレスの解除

このままだと、MACアドレスが固定されて起動時にネットワークエラーが発生するため、udevルールを無効化しておきます。
[code]
$ sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
[/code]

最適化

boxサイズを可能な限り小さくしたり、圧縮効率を上げるために、以下を実行する。
フラグメンテーションの解消ということで、ゼロ埋めしたファイルを作成して削除するとのこと。
これは以下のサイトで知った。大変参考になりました。
VagrantでオリジナルBoxを作成する
[code]
$ sudo yum clean all

$ sudo dd if=/dev/zero of=/EMPTY bs=1M
$ sudo rm -f /EMPTY
[/code]

boxのパッケージ化

以下のコマンドでboxをパッケージ化することができる。
カレントディレクトリに『package.box』ファイルが作成されるが、これが目的のboxファイルだね。
このファイルが本体となります。

ちなみに仮想マシンが起動していると自動的に終了します。
[code]
$ vagrant package
[/code]

そして以下のコマンドでboxを追加することができます。
[code]
$ vagrant box add ボックス名 ./package.box
[/code]

まとめ

非常に簡単に開発環境を統一することができます。
本来時間を費やしたい開発に、ガンガン時間を費やすことが可能ですね!
本当に喜ばしいことですな!

アバター画像
プログラマーとして存在しています。 コーヒーとヌーノ・ベッテンコート、リッチーコッツェンが大好き。ボクシングも大好き。家族も音楽も好き。仕事もそれなりに好き。仕事ください。

https://lit.link/grooveline

執筆者:TAKAHIRO