時と場合によりけり

日々のアップデートとイノベーションに翻弄され彷徨える IT エンジニアの覚書

macOS Sierra に VirtualBox と Vagrant で CentOS の仮想マシンを導入する

概要

VirtualBoxVagrant を使って、ホストマシン Mac に、ゲストマシン(仮想マシンCentOS 6.8 を導入します。

ホスト

  • マシン: Macbook Pro Early 2011
  • OS: macOS 10.12 Sierra
  • メモリ: 16 GB
  • ストレージ: SSD 512 GB

ゲスト

前提条件

MacVirtualBoxVagrant をインストールしておいてください。まだの方は、次のエントリーをご参照ください。

http://stangler.hatenablog.com/entry/2016/10/04/111651

Box の確認

Mac に登録されている box を確認してみます。

% vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

まだ、ひとつも登録されていません。

Box 登録

登録する CentOS の box については、次のエントリーをご参照ください。

http://stangler.hatenablog.com/entry/2016/10/05/133120

上のエントリーで作成した box のあるディレクトリに移動して、vagrant box add コマンドを実行します。

% cd centos/box/virtualbox
% vagrant box add centos68 centos68-2.0.16.box

登録されたかどうか確認してみましょう。

% vagrant box list
centos68 (virtualbox, 0)

centos68 という名前で登録されています。

仮想マシンディレクト

任意の名前のディレクトリを作成

Vagrant のプラグイン sahara をインストールする - 時と場合によりけり で作成した dev-basic というディレクトリを、例として、ここでは使用します。新たにディレクトリを作成する場合は、以下のコマンドで。

% mkdir dev-basic

vagrant 初期化

% vagrant init

このコマンドを実行すると Ruby で書かれた Vagrantfile という設定ファイルが作成されます。

Vagrantfile 編集

以下は、Vagrantfile 設定の例です。

% vim Vagrantfile

1行目は、VagrantAPI のバージョンを指定しています。以下のサイトにあるとおり、Vagrant の古いバージョン、1.0.X が、API バージョン1。それ以降の Vagrant 1.1.+ のAPI バージョンは2です。

www.vagrantup.com

2行目は、先ほど登録した box 名。
3行目は、仮想マシンのホスト名。
4行目は、この仮想マシンに割り当てるプライベート ip 。

5〜7行目は、メモリの設定。Scala とか扱う場合も想定して、ここでは多めに設定しています。私の Macbook Pro のメモリは、16 GB ですが、ParallelsWindows 10Vagrant + VirtualBoxCentOS 6.8 を同時に稼働させると、高い確率でフリーズします。メモリの設定は、各自の環境に合わせて行ってください。

8行目は、鍵認証についてです。通常、Vagrant 1.7.1 以降のバージョンは、/Users/xxxxx/.vagrant.d/insecure_private_key という秘密鍵を使って SSH のアクセスをします。しかし、ゲスト OS にいろいろ手を加えて、新たな box ファイルを作成した場合、その box でゲストOS を vagrant up で起動すると、鍵認証でつまづきます。これは、/Users/xxxxx/Vagrant/dev-basic/.vagrant/machines/default/virtualbox/private_key という秘密鍵が新たに作成されるため、不整合が起きていることが原因です。

以下の記事が大変参考になりました。 qiita.com

設定を false にしておけば、新たな box ファイルを作成した場合でも、デフォルトの /Users/xxxxx/.vagrant.d/insecure_private_key を見にいってくれ、認証が OK になります。

Vagrant 起動

% vagrant up

ssh 接続確認

% vagrant ssh
Last login: Tue Oct  4 16:20:07 2016 from 192.168.33.1
----------------------------------------------------------------
  CentOS 6.8                                  built 2016-10-04
----------------------------------------------------------------
[vagrant@dev ~]$

以上で、CentOS 6.8 の導入完了です。