準備
- 前提
- Windows 7 64bit
- BIOS設定変更
- Cygwinのsshコマンドインストール
- https://cygwin.com/setup-x86_64.exe
- opensshを選択してインストール実行
- Windows環境変数Pathに「C:\Cygwin64\bin」を追加
- VirtualBoxインストール (5.1.8~5.1.30は動作確認済)
- https://www.virtualbox.org/
- Vagrantがサポートしているバージョンをインストールすること
- Vagrantインストール (1.8.5~2.0.1は動作確認済、1.3.1については後述)
- Vagrant pluginインストール
- コマンドプロンプトにて以下を実行
- vagrant plugin install vagrant-vbguest
- コマンドプロンプトにて以下を実行
以下はVagrant1.8.6で不要になった
- 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
- 56行目と57行目の間に以下の行を追加
- C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.8.5\plugins\guests\linux\cap\public_key.rb
Vagrantfile作成
文字コードはUTF-8で
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
- vagrant upの途中で止まってしまう
- https://docs.microsoft.com/en-us/powershell/wmf/5.1/install-configure の Win7AndW2K8R2-KB3191566-x64.ZIP をインストールして解決
- 共有ディレクトリがマウントできない
- vagrant plugin uninstall vagrant-vbguest して解決
- しかし2回めのvagrant upでやはりマウントできないので vagrant plugin install vagrant-vbguest して解決
- 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
- 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
-
vagrant up & vagrant provision & vagrant reload
- 2台分書いてある場合は
vagrant up digsv1 & vagrant up digsv2 & vagrant provision & vagrant reload
みたいにする
- 2台分書いてある場合は
2210からのポートフォワード
明示的に22ポートへのポートフォワード設定を行った場合に、フォワード元が2210だとvagrant upがタイムアウトすることがあり、2203とか2211とかにずらすと解決した