Vagrantの既存Boxに日本語環境 + GuestAdditions + Chefを入れ、新しいBoxとして追加する

写経環境用のVagrant Boxとして、以前veeweeで作成したもの を使っていましたが、

  • 日本語環境になっていない
    • 日本語環境を手動で作ってた
  • GuestAdditionsやChefが入っていない
    • 起動時に時間がかかる

というモノでした。


しかし、最近そのBoxを使う機会が増え、毎回上記の不足している分の作業を行っていると、それらが整備済の環境をお手軽に作りたくなりました。
そこで、veeweeやChefで設定するのではなく、以下を参考にして vagrant package を使って新しいBoxとして追加することにしました。
プラグインのせいで遅くなったvagrant upを高速化する方法 - DQNEO起業日記

環境

Vagrant upまで

上記を参考に、Vagrantfileを作成し vagrant up します。


自分の場合は、Boxとして追加済の「ubuntu120403」と、Railsチュートリアル用の写経環境作成時に使ったVagrantfile を流用して作りました。
また、ホストがWindowsなので、vagrant up時にGUI表示するようにしました。



日本語環境の設定

UbuntuのJapanese Teamによる追加パッケージの追加

以下を参考に、方法2の3.まで作業を行います。
Ubuntuの日本語環境 | Ubuntu Japanese Team



Language Support の設定

以下を参考に、Language Supportの設定を行います(13.10版ですが似たような感じでした)。
Ubuntu 13.10 その7 - 日本語環境の構築・Ubuntu Japanese Teamのリポジトリーを追加する - Ubuntu kledgeb


自分の行った流れは、以下の通りです。

  1. SystemSettings > Language Support
  2. Languageタブ
    1. Install/Remove Languages...ボタン
    2. Japaneseにチェックし、Apply Changesボタン
    3. Japaneseをドラッグして、先頭へ
    4. Apply System-Wideボタン
  3. Regional Formatsタブ
    1. 日本語を選択
    2. Appli System-Wideボタン
再起動

作業が終わったら、vagrant reload で再起動します。
再起動時にディレクトリ名の変更を聞かれますが、そのままにしておきます。



キーボードレイアウトの設定

ホストが日本語レイアウトなので、Box側も日本語レイアウトにしておきます。

  1. システム設定 > キーボードレイアウト
  2. +ボタン
  3. 日本語(OADG 109A) を選択
  4. 追加ボタン
  5. 日本語を一番上にする(上<ボタン)


以上でGUI上の作業は終わりなので、 vagrant halt で停止しておきます。



新しいBoxの追加

上記で作成した環境をBox化します。各コマンドとも時間がかかりますが、放置して気長に待ちます。

vagrant package
vagrant box add ubuntu120403ja package.box

なお、必要に応じて、outputオプションを付けて vagrant package時にできるboxの名前を変更します。


あとは、Vagrantfile内で、

config.vm.box = "ubuntu120403ja"

と指定しておけば、 vagrant up時に利用できます。