😊

[メモ] Windows10 Hyper-V Vagrant

2022/09/28に公開

概要

Windows 10 Proの Hyper-VとVagrantにて、仮想機械をさくっと動かそう。

環境

  • Windows 10 Pro (21H2 19044.2006)

手順

Hyper-V インストール

https://learn.microsoft.com/ja-JP/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

  1. 管理者で PowerShell を開く
  2. 以下実行
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  3. 再起動:

chocolatey インストール (導入していない場合)

https://chocolatey.org/install

  1. 管理者で PowerShell を開く
  2. 以下実行
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
    

Vagrant, Packer インストール

  1. 管理者で PowerShell を開く
  2. 以下実行
    cinst -y vagrant packer
    
  3. 再起動しろ、と出てきてるので、再起動

Vagrantで仮想機械を実行 (generic/alpine312)

Hyper-V Vagrantは、管理者にて実行しないといけない。

  1. 管理者で PowerShell を開く
  2. 以下実行
    # 作業フォルダ作成、移動
    mkdir C:\Vagrant\alpine312
    cd C:\Vagrant\alpine312
    # Vagrantfile作成
    vagrant init -m generic/alpine312
    
    # 仮想機械起動
    vagrant up
    
    # 仮想機械にsshログイン
    vagrant ssh
    
    # 仮想機械から退出
    exit
    
    # 仮想機械再起動
    vagrant reload
    # 仮想機械終了
    vagrant halt
    # 仮想機械削除
    vagrant destroy -f
    
    # 導入済みboxファイル一覧
    vagrant box list
    # boxファイル削除
    vagrant box remove generic/alpine312 --box-version=4.1.12
    
  • 実行例

boxを探す

Vagrantfile の設定

-- To be updated --

box作成

Windows 10のbox作成

indows 10 英語(US)のISOを使用

  1. git bashを管理者で開く

  2. 以下実行

    git clone https://github.com/StefanScherer/packer-windows
    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
    
    # ISO ファイル指定
    export ISO_FILE=/c/19045.2075.220909-1450.22H2_RELEASE_SVC_PROD2_CLIENTMULTI_X64FRE_EN-US.ISO
    export ISO_SHA1SUM=$(sha1sum ${ISO_FILE} | sed  -e 's/(space)(space)*/(space)/g'   | cut -d ' ' -f 1)
    
    
    #
    time packer build -force -only=hyperv-iso -var "iso_url=${ISO_FILE}" -var "iso_checksum_type=sha1" -var "iso_checksum=${ISO_SHA1SUM}"  ./windows_10.json
    
    • エラーが出たら、Virtual Switch Managerで、packer-hyperv-iso を External networkにして、IPをとれるようにする.
  3. indows_10_hyperv.box が作成される

  4. 実行

    vagrant box add ./windows_10_hyperv.box --name win10
    vagrant init -m win10
    vagrant up
    

Discussion