Vagrant1.8.6でCentOS6.7 #1.8.7以降について追記あり

準備
====

* 前提
    * Windows 7 64bit

1. BIOS設定変更
    * http://did2memo.net/2015/07/10/virtualbox-64-bit-os/
1. Cygwinのsshコマンドインストール
    1. https://cygwin.com/setup-x86_64.exe
    1. opensshを選択してインストール実行
    1. Windows環境変数Pathに「C:\Cygwin64\bin」を追加
1. VirtualBoxインストール (5.1.8～5.1.30は動作確認済)
    * https://www.virtualbox.org/
    * Vagrantがサポートしているバージョンをインストールすること
        * https://www.vagrantup.com/docs/virtualbox/
1. Vagrantインストール (1.8.5～2.0.1は動作確認済、1.3.1については後述)
    * https://www.vagrantup.com/downloads.html
1. Vagrant pluginインストール
    * コマンドプロンプトにて以下を実行
        * vagrant plugin install vagrant-vbguest

以下はVagrant1.8.6で不要になった

1. Vagrant1.8.5バグ対策
    * C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.8.5\plugins\guests\linux\cap\public_key.rb
        * 56行目と57行目の間に以下の行を追加
            * chmod 0600 ~/.ssh/authorized_keys

Vagrantfile作成
===============

文字コードはUTF-8で

```Vagrantfile
Vagrant.configure("2") do |config|
  # Vagrant公式Box https://atlas.hashicorp.com/bento
  config.vm.box = "bento/centos-6.7"
  # VirtualBox独自設定
  config.vm.provider "virtualbox" do |vb|
    # メモリ
    vb.memory = "2048"
    # CPU
    vb.cpus = 2
    # サスペンド復帰時に時刻をホストと同期
    vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000]
  end
  config.vm.provision "shell", inline: <<-EOT
    # タイムゾーン設定
    rm /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    # カーネルアップデート (Vagrantで共有フォルダマウントのため)
    yum update -y kernel
    # NTPサーバ設定
    yum -y install ntp
    cd /etc
    mv ntp.conf ntp.conf.org
    sed 's|\\(^server .*$\\)|#\\1|' ntp.conf.org >  ntp.conf
    echo                                         >> ntp.conf
    echo 'server ntp.nict.jp'                    >> ntp.conf
    echo 'server ntp1.jst.mfeed.ad.jp'           >> ntp.conf
    echo 'server ntp2.jst.mfeed.ad.jp'           >> ntp.conf
    echo 'server ntp3.jst.mfeed.ad.jp'           >> ntp.conf
    service ntpd start
    chkconfig ntpd on
  EOT
end
```

実行
====

コマンドプロンプトにて、上記のVagrantfileがあるフォルダに移動して以下を実行

Vagrant 2.0.0未満の場合
----

```
vagrant up & vagrant up & vagrant reload & vagrant reload
```

何度もupとかreloadとかやってるけど、これでやっと/vagrantにホストOSとの共有フォルダをマウントできるし時計も合う

Vagrant 2.0.1以上の場合
----

後述

ログイン
=======

Tera TermでSSHでvagrant/vagrantでログイン(ポート番号はvagrantのログに2222とか2200とか表示されている)
rootのパスワードもvagrant

Vagrantバージョン
================

2.0.0
-----

1. vagrant upの途中で止まってしまう
    * https://docs.microsoft.com/en-us/powershell/wmf/5.1/install-configure の Win7AndW2K8R2-KB3191566-x64.ZIP をインストールして解決
1. 共有ディレクトリがマウントできない
    * vagrant plugin uninstall vagrant-vbguest して解決
    * しかし2回めのvagrant upでやはりマウントできないので vagrant plugin install vagrant-vbguest して解決
1. vagrant up 一発でOKになった

1.9.3以上
---------

明示的にポートフォワード設定を行った場合に、`The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 2200 (Errno::EADDRNOTAVAIL)`みたいなエラーになる
https://github.com/mitchellh/vagrant/issues/8395#issuecomment-288379271 に「host_ip: "127.0.0.1"」を書き加える対策あり
しかし、VirtualBoxが古い(4.2.18とか)場合、他マシンから接続できないことがあり、VM起動後にVirtualBoxManagerからホストIPを「0.0.0.0」に変更して解決した

1.3.1
-----

1. notepad(メモ帳)でVagrantfileを開いてkernel update前に以下を追記＆BOM付きで保存(notepadなのでBOM付きに変わる)
    * `yum install -y ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.6/x86_64/updates/security/kernel-devel-2.6.32-573.el6.x86_64.rpm`
1. `vagrant up & vagrant provision & vagrant reload`
    * 2台分書いてある場合は`vagrant up digsv1 & vagrant up digsv2 & vagrant provision & vagrant reload`みたいにする

2210からのポートフォワード
========================

明示的に22ポートへのポートフォワード設定を行った場合に、フォワード元が2210だとvagrant upがタイムアウトすることがあり、2203とか2211とかにずらすと解決した