Estou construindo uma caixa do Vagrant Windows 10 (usando libvirt, com base no fluxo de trabalho documentado aqui:https://fishilico.github.io/generic-config/windows/vagrant.html). Depois que a VM estiver pronta, executo:
vagrant package default --output win10-libvirt.box
e então levo o arquivo "box" para outra máquina e importo usando vagrant add
.
O problema é que, como parte da configuração, adiciono uma chave ao ~/.ssh/authorized_keys
arquivo do usuário, mas quando inicio a nova caixa na segunda máquina, esse arquivo desaparece. Também tentei adicionar uma chave ao arquivo "chaves de administrador" suportado na porta OpenSSH do Microsoft Windows em C:\ProgramData\ssh\administrators_authorized_keys
- mas isso também desaparece quando inicio a nova caixa - na verdade, a C:\ProgramData\ssh
pasta inteira desaparece.
Limpa vagrant package
as pastas de configuração da máquina e, em caso afirmativo, isso pode ser desativado de alguma forma? Não consegui encontrar documentação sobre isso.
Responder1
O problema foi corrigido para mim depois que adicionei uma chamada ao Sysprep seguida de desligamento no final do script de provisionamento. Não tenho certeza se o Sysprep é o que era necessário ou o desligamento - o processo de desligamento do libvirt deve ser seguro o suficiente e observando o visualizador do libvirt posso ver que a VM executa o processo de desligamento do Windows.
Eu usei este comando no meu 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