Vagrant Windows 10 軟體包步驟刪除使用者設定檔?

Vagrant Windows 10 軟體包步驟刪除使用者設定檔?

我正在建立一個 Vagrant Windows 10 盒子(使用 libvirt,基於此處記錄的工作流程:https://fishilico.github.io/generic-config/windows/vagrant.html)。虛擬機器準備就緒後,我運行:

vagrant package default --output win10-libvirt.box

然後我將“box”文件帶到另一台電腦並使用vagrant add.

問題是,作為設定的一部分,我為使用者~/.ssh/authorized_keys檔案添加了一個金鑰,但是當我在第二台機器上啟動新盒子時,該檔案就消失了。我還嘗試向 Microsoft Windows OpenSSH 連接埠支援的「管理員金鑰」檔案新增一個金鑰C:\ProgramData\ssh\administrators_authorized_keys- 但當我啟動新盒子時,該金鑰也消失了 - 實際上整個C:\ProgramData\ssh資料夾都消失了。

是否vagrant package清理機器配置資料夾,如果是的話 - 可以以某種方式停用它嗎?我找不到有關此的文件。

答案1

在我新增對 Sysprep 的呼叫並在配置腳本結束時關閉後,該問題已解決。我不確定 Sysprep 是否是所需要的或關閉 - libvirt 關閉過程應該足夠安全,並且觀看 libvirt 檢視器我可以看到虛擬機器執行 Windows 關閉過程。

我在我的中使用了這個命令Vagrantfile

Vagrant.configure("2") do |config|
  # ...

    config.vm.provision "shell", inline: <<-'SCRIPT'
& ./run-some-provisioning.ps1
& C:/Windows/System32/sysprep/sysprep.exe /generalize /mode:vm /shutdown
SCRIPT

  # ...
end

相關內容