vagrant
windows7

Windows7 SP1でVagrantを使う

すんなりmacOSかLinux、Dockerを使えばいいのに、
あえてVagrantをWindows7 SP1で使ってみたよ!

VagrantとVirtual Boxのインストールは、みんないろいろ書いているので、省略。自分で探してね。

Windows7でvagrantを使うときに、一番苦労したのが
Powershellを使うことと、Powershellのバージョンアップ。

  • コマンドプロンプト(cmd.exe)ではなくて、パワーシェルを使う(powershell.exe)

Windows7のままだと、PowershellのVersionが2.0なのでVagrantでは使用できない。
Version3.0以上を推奨(される)。

1.SP1かチェックする。

  • SP1をインストール

参考:https://support.microsoft.com/ja-jp/help/15090/windows-7-install-service-pack-1-sp1

2.PowerShellのバージョンをチェックする。

  • $PSversionTable
    • で、「Version 2.0」と表示される

3..NET Framework 4.5あたりをインストール

  • PowerShellに使われているコアライブラリも一緒にUpdate

参考:https://qiita.com/busonx/items/acb54f852962426eb2ed

Windows7 SP1にPowerShell 3.0をインストールするには、
WMF(Windows Management Framework) をupdateする。

4.PowerShellがVersion.3.0にアップデートされたか確認する。

  • $PSversionTable
    • で、「Version 3.0」と表示される

参考:https://qiita.com/busonx/items/9e88804e6b85432e827a

ここまでやってから、VagrantとVirtualBoxをインストールしよう!

※PowerShellのバージョンアップだけで、2~3時間かかるという不毛な作業なので覚悟しよう!

最近のVagrantは単純化されて、説明通りにコマンドを打てば
仮想マシンが起動する。。。。。わけねーw

おなじみのVagrantfileの編集

  • 編集箇所1:
    config.vm.box = "base" を config.vm.box = "centos/7" に変更。
    ※boxファイル名は、好きなboxを使えばいいんじゃないのかな?
    Hash Corp.のBoxのBOX LIST
    https://app.vagrantup.com/boxes/search

  • 編集箇所2:
    ネットワーク設定をコメントアウト
    config.vm.network "private_network", ip: "192.168.33.10"
    ※プライベートネットワークが、一番便利。
    大勢が一斉に使うとIPが被るのでDセグメントは、工夫しよう!

  • 編集箇所3:
    母艦と仮想の共有フォルダの設定。これをやっておくと、ファイル転送無しで
    ファイルの更新が可能だからやっておいた方がいいぞ。
    config.vm.synced_folder "./data", "/vagrant_data"
    ※もとは"../data"になっているので、同じフォルダ内に収めるために、
    "./data"に変更する。もちろん別名でも可能。

-編集箇所4:
意外とみんなやらないのが最後の仮想マシンのメモリ設定。

config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end

これで一応、1024MBが確保できる。

4.さあ、vagrant upを実行!

。。。。。。。エラーが出てるよぉ

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant_data /vagrant_data

The error output from the command was:

mount: unknown filesystem type 'vboxsf'

共有フォルダがマウントできない。
Virtual Boxの仮想ディスクとのバージョンが異なるっぽい。

※上記のマウントコマンドをしても治りません。

参考:https://qiita.com/reflet/items/98fd548a6ef341f685bb

  • 対策 「vagrant-vbguest」というプラグインをインストールして対応する。

で、
1.インストール
$ vagrant plugin install vagrant-vbguest
※すごく時間がかかるし、大量に関連するライブラリもインストールされる。

  1. 実行
    $ vagrant vbguest

  2. 実行状況を確認

    $ vagrant vbguest --status
    GuestAdditions 5.0.16 running --- OK.

    4.vagrantを再起動
    $ vagrant reload

無事マウントでき、vagrantのゲストが利用可能に。

  • しかし、Windows7 SP1のサポートが切れたけど、まだまだ使っているユーザが多いし、
    面倒くさいね。

  • そもそもWindows10でも面倒臭いので、仮想化環境をWindowsで作るのは手間がかかることかかること。

  • やはりそこは、macOSが優れているんだよなぁ。。。
    あとは、ちょっと前のPCにLinuxのデスクトップを入れて使うのが一番良いのかもw