Vagrant Windows 10 パッケージステップでユーザープロファイルが削除されますか?

Vagrant Windows 10 パッケージステップでユーザープロファイルが削除されますか?

私は、ここに記載されているワークフローに基づいて、Vagrant Windows 10 ボックス (libvirt を使用) を構築しています。vagrant は、Windows の vagrant.config ファイルで作成されます。VM の準備ができたら、次のコマンドを実行します。

vagrant package default --output win10-libvirt.box

次に、「box」ファイルを別のマシンに持って行き、を使用してインポートしますvagrant add

問題は、セットアップの一環としてユーザーの~/.ssh/authorized_keysファイルにキーを追加したのですが、2 台目のマシンで新しいボックスを起動すると、そのファイルが消えてしまうことです。また、Microsoft Windows OpenSSH ポートでサポートされている「管理者キー」ファイルにキーを追加しようとしましたC:\ProgramData\ssh\administrators_authorized_keysが、新しいボックスを起動すると、これも消えてしまいます。実際には、C:\ProgramData\sshフォルダー全体が消えてしまいます。

vagrant packageマシン構成フォルダーはクリーンアップされますか? クリーンアップされる場合、これを何らかの方法で無効にできますか? これに関するドキュメントは見つかりませんでした。

答え1

プロビジョニング スクリプトの最後に Sysprep の呼び出しとシャットダウンを追加した後、問題は解決しました。Sysprep が必要だったのか、シャットダウンが必要だったのかはわかりませんが、libvirt のシャットダウン プロセスは十分に安全であるはずであり、libvirt ビューアを見ると、VM が 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

関連情報