[メモ] VagrantのVMware providerのライセンスがMPLのオープンソースに変更されたようなので、試す。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/749279ec-b132-83b9-c8c1-b8252b37cfb5.png)

#  概要
-  VagrantのVMware providerのライセンスが[MPL(Mozilla Public License 2.0)](https://github.com/hashicorp/vagrant-vmware-desktop/blob/main/LICENSE)になった模様。


- https://www.vagrantup.com/docs/providers/vmware
    > The Vagrant VMware plugin is now open sourced under the MPL. The code repository for the Vagrant VMware plugin is available on [GitHub](https://github.com/hashicorp/vagrant-vmware-desktop).
    > ([deepl先生](https://deepl.com)翻訳) VagrantのVMwareプラグインはMPLでオープンソース化されています。Vagrant VMwareプラグインのコードリポジトリは[GitHub](https://github.com/hashicorp/vagrant-vmware-desktop)で公開されています。

- ということで、お試し。

# 環境

- VMホスト(1)
	- Windows 10
	- VMware Workstation 16 Pro (Version: 16.1.2 build-17966106) - 30日試用版
	- Vagrant 2.2.16
	- Vagrant VMware Utility 1.0.20
	- Vagrant plugin: vagrant-vmware-desktop 3.0.0



- VMホスト(2)
	- Lubuntu 20.04
	- VMware Workstation 16 Pro (Version: 16.1.2 build-17966106) - 30日試用版
	- Vagrant 2.2.16
	- Vagrant VMware Utility 1.0.20
	- Vagrant plugin: vagrant-vmware-desktop 3.0.0

<!--
- VMホスト(3)
    - macOS BigSur 11.4
    - VMware Fusion 12 Pro - 30日試用版
 -->

# 手順
## キホン
1. VMWare、Vagrant、Vagrant VMware Utility、 Vagrant plugin: vagrant-vmware-desktopの順でインストール
2. テスト

	```bash
	mkdir vmtest
	cd vmtest
	vagrant init generic/ubuntu2004   # Vagrantfile生成
	vagrant up --provider=vmware_desktop # 初回時、イメージをダウンロードするので時間がかかる。
	vagrant ssh　# ゲストにsshログイン
	.
	.
	.
	exit #ゲストを抜ける
	#
	vagrant reload # VM再起動
	vagrant halt # VMシャットダウン
	vagrant destroy -f # VM削除
	
	```

## Windows
1. Adminで、PowerShellを開く (Win+x, a, Alt+y)
2. [Chocolateyインストール](https://chocolatey.org/install)

	```ps:こぴぺ
	Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
	```

3. VMWare、Vagrant、Vagrant VMware Utilityのインストール
	```ps:こぴぺ
	cinst -y vmwareworkstation vagrant vagrant-vmware-utility 
	```
4. VMWareを一度起動して、ライセンスに同意。(ライセンスキーを入力するか、30日評価選択)

5. (お好みで)システム環境変数 `VAGRANT_HOME`を `C:\Vagrant\.vagrant.d`
6. この辺でホスト機を一度、再起動
7. vmware provider プラグインのインストール
    PowerShellを開いて、

	```ps
	vagrant plugin install vagrant-vmware-desktop
	```
8. テスト
    PowerShellを開いて、

	```ps
	mkdir C:\Vagrant\vmtest
	cd C:\Vagrant\vmtest
	vagrant init generic/ubuntu2004   # Vagrantfile生成
	vagrant up --provider=vmware_desktop
	vagrant ssh　# ゲストVMにsshログイン
	.
	.
	.
	exit #ゲストを抜ける
	#
	vagrant reload # VM再起動
	vagrant halt # VMシャットダウン
	vagrant destroy -f # VM削除

	```

9. Vagrantfileを変更

	```rb:Vagrantfile
	# -*- mode: ruby -*-
	# vi: set ft=ruby :

	Vagrant.configure("2") do |config|
	  config.vm.box = "generic/ubuntu2004"
	  config.vm.network "public_network"

	  config.vm.provider "vmware_desktop" do |v|
		v.gui = true #GUI を開く
	  end
	end
	```


## Linux
- ファイルをダウンロードして同様にインストールする

- Windows10起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/dc0f3b9e-f459-0af9-6302-e9925c735f53.png)

## Packerで、Windows10 vmware boxイメージを作成
- Windows 10 にて 
- WIN10英語版のISO

- git-bashを開いて、適当なフォルダで以下実行. `ISO_FILE`を指定する。

```bash
git clone https://github.com/StefanScherer/packer-windows.git
cd packer-windows/
sed -i -e 's/Enterprise\ Evaluation/Pro/g' ./answer_files/10/Autounattend.xml
sed -i -e 's/<ProductKey>2F.*/<ProductKey><Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T<\/Key>/g' ./answer_files/10/Autounattend.xml


export ISO_FILE=/c/Vagrant/WIN10.ISO
export ISO_SHA1SUM=$(sha1sum ${ISO_FILE} | sed  -e 's/(space)(space)*/(space)/g'   | cut -d ' ' -f 1)

time packer build -force -only=vmware-iso -var "iso_url=${ISO_FILE}" -var "iso_checksum_type=sha1" -var "iso_checksum=${ISO_SHA1SUM}"  ./windows_10.json
```



# その他
- ちゃんと試してないけど、Playerのほうでは、うまく動かないっぽい