読者です 読者をやめる 読者になる 読者になる

Vagrant インストールメモ

下記エントリのインストール方法が古くなっていたので、Vagrant のイントールメモを残しておきます。

最近は公式パッケージがあるので、gem でインストールとかはしないみたいです。

Vagrant とは

仮想マシン上に手軽に開発環境が構築できるツールです。
Chef や Puppet などのプロビジョニングツールとの連携もできるので、違う環境に移行可能な開発環境を簡単に構築できます。

VirtualBox のインストール

Vagrant は、VMwareAmazon EC2 とかでも使えますが、今回はお手軽に試すことができる VirtualBox を使います。
公式サイトから最新版をダウンロードして、インストールします。

Vagrant のインストール

公式サイトから最新版をダウンロードして、インストールします。

$ vagrant --version
Vagrant 1.4.3

Box の追加

Box は、仮想マシン起動の際にベースとなる OS イメージファイルのことです。
下記サイトで公開されている CentOS 6.5 を使用しました。

別途 knife-solo で Chef Solo 環境をインストール予定なので、プロビジョニングツールはインストールされていない Box を使用します。

$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box
$ vagrant box list
centos65 (virtualbox)

仮想マシンの初期化、起動

仮想マシンの設定ファイル(Vagrantfile)が作成されるディレクトリを作成して、仮想マシンの初期化を行います。

$ mkdir -p ~/vagrant/centos65
$ cd ~/vagrant/centos65
$ vagrant init centos65

仮想マシンを起動します。

$ vagrant up

仮想マシンへのログイン

$ vagrant ssh

もしくは、

$ ssh -p 2222 vagrant@localhost

でログインできます。

仮想マシンのネットワーク設定変更

ポートフォワードとか面倒なので、ホストオンリ(プライベート)ネットワークを設定します。

$ cd ~/vagrant/centos65
$ vi Vagrantfile
config.vm.network :private_network, ip: “192.168.33.10# コメントアウト
$ vagrant reload

SSH の設定

上記のネットワーク設定を行っても、ssh 時に vagrant ユーザを指定するようなので、~/.ssh/config に設定しておきます。
また、Vagrant で起動する仮想 OS は、vagrant-xxxxx のように名前解決するように、/etc/hosts に設定します。

$ sudo vi /etc/hosts
192.168.33.10	vagrant-centos65
$ vi ~/.ssh/config
Host vagrant-*
  User vagrant
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile ~/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

以下の感じでログインできるようになりました。

$ ssh vagrant-centos65

ssh-config オプションを使う SSH 設定

ssh-config オプションでも ssh 設定が可能です。

$ cd ~/vagrant/centos65
$ vagrant ssh-config --host vagrant-centos65 >> ~/.ssh/config

Vagrant コマンド

  • Box の追加
$ vagrant box add %box-name% %url%
$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box
  • Box の削除
$ vagrant box remove %box-name%
$ vagrant box remove centos65
  • Box リストの表示
$ vagrant box list
$ vagrant init %box-name%
$ vagrant init centos65
$ vagrant up
$ vagrant suspend
$ vagrant resume
$ vagrant halt
$ vagrant status
$ vagrant destroy


Chef 環境のインストールと連携は、別の機会に書きたいと思います。