私は、ここに記載されているワークフローに基づいて、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